使用“请求”模块在node.js中使用POST操作时出现故障

时间:2018-08-01 11:53:48

标签: node.js npm jasmine httprequest jasmine-node

我正在使用节点js,茉莉花框架进行API自动化测试。我有一个POST操作。我使用npm-request进行操作。

我在测试用例中的代码如下

...
if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k))))
    break;
...

运行此测试用例时,出现以下错误

describe('Verification of BS_057_LockDN',()=>{

    it('Verify success response for BS_057_LockDN',function(done){
        var path=require('path');
        let inputJson=require(path.resolve('./inputRequests/lockDNInput.json'));
        let endpoint=require(path.resolve('./config/endpointLockDN.json'));

        const fetch=require('node-fetch');

        let baseUrl=endpoint.url;
        let apikey=endpoint.apikey;

    let fullUrlWithQueryParameters= baseUrl + "?apikey=" + apikey

        console.log(fullUrlWithQueryParameters);
        console.log(inputJson);
        console.log("test");


        var request = require('request');

     request.post(fullUrlWithQueryParameters,inputJson,
    function (error, response, body) {
        console.log('ew fu----------------------------------------------')
        if (error) 
            {

                console.log(error);
                return done();
            }
            console.log('first');
            console.log('HTTP STATUS CODE:'+ response.statusCode);
            console.log('second');
            console.log(body);
            expect(body).not.toBeUndefined();
            expect(body.Header.MsgType_T).toBe('RESPONSE');
            done();
    }
);

    },1000*60*60)


})

我不确定为什么我的POST操作无法定义。我使用的方法正确吗?

我已经附加了SOAP ui请求和响应。enter image description here

2 个答案:

答案 0 :(得分:0)

您的请求似乎还可以。但您尝试从正文中的未定义字段读取数据

expect(body.Header.MsgType_T).toBe('RESPONSE');

此处“ Header”在体内不存在。

答案 1 :(得分:0)

从不进行两步对象访问而不检查它。

在这里您要访问“ expect(body.Header.MsgType_T).toBe('RESPONSE');”中的“ body.Header.MsgType_T”无需检查“ body.Header”是否存在。

希望这会有所帮助。