获取测试脚本中的文件夹名称

问题描述 投票:0回答:4

我正在使用 Postman 编写 API 测试。我将它们按端点组织到文件夹中,并按端点文件夹中的测试用例组织到子文件夹中。每个端点都有多种情况,并且对于每种情况,都有一些后调用,这些调用在我要对其进行断言的 csubject-endpoint 调用之前设置数据。

我已经在这个套件中拨打了数百个电话。不幸的是,测试运行程序在其输出中没有提供文件夹名称,因此很难一目了然地看出我正在查看哪种特定情况,例如,它报告测试失败。

是否有一种方便的方法来获取测试脚本中给定调用的文件夹名称?这样,我可以将案例名称添加到测试名称前面,这将使我的测试更具可读性。

postman
4个回答
5
投票

我认为在文件夹层次结构中包含当前请求路径的变量是最好的,但目前我没有找到这样的功能。

相反,我可能会建议这样的解决方案:

在每个文件夹预请求脚本中设置一个变量:

pm.environment.set("folder", "folder1/folder1.1/")

您必须为每个文件夹单独维护文件夹变量的值。

然后在集合级别上进行如下集合测试:

pm.test("location: " + pm.environment.get("folder"), true)

在 Runner 中运行您的集合后,您将获得输出 从每个请求的测试结果开始时收集测试 显示文件夹位置。

当您估计复杂测试的结果时,设置文件夹变量的努力会得到回报。我曾经更改过请求的名称,但这更加复杂。

更新:

您还可以在将鼠标悬停在请求状态左侧的灰色路径快捷方式上的结果中找到信息。工具提示会显示完整路径,如果您只想观察结果,实际上不需要上述解决方案,但如果您想制作一些包含该路径的日志,该解决方案可能会很有用。


1
投票
我认为应用程序内没有类似的东西 - 我可以看到的壁橱是

pm.info.requestName

 函数,它也引用了测试所属的请求名称。

这是一个基本用例,但您可以将其添加到测试名称中,以便您“快速浏览”以及针对什么请求运行了什么。

pm.test(`${pm.info.requestName} - Status code is 200`, () => { pm.response.to.have.status(200) })

如果您看一下

Newman,它可能在摘要对象中包含一些内容,您可以在脚本中提取这些内容以获取文件夹名称,但我从未这样做过。


0
投票

Pre-request Script

 选项卡中尝试以下代码。希望对你有帮助。

/** * Folder */ const location = pm.execution.location; const filterLocation = location.filter((f, i) => i && f !== "root" && f !== "index" ); const folder = filterLocation.join("/"); pm.variables.set("folder_name", folder);

enter image description here


-1
投票
现在最接近的事情是这样的:

我相信我已将其包含在向他们的团队记录的错误/功能请求中。

© www.soinside.com 2019 - 2024. All rights reserved.