当前位置: 首页 > 知识库问答 >
问题:

如何从Postman Collection Runner结果中将响应正文导出/下载到外部文件中?

端木权
2023-03-14

我正在从事一个项目,我必须使用变量的不同值多次访问 Web 服务

比如说,http://mywebservice.com?variable1={{value}}

并且使用Postman collection runner传递不同的值。

我想将所有请求的响应正文下载到一个文件中。我该怎么做?

共有3个答案

丁恩
2023-03-14

我遇到了这种情况,并使用 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

默认情况下,超文本标记语言文件将不包含请求和响应正文。为了呈现它,首先下载默认车把模板,然后稍微调整它。您可以在此处找到默认车把模板。下载文件并将其保存为template.hbs。然后在任何编辑器中打开它,查找它呈现状态代码的代码。它可能看起来像这样:

<div class="col-md-12">&nbsp;</div>
<br/><div class="col-md-4">Status code</div><div class="col-md-8">{{response.code}}</div><br/>

在此部分下方,添加以下行:

<div class="col-md-12">&nbsp;</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">&nbsp;</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/>

现在,您可以运行以下命令来呈现带有请求和响应正文的HTML:

newman run <path to your collection json file> -e <path to your environment json file> -r cli,html --reporter-html-template template.hbs

希望这有所帮助!

荣俊
2023-03-14

如果您可以将最终数据存储在环境变量中,以下是一个简单的解决方法

首先,您需要创建一个环境(Postman上的这篇博客文章中的精彩教程),并定义一个名为响应数据的变量,其值为[]

然后,在生成器的“测试”下添加以下代码

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对象(参见下面的示例)。

警告:每次使用集合运行程序后,您必须将响应数据值重置为[],以避免保留以前运行的数据。

龙晟睿
2023-03-14

我不认为您可以在收集运行器中下载请求的响应主体-您可以导出测试结果,但我不确定这是否包含响应主体数据。您也可以单击runner中的每个请求并查看响应主体,但这仍然是UI中的所有内容。

对于单个请求,您可以使用发送和下载选项,该选项将向您显示响应正文:

我相信有一些变通方法可以将响应体保存为环境或全局变量,然后再导出,但是这看起来是一个笨拙且有点黑客的解决方案。

pm.globals.set('response_body', JSON.stringify(pm.response.json()))

但是,每次都会被覆盖,因此每次都需要更改变量名称,或者在代码中更改其名称,以获得一组唯一的变量名称。

然后可以使用< code>Manage Environment部分导出并保存这些文件。

 类似资料:
  • 我想将我的SPARQL查询的结果从Blazegraph导出到一个文件中。但是,它只导出结果的第一页。当我尝试显示所有结果时,我的浏览器崩溃。 我该怎么解决这个? 我正在本地集群上运行BlazeGraph2.1.2。

  • 问题内容: 我试图将使用以下查询找到的结果导出到我的桌面上的CSV中。 这是我第一次使用Elasticsearch和cURL,因此我对如何执行此操作感到困惑。 现在,当我运行此查询时,它将返回戴夫的姓名,姓氏,地址和性别,并且我想在运行查询时将结果放入桌面上的csv中。 我一直在阅读有关如何执行此链接的操作,但是我不确定如何使我的查询执行此操作-(https://docs.python.org/3

  • 问题内容: 这是其中的代码 返回的响应是一个文件。我希望用户能够将其保存为文件,但是什么也没有发生。我认为服务器返回的响应类型正确,因为在控制台中它说 我想念的是什么?我应该在减速器中做什么? 问题答案: 浏览器技术当前不支持直接从Ajax请求下载文件。解决方法是添加一个隐藏的表单并将其提交到幕后,以使浏览器触发“保存”对话框。 我正在运行标准的Flux实现,因此不确定确切的Redux(Reduc

  • 问题内容: 假设我的jar包“ com.test.io”中有一个名为test.txt的文件。 我将如何编写一个类来检索此文本文件,然后将内容复制到文件系统上的新文件中? 问题答案: 假设jar在您的类路径中:

  • 问题内容: 我正在尝试使浏览器下载从ajax响应接收到的pdf文件。 受jquery ajax下载pdf文件启发,我模拟了如下单击/下载事件: 不幸的是,这仅适用于Chrome,不适用于Firefox + IE。当我尝试在最后两个浏览器中触发它时,没有任何反应。 由于从CMS继承,脚本和标记被放置在iframe中,但是我不确定这是否有影响。 关于如何针对所有现代浏览器进行优化的想法? 问题答案:

  • 问题内容: 我正在使用AngularJS和Spring编写应用程序。我想将请求发送到服务器,并将控制器返回的响应下载为文件。在控制器中,我有csv文件的内容(作为字符串),即(1行4列)。将此响应下载为文件的最简单方法是什么? 下面,我发布了我的简化代码。在Spring控制器中: 在javascript(AngularJS)中 我也在尝试(在下面)写入响应流,设置标头,但是在客户端,我总是以字符串