我正在调查 Postman,但我找不到组织请求的最佳方式。让我举个例子吧: 假设我正在测试两个微服务,我的目标是自动化测试并创建一个报告来告知我们结果。每个微服务都有 10 个可能的请求要执行(获取、发布等)。
理想的解决方案是拥有一个包含两个文件夹(每个微服务一个)的集合,并且每个文件夹有 10 个请求;并能够使用 CSV/JSON 数据文件从 newman 运行该集合,生成最终报告(使用 htmlextra 等工具)。
问题来自于数据和迭代。关于迭代,某些请求(例如某些“GET”)仅需要执行 1 次,而其他请求(例如某些“POST”)需要多次执行来检查状态(如果它返回 200、400 等)。关于数据,同一个集合中有 10 个请求,并且其中一些请求占用了 csv 的相当多列,数据文件变得不可读且难以维护。
因此,当我运行该集合时,我得到的是一个不可读的数据文件以及对不需要它们的请求的多次迭代。作为替代方案,我可以为每个请求创建 1 个集合,并为每个集合创建一个数据文件,但在这种情况下,从 newman 执行时我无法获得整体报告,因为要执行多个集合,我必须执行多个 newman 指令,为每一个生成一个报告文件。所以我会得到 20 个 html 文件作为报告,每个请求 1 个(也不可读)。
很抱歉,如果我指向错误的方向,因为我没有使用该工具的经验。 在网络上我只看到报告和基本集合的示例,但我想看到更“真实”的东西。
非常感谢!
我的笔记总结:
我通过这种方式解决了类似的问题:
数据文件存储了一些数据集(在我的例子中 - 测试用例)。我使用变量 dId 在数据文件中创建了一个附加列,以唯一地标识和管理每个数据集。
在开始集合中的邮递员中创建一个新请求(什么都不做)并将其命名为Setup。
设置 -> 测试选项卡:
switch (data.dId) {
case (101):
postman.setNextRequest('request_101');
break;
case (102):
postman.setNextRequest('request_102');
break;
case (103):
postman.setNextRequest('request_103');
break;
default:
console.log('No value found');
}
在集合中的其他请求中,通过 postman.setNextRequest(_reqName); 设置执行后您希望发生什么//或者postman.setNextRequest(null);
这可能很奇怪,但它有效:)