我试图在JMeter中断言http响应代码。 我认为这很简单,但我遇到了一个无法修复的问题。
我的服务器可以返回2个响应代码:200和423。 200没有问题,它只是有效,但我不能断言423,我不知道为什么。
我尝试使用以下配置进行响应断言:
要测试的字段:响应代码, 模式匹配规则:包含
要测试的模式: 200 - 作品 423 - 不起作用 200 | 423 - 200作品,423不起作用(wtf?)
我还尝试了使用
的BeanShell AssertionFailure = !(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 ......
最后,我要求您的帮助。 我不知道问题是什么或可能是什么。 提前谢谢。
答案 0 :(得分:5)
如果您正在谈论HTTP Request采样器JMeter自动威胁HTTP Status Codes超过400(包括)失败。我建议使用以下设置:
按如下方式配置:
Response Code
Ignore Status
框 Matches
200|423
假设您的请求状态为200或423,则上述配置将通过,否则断言将失败。
有关JMeter断言的全面信息,请参阅How to Use JMeter Assertions in Three Easy Steps指南。