【问题标题】:Dynamic values with in json file upload - jmeterjson文件上传中的动态值 - jmeter
【发布时间】:2018-07-24 07:14:45
【问题描述】:

我正在尝试使用 Jmeter 中的 HTTP POST 采样器 POST JSON 数据。我的数据几乎没有需要根据以前采样器的结果传递的值。下面是示例数据,我需要的是之前 GET 响应中的姓氏和日期。

{"people":{"primaryPerson":{"id":"1234","date":"2018-02-13",firstName":"Mr","lastName":"apple-eye","birthday":"1980-1-1","gender":"MALE","personType":"PRIMARY"}}

我在前一个采样器中有 json 提取器来提取所有 3 个值,但我不知道如何将它们与身体数据上传一起使用。我在用 {__FileToString(${__eval(${fileName})},,)}上传以上数据。

简而言之,当我在文件中传递数据时,我需要知道如何使用之前的采样器提取的数据替换 ID, LASTNAME and DATE

【问题讨论】:

    标签: jmeter


    【解决方案1】:
    1. 修改你的文件,如下所示:

      {
        "people": {
          "primaryPerson": {
            "id": "${foo}",
            "date": "${bar}",
            "firstName": "Mr",
            "lastName": "${baz}",
            "birthday": "1980-1-1",
            "gender": "MALE",
            "personType": "PRIMARY"
          }
        }
      }
      
    2. 修改您的 __FileToString()__eval() 函数组合,使其看起来像

      ${__eval(${__FileToString(request.json,,)})}
      
    3. foobarbaz 替换为实际的 JMeter 变量引用名称,将request.json 替换为 JSON 文件的相对或完整路径(根据第一点进行修改)

    更多信息:Here’s What to Do to Combine Multiple JMeter Variables

    【讨论】:

    • 感谢@Dmitri Tyour 解决方案解决了我传递动态值的问题。现在我遇到了另一个问题。当我使用 ${__eval(${__FileToString(C:/Jmeter/apache-jmeter-3.3/create_client_data.txt,,)})} 发布数据时,我看到 POST 数据在开始之前有两个正斜杠,如下所示POST data://{ “people”: { “primaryPerson”: { “id”: “1234”, “date”: “2018-01-14}”, “firstName”: “Mr”, “lastName”: “ apple-eye”、“birthday”:“1980-1-1”、“gender”:“MALE”、“personType”:“PRIMARY”} } }
    • 我通过添加带有内容类型和接受编码参数的 HTTP 标头管理器解决了这个问题。再次感谢上述解决方案。
    猜你喜欢
    • 2023-02-13
    • 1970-01-01
    • 2020-05-04
    • 2017-12-25
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2016-08-29
    • 2019-06-29
    相关资源
    最近更新 更多