JMeter 无法断言 Http 响应代码 423

JMeter cannot assert Http response Code 423

我正在尝试在 JMeter 中断言 http 响应代码。 我觉得这很简单,但是我遇到了一个无法解决的问题。

我的服务器可以return 2 个响应代码:200 和 423。 200没问题,能用,但我不能断言423,不知道为什么。

我尝试了以下配置的响应断言:

要测试的字段:响应代码, 模式匹配规则:包含

要测试的模式: 200 - 作品 423 - 不工作 200|423 - 200 个有效,423 个无效(wtf?)

我还尝试了

的 BeanShell 断言
Failure = !(ResponseCode.contains("200") || ResponseCode.contains("423"));

也不行。 我还尝试匹配响应消息以包含 "Locked" - 不起作用。 服务器响应如下所示:

Thread Name: 10 Users, 100 Repeats 1-10
Sample Start: 2017-05-19 13:06:09 MESZ
Load time: 33
Connect Time: 2
Latency: 33
Size in bytes: 333
Sent bytes:768
Headers size in bytes: 333
Body size in bytes: 0
Sample Count: 1
Error Count: 1
Data type ("text"|"bin"|""): 
Response code: 423
Response message: Locked

Response headers:
HTTP/1.1 423 Locked
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:capacitytest
Content-Length: 0
Date: Fri, 19 May 2017 11:06:08 GMT
Server: Not_available


HTTPSampleResult fields:
ContentType: 
DataEncoding: null

由于采样器结果中的原因,响应代码被标记为蓝色。不知道为什么。 我还通过 Beanshell 后处理器记录响应代码。是423...

最后我在这里请求你的帮助。 我不知道问题是什么或可能是什么。 提前致谢。

如果您说 HTTP Request sampler JMeter automatically threats HTTP Status Codes 超过 400(含)为失败。我会推荐以下设置:

  1. Response Assertion 添加为 HTTP 请求的子项
  2. 配置如下:

    • 适用于:根据你的测试场景
    • 要测试的字段:
      • Response Code
      • 别忘了勾选 Ignore Status 方框
    • 模式匹配规则:Matches
    • 要测试的模式:200|423

假设以上配置,如果您的请求状态为 200 或 423 - 它将通过,否则它将因断言而失败。

有关 JMeter 断言的综合信息,请参阅 How to Use JMeter Assertions in Three Easy Steps 指南。