在构建 travis 后,我使用 newman 运行 api 测试。
我试图限制预请求脚本的重复,因此检查了一些关于如何在集合级别拥有预请求脚本的解决方法。
我的问题是我不想在每个请求上运行它们,只在我需要它们的地方运行它们。
示例:我尝试运行登录脚本以在私有端点上使用返回的令牌。
我的代码如下所示:
集合级预请求脚本定义:
Object.prototype.login = function() {
const request = {
url: 'somthing',
method: 'GET',
header: 'Content-Type:application/json',
body: {
mode: 'application/json',
raw: JSON.stringify(
{
email: pm.environment.get('someenv'),
password: pm.environment.get('someenv')
})
}
};
pm.sendRequest(request, function (err, res) {
var response = res.json();
pm.environment.set("token", response.token);
});
}
请求级预请求脚本定义:
_.login();
有人可以帮我解决为什么我不能在这个范围内运行 pm.sendRequest 吗?
pm.environment.get('someenv')
就像一个魅力,所以我不知道在这里做什么。
在不使用 Object 的情况下从 Collection 级别的预请求脚本调用时,它运行良好,但如果我只是将整个请求放在那里,它将在我首先要避免的每个请求之前运行。
我曾尝试使用 console.log() 记录一些内容,但似乎 pm.sendRequest() 中的回调从未运行。