0

我正在尝试断言 HTTP GET 的响应

execution:
- executor: selenium
  scenario: dashboard
  iterations: 1

reporting:
- module: final-stats
  dump-xml: results/test.xml
  dump-csv: results/test2.csv
- module: junit-xml
  filename: results/testfinal.xml
  data-source: pass-fail  


modules:
  console:
    disable: true

scenarios:
  dashboard: 
    browser: Chrome
    timeout: 60s
    default-address: https://${URL}
    requests:
    - label: ignore
      url: https://${URL}
      actions:
      - waitByXPath(/html/body/div/div[2]/div/div/div/div[4]/div[2]/form/input[4]): Visible
      - keysByXPath(/html/body/div/div[2]/div/div/div/div[4]/div[2]/form/input[4]): ${USERNAME}
      - keysByXPath(/html/body/div/div[2]/div/div/div/div[4]/div[2]/form/input[5]): ${PASSWORD}
      - clickByXPath(/html/body/div/div[2]/div/div/div/div[4]/div[2]/form/div[4]/button)

    - url: /Sites/testsite/api/level1/status/auth-service-health-check 
      method: GET  
      assert:
       - contains:
          - 200
      subject: status-code

我得到的错误是“TypeError:第一个参数必须是字符串或编译模式”

请任何人帮忙我需要检查的是url的响应状态是否为200:/Sites/testsite/api/level1/status/auth-service-health-check

问题就在这里

- contains:
    - 200
  subject: status-code

如果我添加这样的错误消失了,但它会检查响应正文而不是状态码

- contains:
    - '200'
  subject: status-code
4

2 回答 2

2

检查 http-code 而不是 status-code 的建议是正确的。要对此进行扩展,请查看此处的说明: https ://gettaurus.org/docs/JMeter/#HTTP-Requests

向下滚动一点,讨论了在 Taurus 中断言是如何工作的,并提供了一些示例。特别值得注意的是这部分:

可能的主题是:
body
headers
http-code

于 2020-01-15T21:31:43.670 回答
1

您是否尝试将其更改subjecthttp-code?:

subject: http-code
于 2020-01-03T08:52:56.923 回答