背景
在测试过程中,我们需要对某个请求的结果进行判定。
比如我们搜索“你好”,请求发送成功,返回响应码也是200,但是并不能说明返回的响应就是对的,我们可能还需要判定响应结果包含“你好”。这个时候,我们就需要用到Assertion。
Web测试常用的断言
Response Assertion:对Web请求响应结果进行验证。
Duration Assertion:判断是否在给定的时间内收到响应结果。
Size Assertion:判断响应结果是否包含正确数量的byte。可以定义等于、大于、小于或者不等于等等。
添加断言示例
1. 添加断言
添加方法:在需要验证结果的Sampler上右键,Add –> Assertions –> Response Assertion
下图就表示响应文本包含 hello 就算Pass。
Apply to : 需要应用断言的部分。
Main sample and sub-samples:作用于父节点取样器及对应子节点取样器
Main sample only:仅作用于父节点取样器
Sub-samples only:仅作用于子节点取样器
JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)
Response Field to Test:需要验证的响应部分。
Text Response:从服务器返回的响应文本。不包括 HTTP Header。
Response Code:响应码。比如 200.
Response Message:响应信息。比如 OK。
Pattern Matching Rules:匹配规则。
Contains:上面选中的部分包含下面的正则表达式就算Pass
Matches:上面选中的整个部分匹配下面的正则表达式就算Pass。
Equals:上面选中的整个部分和下面的字符串相等就算Pass。不支持正则表达式,同时对大小写敏感。
Substring:上面选中的部分包含下面的字符串就算Pass。不支持正则表达式,同时对大小写敏感。
Not:勾选上之后,会对前面选择的进行反转。比如Matches + Not 就是不匹配就算Pass。
Patterns to Test:需要匹配的正则表达式或字符串。这里可以添加多项。每一项会分开进行验证。如果一条验证失败,后边的不会再进行验证。
按照上面的方法,我们在 search_你好请求的结果加上断言:你好fsdlgggg。这样断言结果应该是Fail的。
在 search_helloworld请求结果加上断言:hello。这样断言结果应该是Pass的。
2. 添加监听
在Thread Group 上右键 , Add –> Listeners –> Assertion Results。
3. 运行
点击运行按钮运行测试计划。
4. 查看结果
可以看到 search_你好 显示为红色感叹号,同时点开有 Response Assertion 。点击 Response Assertion 可以看到具体内容。
search_helloworld 则是绿色的通过。
在 Assertion Results 监听里面,可以看到所有监听的情况。