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

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

唐景山
2023-03-14

如何将请求主体设置在一个位置,并在多个请求中重用它,以便在构建更改时节省维护测试脚本的工作量。

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

这是一个示例体,我在其中传递全局setter的值

{        "phone": "{{phone}}",
         "income": {{income}} 
}

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

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

TIA

共有1个答案

咸臻
2023-03-14

根据你所说的,我理解你希望只在一个地方定义一个可变的json主体结构,然后通过在不同的请求上指定不同的值来重用它。您可以通过使用以下内容来实现这一点:

在正文中包含变量的值

{{rawBody}}

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

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

最后,在“请求预请求脚本”选项卡上,指定与请求对应的值:

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

通过这种方式,您可以处理许多请求并一次修改其json正文。显然,如果要为每个请求指定不同的值,则必须在“请求预请求脚本”选项卡上指定它们。

 类似资料:
  • 我有一个 POST 请求,用于验证请求正文中的文本/csv 文件。请求在邮递员中成功运行:返回 HTTP 代码 200。Postman 控制台中的请求正文填充了文件路径和名称,即 src:“/Users/username/Downloads/demo_file.csv”,但是当导出集合时,请求中的文件值为空。见下文。 问题。为什么它是空的,这是一个错误/已知问题吗? 作为一个快速测试,我将文件添加

  • 我想用不同的预请求脚本多次运行相同的请求?不使用数据驱动(CSV)测试,我能做什么? 例如,我必须多次运行下面的GET url(每2分钟一次),但每当我运行它时,我都需要进行不同的预请求测试! {{url}}/legacy/COL 在此处输入图像描述

  • 我需要和邮递员一起测试我的Web API,我的Web API是post Web服务,它将被其他服务调用。如果有人对此情况有指导方针,我将不胜感激。谢谢你

  • 我试图从环境变量替换Postman中JSON主体的值,该值实际上被替换,但它在传递给POST请求时将JSON转换为字符串,因此请求最终失败,因为POST请求需要JSON主体。 例如,这里是下面的请求,变量已经在Postman中用值声明 发送请求后,整个正文将转换为字符串。知道如何保持正文是JSON,即使替换了变量的值并且不让它转换为字符串?

  • 如果是的话,有谁能向我解释如何做到这一点?