【发布时间】:2019-05-29 20:22:44
【问题描述】:
我想在 API 请求正文中传递值。 我尝试了下面的代码
var options = { method: 'POST',
url: 'https://ssgpreprod.serviceurl.in/gonogo-api/atm/tw/cro-approval',
headers:
{ 'Postman-Token': '9d6a0ad1-c3a1-402f-b845-b6416f49df6b',
'cache-control': 'no-cache',
'Content-Type': 'application/json' },
body:
{ oHeader:
{ sReqType: 'application/json',
sAppSource: 'WEB 2.02.01',
sSourceID: 'GONOGO_HDBFS',
sAppID: 610961419000670,
dtSubmit: '',
sCroId: 'HDB_TW_CRO@cell.com',
sDsaId: 'default',
sInstID: 4019,
sUserName: 'CHDBTWCRO',
sProduct: 'TW',
sDealerId: '61096' },
sRefID:testData.twPreIpa.twReferenceId,
sAppStat: testData.twCroDetails.twCroDecision,
aCroJustification: [ { sRemark: testData.twCroDetails.twRemark, sSubTo: testData.twCroDetails.twSubjectTo} ],
bApprAmtExist: true,
dApprAmt: testData.twApplyDetails.twLoanAmount,
dItrRt: testData.twCroDetails.twRoi,
dLtv: testData.twCroDetails.twLtv,
aDedupeRefID: [] },
json: true };
request(options, function (error, response, body) {
if (error) throw new Error(error);
browser.logger.info(JSON.stringify(body));
browser.logger.info(JSON.stringify(response));
browser.logger.info('status code is : ' + response.statusCode);
expect(response.statusCode).toBe(200).then(function () {
browser.logger.info('case is approved');
this.logOut(testData);
})
});
我从 xlsx 文件(即 testData.twPreIpa.twReferenceId)传递值,但我得到 422 状态代码和低于输出
[2019-05-28 15:42:10.403] [INFO] : - {"title":"Conversion Failed","status":422,"detail":"您发送的内容可能格式错误."}
另外,当我添加 - browser.logger.info('approved');上面的 var 选项打印在控制台上.. 但是当我添加 - browser.logger.info(testData.twPreIpa.twReferenceId);
它给了我错误..输出显示-
失败:无法读取未定义的属性“twReferenceId” TypeError:无法读取未定义的属性“twReferenceId”
【问题讨论】:
-
请求在哪里声明?是需要请求npm包还是其他http包?
-
对我来说,这看起来像是响应您发送了错误请求的 api。因此,您发送的数据不是它所期望的格式。此外,这与量角器完全无关。可能是
jasmine,但这里没有与量角器相关的内容。 -
@DublinDev 请求在页面顶部声明。 var request = require("request");
-
@tehbeardedone 是的。这就是我没有得到如何在 API 中传递 xlsx 数据的原因,这就是响应 422 状态代码的原因。但是如果我像 sRefID: '21532562366' 一样将正常值传递给它,那么它对我有用。我也试过 sRefID:"testData.twPreIpa.twReferenceId" sRefID:'testData.twPreIpa.twReferenceId'
-
@jenny 也许 twPreIpa.twReferenceId 是一个数字而不是一个字符串?
标签: javascript api automation protractor postman