JMeter无法断言Http响应代码423

时间:2017-05-19 11:10:47

标签: jmeter assertion http-response-codes

我试图在JMeter中断言http响应代码。 我认为这很简单,但我遇到了一个无法修复的问题。

我的服务器可以返回2个响应代码:200和423。 200没有问题,它只是有效,但我不能断言423,我不知道为什么。

我尝试使用以下配置进行响应断言:

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

要测试的模式: 200 - 作品 423 - 不起作用 200 | 423 - 200作品,423不起作用(wtf?)

我还尝试了使用

的BeanShell Assertion
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 PostProcessor记录响应代码。这是423 ......

最后,我要求您的帮助。 我不知道问题是什么或可能是什么。 提前谢谢。

1 个答案:

答案 0 :(得分:5)

如果您正在谈论HTTP Request采样器JMeter自动威胁HTTP Status Codes超过400(包括)失败。我建议使用以下设置:

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

    • 根据您的测试场景适用于:
    • 要测试的字段:
      • Response Code
      • 请勿忘记查看Ignore Status
    • 模式匹配规则:Matches
    • 要测试的模式:200|423
  3. 假设您的请求状态为200或423,则上述配置将通过,否则断言将失败。

    JMeter Response Assertion

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