量角器GET和PUT API调用

时间:2018-05-09 07:54:56

标签: api xmlhttprequest protractor

我想在beforeAll()函数中的量角器测试用例中进行API调用,一旦我得到promise,我的测试用例应该开始运行。因为我的测试用例严重依赖于API响应。 我尝试使用jQuery,但它显示“jQuery未定义。”我使用的是protractor5.3.0。

var data ={
    "request": {
        "urlPattern": "/portal/user/profile",
        "method": "GET",
        "headers": {
            "Accept": {
                "contains": "application/json"
            },
            "Content-Type": {
                "contains": "application/json"
            }
        }
    },
    "response": {
        "bodyFileName": "abc.json",
        "headers": {
            "Content-Type": "application/json",
            "Access-Control-Allow-Headers": "Content-Type",
            "Access-Control-Allow-Credentials": "true",
            "Access-Control-Allow-Origin": "{{request.headers.Origin}}"
        },
        "transformers": [
            "response-template"
        ]
    }
};

function setUserProfile(profile, data){
    var id;
    if(data) {
        data.response.bodyFileName = "abc.json";
    }
    jQuery.ajax({
        url: "someurl",
        type: 'GET',
        dataType: 'json',
        contentType:  'application/json',
        success: function(result) {

            result.mappings.forEach(function(mappingItem) {
                if(mappingItem.request.urlPattern === '/portal/user/profile') {
                    id = mappingItem.id;
                }
            });
            jQuery.ajax({
                url: "someurl",
                type: 'PUT',
                data: JSON.stringify(data),
                dataType: 'json',
                contentType:  'application/json',
                success: function(result) {
                    console.log("success?", result);
                }
            });
        }
    });
}

describe('Logout Page', function () {
    var userDropdownEle;
    beforeAll(function () {

        request('someurl', function (error, response, body) {
            console.log('error:', error); // Print the error if one occurred
            console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
            console.log('body:', body); // Print the HTML for the Google homepage.
        });

        userDropdownEle = element(by.css(logoutSelectors.dropDownButton));
        xchangePageObject.getLoginUrl();
    });
});

0 个答案:

没有答案