Api 从预请求脚本更改邮递员请求名称
我目前正在尝试使用CSV数据源实现一些邮递员请求。 例如,假设我有一个名为“以用户身份打开”的请求。 在csv文件中,我有一堆用户凭证,其中包含描述用户角色的描述字段。 我希望能够更改请求名称以反映每个用户角色。 例如,如果请求是作为管理员用户发出的,我希望报告和运行程序中的请求名称是“作为管理员用户打开” 在文档中,我找到了pm.info.requestName变量,但它似乎是只读的。 我在请求前脚本中放了以下内容Api 从预请求脚本更改邮递员请求名称,api,testing,postman,Api,Testing,Postman,我目前正在尝试使用CSV数据源实现一些邮递员请求。 例如,假设我有一个名为“以用户身份打开”的请求。 在csv文件中,我有一堆用户凭证,其中包含描述用户角色的描述字段。 我希望能够更改请求名称以反映每个用户角色。 例如,如果请求是作为管理员用户发出的,我希望报告和运行程序中的请求名称是“作为管理员用户打开” 在文档中,我找到了pm.info.requestName变量,但它似乎是只读的。 我在请求前脚本中放了以下内容 pm.info.requestName=“1”; 日志(pm.info.req
pm.info.requestName=“1”;
日志(pm.info.requestName)代码>
但获得了“作为用户打开”值,而不是指定的“1”
有没有人尝试过同样的把戏,或者知道这是否可能?恐怕你做不到。pm.request对象仅在请求执行后可用。我甚至认为您不能以您想要的方式访问请求名称(我想我会在'id'成员中找到它,但它是空的)
查看一下关于请求对象的成员和方法的可用性
您可能会找到另一种继续进行的方式(可能会复制您的测试,用admin重命名它,并且在适当的条件下,启动admin请求而不是普通用户请求?仅仅为了一个测试名称就有点麻烦)
我考虑了其他一些事情:您可以定制断言标签,这就是我在TFS报告中使用“可读”测试名称所做的。在“测试”选项卡中:
test_name = "[ "+ request.name + " ] - ";
对于每个断言(示例):
在“响应测试”选项卡中,这提供了如下内容:
PASS [Get all configuration]-Status code is 200
在特定条件下,您可以用自定义字符串替换request.name或do request.name+“admin”
希望这有帮助我也在寻找解决方案,我已通过以下方式解决了这个问题:
- 使用“请求前脚本”确定用户的角色李>
- 将url设置为环境变量或全局变量
- 在请求中使用该url,如{{url}
- 清除“测试”选项卡中的环境或全局变量
在我的例子中,我使用环境变量来获取环境,而不是使用数据变量
var environment = pm.environment.get("environment");
var url;
switch(environment) {
case "test":
url = pm.globals.get("test-url");
break;
case "acc":
url = pm.globals.get("acc-url");
break;
case "prod":
url = pm.globals.get("prod-url");
break;
default:
url = pm.globals.get("test-url");
break;
}
pm.environment.set("url", url);
希望这有帮助
var environment = pm.environment.get("environment");
var url;
switch(environment) {
case "test":
url = pm.globals.get("test-url");
break;
case "acc":
url = pm.globals.get("acc-url");
break;
case "prod":
url = pm.globals.get("prod-url");
break;
default:
url = pm.globals.get("test-url");
break;
}
pm.environment.set("url", url);