如何将响应正文从Postman Collection Runner结果导出/下载到外部文件中?
我正在从事一个项目,在这个项目中,我必须使用不同的变量值多次访问web服务 例如,{{value}} 使用Postman collection runner传递不同的值 我想将所有请求的响应体下载到一个文件中。如何做到这一点?我认为您无法在collection runner中下载请求的响应正文-您可以导出测试结果,但我不确定其中是否包含响应正文数据。您还可以单击runner中的每个请求并查看响应正文,但这仍然都在UI中 对于单个请求,您可以使用如何将响应正文从Postman Collection Runner结果导出/下载到外部文件中?,postman,postman-collection-runner,Postman,Postman Collection Runner,我正在从事一个项目,在这个项目中,我必须使用不同的变量值多次访问web服务 例如,{{value}} 使用Postman collection runner传递不同的值 我想将所有请求的响应体下载到一个文件中。如何做到这一点?我认为您无法在collection runner中下载请求的响应正文-您可以导出测试结果,但我不确定其中是否包含响应正文数据。您还可以单击runner中的每个请求并查看响应正文,但这仍然都在UI中 对于单个请求,您可以使用发送和下载选项,该选项将显示响应正文: newman
发送和下载
选项,该选项将显示响应正文:
newman run <path to your collection json file> -e <path to your environment json file> -r cli,html --reporter-html-template template.hbs
我相信您可以做一些变通,将响应主体保存为一个环境或全局变量,然后再导出它,但这似乎是一个笨拙的、有点黑客攻击的解决方案
pm.globals.set('response_body', JSON.stringify(pm.response.json()))
但是每次都会被覆盖,所以每次都需要更改变量名,或者在代码中添加一些内容来更改其名称,以获得唯一的变量集
然后可以使用
管理环境
部分导出并本地保存这些文件 通过运行本地服务器,然后使用in-Postman构建发送到该服务器的请求,您可以写入文件系统
这里有一篇关于你的博客文章。你也可以做同样的事情
对于您的项目,您可以将响应主体存储在一个变量中,然后在POST请求中将该变量作为有效负载传递给本地服务器。您的本地服务器将侦听POST请求,并将数据写入您的文件系统。从这里得到提示-,下面是我编写的nodeJS服务器,它将捕获请求和响应,并将它们与请求名称(您已在Postman中设置)和URL一起逐个打印
然后将上述代码复制粘贴到js文件“filename.js”中,并通过下面的命令运行它-
node filename.js
包含所需信息的输出将保存在同一目录中名为“test.html”的文件中。如果您可以将最终数据存储在环境变量中,只需在Collection Runner完成后将其复制到文本编辑器中的.JSON文件中,这里有一个简单的解决方法 首先,您需要创建一个环境(在Postman上),并定义一个名为
responseData
的变量,其值为[]
然后,在Builder中的“测试”下添加以下代码并保存集合。Postman环境变量旨在用作字符串,因此我们将解析对象,然后将JSON响应从API推送到对象数组中
var jsonData = JSON.parse(responseBody);
var old = pm.environment.get("responseData");
old = JSON.parse(old);
// filter jsonData if needed
old.push(jsonData);
old = JSON.stringify(old);
pm.environment.set("responseData", old);
console.log(pm.environment.get("responseData"));
现在,您可以通过查看环境变量值来检索包含所有响应数据的嵌套JSON对象(参见下面的示例)
警告:每次使用Collection Runner后,必须将
responseData
值重置为[]
,以避免保留以前运行的数据。我遇到了这种情况,并使用CLI工具解决了它
首先,您需要将集合和环境导出为JSON文件。然后使用以下命令安装newman:
sudo npm install -g newman
然后,如果您想要一个整洁的HTML结果报告,那么首先使用下面的命令安装外部报告的newman reporter HTML
sudo npm install -g newman-reporter-html
现在可以通过运行以下命令生成报告:
newman run <path to your collection json file> -e <path to your environment json file> -r cli,html
在此部分下方,添加以下行:
<div class="col-md-12"> </div>
<br/><div class="col-md-4">Request body</div>
<div class="col-md-8">
<textarea class="json" disabled rows="8" cols="70">
{{request.body}}
</textarea>
</div><br/>
<div class="col-md-12"> </div>
<br/><div class="col-md-4">Response body</div>
<div class="col-md-8">
<textarea class="json" disabled rows="8" cols="70">
{{response.body}}
</textarea>
</div><br/>
请求正文
{{request.body}
响应体
{{response.body}
现在,您可以运行以下命令来呈现带有请求和响应正文的HTML:
newman run <path to your collection json file> -e <path to your environment json file> -r cli,html --reporter-html-template template.hbs
newman run-e-rcli,html--reporter html template template.hbs
希望这有帮助 这对我有帮助!A+你是救命恩人刚刚用建议更改=>的模板创建了一个要点该解决方案能在flask python中帮助我吗?嗨,我只是在生成的html中保存第一个请求,即使我运行了不止一个请求,你知道为什么会这样吗?我的命令如下:newman run latina.postman_collection.json-d data.json-rcli,html--reporter html template.hbs
<div class="col-md-12"> </div>
<br/><div class="col-md-4">Request body</div>
<div class="col-md-8">
<textarea class="json" disabled rows="8" cols="70">
{{request.body}}
</textarea>
</div><br/>
<div class="col-md-12"> </div>
<br/><div class="col-md-4">Response body</div>
<div class="col-md-8">
<textarea class="json" disabled rows="8" cols="70">
{{response.body}}
</textarea>
</div><br/>
newman run <path to your collection json file> -e <path to your environment json file> -r cli,html --reporter-html-template template.hbs