什么是断言?
断言帮助验证正在测试的服务器是否返回预期结果。 以下是JMeter中的一些常用断言:
- 响应断言
- 持续时间断言
- 大小断言
- XML断言
- HTML断言
- 使用响应断言的步骤
响应断言

响应断言允许添加要与服务器响应的各个字段进行比较的模式字符串。 例如,向网站http://www.baidu.com发送用户求并获得服务器响应。可以使用响应断言来验证服务器响应是否包含“OK”。
持续时间断言
持续时间断言测试在给定的时间量内是否接收到每个服务器响应。任何花费时间超过给定毫秒数(由用户指定)的响应都被标记为失败响应。 例如,JMeter将用户求发送到www.google.com,并在预期时间内获得5ms内的响应,然后测试用例通过,否则测试用例失败。

大小断言
SIZE断言测试每个服务器响应是否包含预期的字节数。可以指定大小等于、大于、小于或不等于给定的字节数。 JMeter向www.baidu.com发送用户求,并通过测试用例获得大小小于预期5000字节的响应包。否则,测试用例失败。
XML断言
XML断言测试响应数据是否由形式上正确的XML文档组成。

HTML断言
HTML断言允许用户检查响应数据的HTML语法。这意味着响应数据必须符合HTML语法。

使用响应断言的步骤
我们将继续前面教程中开发的脚本。 在此测试中,我们使用响应断言来比较来自www.baidu.com的响应包与预期的字符串是否匹配。 以下是本次测试的路线图:

响应断言控制面板允许添加要与响应的各个字段进行比较的模式字符串。
步骤1) 添加响应断言
右键单击线程组->添加->断言->响应断言,以下英文界面,请一一对应

响应断言窗格显示如下图:

步骤2) 添加要测试的模式
当向baidu服务器发送求时,它可能会返回一些响应代码,如下所示:
- 404 :服务器错误
- 200 :服务器正常
- 302 :Web服务器重定向到其他页面。这通常发生在如下所示的情况下

假设想要验证web服务器baidu.com响应代码包含模式302, 在要测试的响应字段中,选择响应代码,在Response Assertion Panel上,单击Add->a new null entry display->在Pattern to Test中输入302。

步骤3) 添加断言结果
右键单击“Thread Group”,选择“Add->Listener”->“Assertion Results


步骤4) 运行测试
单击Thread Group->Assertion Result 准备好运行测试时,单击菜单栏上的运行按钮或快捷键Ctrl+R。 测试结果将显示在“断言结果”窗格上。如果baidu服务器响应,将看到如下所示的消息:

现在回到响应断言面板,将要测试的模式从302更改为500。

因为baidu服务器响应代码不包含此模式,所以将看到测试用例失败,如下所示:

故障排除:
如果在运行上述方案时遇到此问题.执行以下操作:
- 检查是否通过代理连接到Internet。如果是,删除代理。
- 打开一个新的JMeter实例
- 在JMeter中打开AssertionTestPlan.jmx
- 单击Thread Group->Assertion Result
- 运行测试