我正在使用node js,jasmine框架来进行API自动化测试。我有个POST手术。我使用npm-request来做这个操作。
我在测试用例中的代码如下
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)
})当我运行这个测试用例时,我得到以下错误
Failures:
1) Verification of BS_057_LockDN Verify success response for BS_057_LockDN
Message:
TypeError: Cannot read property 'MsgType_T' of undefined
Stack:
at <Jasmine>
at Request._callback (F:\johny\node_from_home\spec\BS_057_LockDN.spec.js:44:32)
at Request.self.callback (F:\johny\node_from_home\node_modules\request\request.js:185:22)
at emitTwo (events.js:126:13)
at Request.emit (events.js:214:7)
at Request.<anonymous> (F:\johny\node_from_home\node_modules\request\request.js:1157:10)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at IncomingMessage.<anonymous> (F:\johny\node_from_home\node_modules\request\request.js:1079:12)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
Message:
Failed: Cannot read property 'MsgType_T' of undefined
Stack:
at <Jasmine>
at Request._callback (F:\johny\node_from_home\spec\BS_057_LockDN.spec.js:44:32)
at Request.self.callback (F:\johny\node_from_home\node_modules\request\request.js:185:22)
at emitTwo (events.js:126:13)
at Request.emit (events.js:214:7)
at Request.<anonymous> (F:\johny\node_from_home\node_modules\request\request.js:1157:10)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at IncomingMessage.<anonymous> (F:\johny\node_from_home\node_modules\request\request.js:1079:12)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
1 spec, 1 failure
Finished in 60.348 seconds
Randomized with seed 13965 (jasmine --random=true --seed=13965)我不确定为什么我的POST操作没有定义。我使用的方法是正确的吗?
我已经附加了SOAP ui请求和响应。

发布于 2018-08-01 20:21:07
您的请求似乎是可以的。但是您正在尝试从body中未定义的字段读取数据
expect(body.Header.MsgType_T).toBe('RESPONSE');这里"Header“不存在于body中。
发布于 2018-08-01 20:50:52
在没有检查的情况下,永远不要进行两步对象访问。
在这里,您正在访问"expect(body.Header.MsgType_T).toBe('RESPONSE');“中的"body.Header.MsgType_T”,而没有检查"body.Header“是否存在。
希望这能帮上忙..
https://stackoverflow.com/questions/51632639
复制相似问题