JMeter-断言

断言

断言是用来检查请求最终结果是不是符合我们的要求的,一般作为请求的子组件存在(最好一个断言只用来验证一个请求),每个请求可以有多个断言
(我觉得,有响应断言和BeanShell断言差不多已经可以达到所有要求了,所以只写这2个。。)

JMeter-断言_第1张图片

1. 响应断言

对请求的响应结果进行验证
JMeter-断言_第2张图片

属性 描述 备注
Apply to Sampler可能会产生子Sampler,这里需要选择从哪个Sampler中进行提取
要测试的响应字段 测试请求的哪一部分内容
响应文本:请求返回的响应内容(“察看结果树”的响应数据),不包括HTTP 头信息
响应代码:e.g 200
响应信息:e.g OK
Response Headers:
Request Headers:
URL样本:
Document(text):
Ignore Status: 当期待结果为失败时,比如期待请求返回response code 400,需要选择此项,不然请求默认是失败的,即使通过了断言检查。
可以参照正则表达式中的要检查的响应字段的说明。
另外要注意,如果有多个断言,选择Ignore Status的断言会影响到排在它前面的其他断言,所以Ignore Status一般只要在第一个断言中设置就可以
(多个断言同时选择的话,就是否定之否定这么循环下去了。。自己看着办吧。。)
模式匹配规则 说明要使用哪种方式去验证所测试的文本
包括:要测试的响应字段包括测试文本,支持正则
匹配:要测试的响应字段与测试文本相同,支持正则
Equals:要测试的响应字段与测试文本相同,不支持正则
Substring要测试的响应字段包括测试文本,不支持正则
否:选择的匹配规则验证不通过表示成功
或者:如果有多个测试文本,只要有一个通过,就表示断言测试通过(默认是要全部通过的)
包括、匹配: 使用Perl5的正则
Equals, Substring:大小写敏感
要测试的模式 添加要测试的内容,可以添加多个。

在“察看结果树”或“断言结果”中可以看到断言成功或失败
察看结果树,断言成功,请求显示为绿色
断言失败,请求显示红色,并可以点开查看哪个断言失败(通过的断言不会显示)
JMeter-断言_第3张图片
JMeter-断言_第4张图片

断言结果
断言失败会显示失败的断言
JMeter-断言_第5张图片
JMeter-断言_第6张图片

2. BeanShell断言

使用BeanShell脚本来验证请求结果
语法使用与Beanshell Sampler一样的,但注意内置变量有不同。
脚本的好处在于自由,比如查询用户列表,不同的查询条件返回用户数量不同,如果使用响应断言去验证基本上是一个难以完成的任务,这时候脚本类断言就派上用场了。
JMeter-断言_第7张图片

内置变量

  • 可读写

    1. vars:操作Jmeter变量
          a) vars.get(“name”):从jmeter中获得变量值
          b) vars.put(“key”,”value”):保存数据到jmeter变量中,如果变量不存在会自动创建
    2. props: 操作Jmeter属性
          a) props.get(“START.HMS”);  注:START.HMS为属性名
          b) props.put(“PROP1”,”1234”); 保存数据到Jmeter属性中,如果属性不存在会自动创建
    3. log: 记录日志
      比如log.info(“日志信息”); 具体查看: https://www.slf4j.org/api/org/slf4j/Logger.html
    4. Failure: boolean; 用于设置断言结果(true表示断言失败,false断言通过,默认为false)
    5. FailureMessage: 用于设置断言信息
    6. SampleResult: 当前Sample的结果方法集,具体查看:
      http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
  • 只读

    1. ResponseData: 响应数据(response body,byte数组)
    2. ResponseCode: 响应码
    3. ResponseMessage: 响应信息,比如 OK
    4. ResponseHeaders: 响应头
    5. RequestHeaders: 请求头
    6. SampleLabel: 当前Sampler的名称
    7. SamplerData: 请求中发送的数据(包括: 请求方法,URL, 请求参数,Cookie;不包括请求头)
    8. ctx: 上下文,具体查看:
      http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html

断言失败的时候:
JMeter-断言_第8张图片

你可能感兴趣的:(jmeter)