金牛座JSON 身材post

Taurus JSON Body post

我正在尝试使用 taurus 并测试我的 restapi。 我的 restapi 在 POST 请求中使用 JSON 正文。 所以我在任何地方都找不到如何将 json 放入我的 POST 请求中。

我这样试过,但是不行。

execution:
  - concurrency: 25
    throughput: 25
    ramp-up: 1m
    hold-for: 5m
    steps: 3
    scenario: blazemeter-recording

scenarios:
  blazemeter-recording:
    timeout: 5s
    retrieve-resources: false
    store-cache: true
    store-cookie: false
    default-address: https://someurl
    headers:
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
      Accept-Language: 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4'
      Accept-Encoding: 'gzip, deflate, sdch'
      Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp'
    requests:
      - url: '/api/v8/url/url/url'
        method: POST
        label: '/api/v8/url/url/url'
        headers:
          Content-Type: application/json
        body:
          "{\"applicationId\":1,\"objectId\":196,\"tags\":[{\"tag\":\"#ObjectsFilter:filter:Data#\",\"objectId\":196,\"pagination\":{\"pageSize\":100}}]}"

我找到了解决方案,我可以使用 "body-file"

      - url: 'url'
        method: POST
        label: 'data label'
        headers:
          Content-Type: application/json
        body-file: /var/tests/json_event_filter.json

你的配置很好,查看Taurus JMeter Executor HTTP Requests documentation

body: 'request-body-string'  # if present, will be used as body

您可以通过 running Taurus in GUI mode 仔细检查它,例如:

bzt your-test.yaml -gui

bzt -o modules.jmeter.gui=true your-test.yaml

您应该看到 HTTP request 采样器在 "Body Data" 选项卡中有您的 JSON 负载:

更多信息:Navigating your First Steps Using Taurus