如何将邮递员请求正文保存在一个地方并在运行时通过

Posted

技术标签:

【中文标题】如何将邮递员请求正文保存在一个地方并在运行时通过【英文标题】:How to save a postman request body in one place and pass when run 【发布时间】:2018-09-12 20:29:15 【问题描述】:

如何将请求正文设置在一个地方并在多个请求中重用它,以便在构建更改时节省维护测试脚本的精力。

我在动态变化的环境中使用邮递员进行测试自动化。 json 主体结构可能会从构建更改为另一个, 我必须分别更新每个请求。

这是我从全局设置器传递值的示例正文

        "phone": "phone",
         "income": income 

这些变量在预请求中定义为

pm.globals.set("phone", "xxxxxxxx953");
pm.globals.set("income",10);

TIA

【问题讨论】:

那么您想要一段带有环境变量的 JSON,您可以在一个地方进行更改吗?我正在尝试了解您的实际需求。 你为什么使用邮递员?为什么不直接使用库调用 API? 【参考方案1】:

按照您的说法,我了解您希望仅在一个地方定义一个可变的 json 主体结构,然后通过在不同的请求上指定不同的值来重用它。 您可以通过以下方式实现此目的:

Body > raw 选项卡中包含您希望以这种方式配置的每个请求的变量值,例如:

rawBody

文件夹(甚至是集合)中定义要发送的JSON对象预请求脚本:

var obj = 
        phone: "phone",
        income: "income"
    ;
pm.environment.set("rawBody", JSON.stringify(obj));

最后,在请求Pre-request Script选项卡上指定请求对应的值:

pm.environment.set("phone", "xxxxxxxx953");
pm.environment.set("income", 10);

这样,您可以一次处理多个请求并修改其 json 正文。显然,如果您想为每个请求指定不同的值,则必须在请求 Pre-request Script 选项卡上指定它们。

【讨论】:

这是一个不错的解决方案 - 除了我的干预之外,您实际上可以将值设置为 null .. 您能得到的最好的结果是 "" - 真可惜!

以上是关于如何将邮递员请求正文保存在一个地方并在运行时通过的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Postman 以 JSON 格式在请求正文中发送对象数组?

邮递员发布请求无法读取未定义的属性

使用Retrofit(Okhttp)时如何从android studio中的log cat复制请求正文,标头(不带标签)?

如何通过 HttpClient 在 POST 请求中将 JSON 数据作为正文发送

发布邮递员表单数据时请求正文为空

如何将变量从 JSON 传递到邮递员正文