0

我尝试使用 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}}]}"
4

2 回答 2

4

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

      - url: 'url'
        method: POST
        label: 'data label'
        headers:
          Content-Type: application/json
        body-file: /var/tests/json_event_filter.json
于 2019-10-02T10:28:16.820 回答
0

您的配置很好,查看Taurus JMeter Executor HTTP Requests 文档

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

您可以通过在 GUI 模式下运行 Taurus 来仔细检查它,例如:

bzt your-test.yaml -gui

或者

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

您应该会看到HTTP 请求采样器在“正文数据”选项卡中有您的 JSON 有效负载:

在此处输入图像描述

更多信息:使用 Taurus 导航您的第一步

于 2019-10-02T14:57:16.993 回答