编辑:以下答案仍然有效,您可以跳过并阅读它,但我想先发出警告:如果您尝试在 Postman 中使用它,您可能应该使用 Postman 以外的其他东西,例如 Mocha,进行测试. Postman 适用于中小型应用程序,但非常大型的多开发人员应用程序可能是使用 postman 维护的噩梦。应用程序内编辑器对于大文件来说是一团糟,版本控制可能会出现问题。
ANSWER
你可以有一个更易读的解决方案和更多的可能性来分解你的代码(比如直接function1()
从function2()
你的预请求脚本中调用,或者声明包)使用以下语法:
初始化环境(或全局变量):
postman.setEnvironmentVariable("utils", () => {
var myFunction1 = () => {
//do something
}
var myFunction2 = () => {
let func1Result = myFunction1();
//do something else
}
return {
myPackage: {
myFunction1,
myFunction2
}
};
});
然后在以后的测试中使用您的函数:
let utils = eval(environment.utils)();
utils.myPackage.myFunction1(); //calls myFunction1()
utils.myPackage.myFunction2(); //calls myFunction2() which uses myFunction1()
奖金 :
如果您正在调用 API 并且需要在执行测试之前等待调用完成,您可以执行以下操作:
postman.setEnvironmentVariable("utils", () => {
var myFunction = (callback) => {
return pm.sendRequest({
// call your API with postman here
}, function (err, res) {
if (callback) {
//if a callback method has been given, it's called
callback();
}
});
}
return {
myPackage: {
myFunction,
}
};
});
然后使用它:
utils.myPackage.myFunction(function() {
console.log("this is the callback !")
//perform test here
});