本文介绍如何使用断言。作为测试人员,断言的概念应该听说过吧,断言就是断定测试结果的正确性。前面演示的第一个JMeter测试用例,是一个HTTP Request,也就是常听说的web API测试,中文就是接口测试。接口测试,用一句话概括就是,通过发送HTTP请求,检查响应内容是否正确。在前面文章,我们在View Results Tree里,通过人工肉眼去观察,response code: 200这样的字段。这个响应代码等于200就是个一个断言的根据,今天就来介绍在JMeter上如何使用断言。Test Plan还是用前面访问百度首页的例子基础上,逐步添加新的介绍。
1. 在前面例子基础上,点击Clear all,保持测试结果干净,这里就不截图了。
2. 在Sampler里添加一个断言
通过上面截图,我们选择的是一个在接口测试过程中,使用频率非常高的一个断言:Response Assertion。可以看到,上面有12中支持的断言模板,我也是随便猜测一下几个断言的使用场景。Duration Assertion,持续时间断言,例如一个操作,在5秒的持续时间是认为合理的,超过了就测试失败。HTML Assertion,前端测试一些手段和技术,例如什么也没有什么tag。Response Assertion,响应断言,主要有响应状态码和响应时间,响应返回内容等,这里我们介绍响应代码断言。XML断言,有些操作返回的是XML格式数据,需要去XML格式数据进行解析,断言处理。XPath断言,例如我知道根据这个XPath可以找到一个元素,这个在web自动化元素定位经常使用。
3. Response Assertion设置
这里选择Response Code,匹配规则选择完全相等,然后点击Add按钮,输入200
4. 修改Thread Group界面
点击左侧面板的Users回到了Thread Group界面,修改如下参数
5. 点击Start运行测试
如果没有清除之前results,先点击清除然后点击运行。
运行都Pass,为了模拟错误的结果,我们回到Response Assertion,把200改成201,清除results然后再次运行。点击View Result Tree查看错误结果。
错误信息显示,我们要对比的是201,当前收到的状态码是200,所以测试失败。
6.新建一个Assertion Result
在左侧面板点击Users这个Thread Group,右键,add->Listener->Assertion Results
这里,点击Clear all按钮,再次运行测试,点击Assertion Results,查看结果。
接下来,把Response Assertion里的201改成200,清除后再次运行测试,结果如下
因为这里,没有失败,没有产生其他log信息,所以显示就5次运行的HTTP Request的名称。Response Assertion就介绍到这里。