jmeter断言
一、响应断言(Response Assertion)
响应断言是最常用的一种断言方法,主要是对响应结果中的文本内容进行断言,比如响应结果是否包含指定的值,或者是否等于指定的值。响应断言可以适用各种返回类型的响应结果,如Test、html、application/json、application/xml等。
添加响应断言和断言结果
二、JSON断言
也是测试工作中经常用到的一种断言方法,它一般用于断言某个字段值是否等于我们指定的值。所以JSON断言只能针对响应结果为applicaton/json格式的进行断言操作。如果是其他类型(如:Test、html),则无法使用这种方式。
三、Size Assertion(数据包字节大小断言)
判断响应结果是否包含正确数量的byte。可定义(=, !=, >, <, >=, <=)
用于判断返回内容的大小;
四、Duration Assertion(持续时间断言)
判断是否在给定的时间内返回响应结果
用于判断服务器的响应时间
作用对象:服务器
APPly to:适用范围
Main sample and sub-samples:作用于父节点取样器及对应子节点取样器
Main sample only:仅作用于父节点取样器
Sub-samples only:仅作用于子节点取样器
五、beanshell 断言
Bean Shell常用内置变量
是一种松散类型的脚本语言(这点和JS类似),一种完全符合java语法的java脚本语言,并且又拥有自己的一些语法和方法;
作用对象:针对sampler中的Bean Shell sampler而使用的断言
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);
ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext。
vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
a) vars.get(String key):从jmeter中获得变量值
b) vars.put(String key,String value):数据存到jmeter变量中
更多方法可参考:org.apache.jmeter.threads.JMeterVariables
props - (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。
a) props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
b) props.put("PROP1","1234");
prev - (SampleResult):获取前面的sample返回的信息,常用方法:
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应code
更多方法可参考:org.apache.jmeter.samplers.SampleResult
sampler - (Sampler):gives access to the current sampler
六、BSF断言
BSF(Bean Scripting Framework);是一个支持在Java应用程序内调用脚本语言 (Script),并且支持脚本语言直接访问Java对象和方法的一个开源项目;
作用对象:针对sampler中的BSF sampler而使用的断言
七、比较断言(compare assertion)
这是一种比较特殊的断言元件,针对断言进行字符串替换时使用;
作用对象:需要替换的字符串
八、HTML断言
对响应类为XML类型的文件进行断言;
作用对象:针对sampler中的SOAP/XML-RPC Request而使用的断言
九、JSR223断言
JSR223即Java 规范请求,是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求;
作用对象:针对sampler中的JSR223 sampler而使用的断言
十、MD5Hex断言
MD5是一种消息摘要算法,用以提供消息的完整性保护(具体关于MD5的知识请自行查询);
作用对象:针对参数类型为MD5Hex加密的参数的断言
十一、SMIME断言
SMIME是一种多用途网际邮件扩充协议,相比于之前的SMAP邮件传输协议,增加了安全性,对邮件主题进行保护;
作用对象:针对采用了该种邮件传输协议的信息
十二、 XML概要断言
亦可以称为XML模型断言/XML数据类型断言;XML Schema 定义了两种主要的数据类型:①xml document schema 文档架构 ;② 文档架构xml-schema xml模式
作用对象:返回结果为XML概要断言的2中数据类型的消息
十三、XML断言
XML(可扩展标记语言) 提供一种描述结构化数据的方法。与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型;
作用对象:判断返回结果是否和xml的格式即<></>成对出现
十四、XPath断言
XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
作用对象:针对返回信息为XPAth的数据类型进行断言
jmeter中的断言就是loadrunner中的检查点