0
试图测试其余api。在我的项目中没有用于登录的API。无论何时你点击api,它都会被重定向到登录,接受用户/密码并给你结果。如何在Frisby中传递基本身份验证和发布请求?
我试着GET如下,这对我来说工作得很好。
var frisby = require('frisby')
var url = 'https://localhost:8443';
var api= '/api/v2/events/details'
var endpoint = '?id=ccce2aef971f'
var user= '[email protected]'
var pass= 'temp'
frisby.create('GET event details based on eventid from an endpoint')
.get(url+api+endpoint,{strictSSL: false})
.auth(user,pass,false)
.expectStatus(200)
.expectHeader('Content-Type', 'application/json;charset=UTF-8')
.toss();
现在我想用相同的格式但没有运气的POST方法作为回应。
var frisby = require('frisby')
var user= '[email protected]'
var pass= 'temp'
var jsonbody = {"group": "a10bbd20",
"category":"Attack",
"notes":"abcdddd",
"criteria":[ {"attribute":"PATH" ,"operator": "EQUALS", "value":"/Account/demo.aspx" }]
}
frisby.create('TEST POST')
.post('https://localhost:8443/api/v2/rule-settings/pointwise',jsonbody,{ json: true },{ headers: { 'Content-Type': 'application/json' }},{strictSSL: false})
.auth(user,pass,false)
.expectStatus(201)
.toss();
======================
我试图通过存储从以前的响应Cookie,但仍同样的错误换做POST请求超时
var frisby = require('frisby')
var url = 'https://localhost:8443';
var api= '/api/v2/events/details'
var endpoint = '?id=ccce2aef971f'
var user= '[email protected]'
var pass= 'temp'
var loginState = {
};
frisby.create('GET event details based on eventid from an endpoint')
.get(url+api+endpoint,{strictSSL: false})
.auth(user,pass,false)
.after(function (body,res) {
var cookie = res.headers['set-cookie'];
console.log(cookie);
loginState.user1 = {}; // build an object for user 1
loginState.user1.cookie = cookie;
var jsonbody = {"group": "a10bbd20",
"category":"Attack",
"notes":"abcdddd",
"criteria":[ {"attribute":"PATH" ,"operator": "EQUALS", "value":"/Account/demo.aspx" }]
}
frisby.create('TEST POST')
.post('https://localhost:8443/api/v2/rule-settings/pointwise',jsonbody,{ json: true },{strictSSL: false})
.addHeader('cookie', loginState.user1.cookie)
.addHeader('Content-Type', 'application/json')
.inspectRequest()
.expectStatus(201)
.toss();
})
.toss();
输出我得到的是
Message:
Expected 500 to equal 200.
Stacktrace:
Error: Expected 500 to equal 200.
at null.<anonymous> (C:\Users\Administrator\Documents\TestSuite\node_modules
\frisby\lib\frisby.js:493:42)
at null.<anonymous> (C:\Users\Administrator\Documents\TestSuite\node_modules
\frisby\lib\frisby.js:1074:43)
at Timer.listOnTimeout (timers.js:92:15)