当前位置: 首页> 技术文章> Jmeter教程之断言元件介绍

Jmeter教程之断言元件介绍

Jmeter教程之断言元件介绍

jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似;

用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。

使用断言的目的:request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。

使用断言的方法:

在选择的Sampler下添加对应的断言(因为不同类型的断言检查的内容不同);配置好响应的检查内容(根据断言情况而定,有的断言控制面板不需要添加任何内容,如XML Assertion)。

添加一个断言结果的监听器(从监听器中添加),通过断言结果可以看到是否通过断言;对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称;

  如果失败,则除了请求的名称外,还会有一行失败的原因(不同类型的断言,结果不同)。

PS一个Sampler可以添加多个断言,根据你的检查需求来添加相应的断言,当Sampler下所有的断言都通过了,那么才算request成功。

最新版本的3.0jmeter中有13种不同的断言,本周简单介绍下前6个断言元件各自拥有什么样的作用以及它们的适用场景:

 

1BeanShell断言

BeanShell之前关于定时器的随笔中有介绍过,是一种松散类型的脚本语言(这点和JS类似),一种完全符合java语法的java脚本语言,并且又拥有自己的一些语法和方法;

作用对象:针对sampler中的Bean Shell sampler而使用的断言

upfile1609587122341.png

Name:断言的名字(可以用一个比较容易理解和分辨的名称)

Comments注释(对这个断言进行一个解释,备注)

Reset bsh.interpreter before each call:在每次调用Bean Shell之前重置bsh.interpreter类(bsh.interpreterBean Shell脚本语言的一种类,也可以理解为一种解析器)

ParametersString Parameters and String []bsh.args:String参数(String []bsh.args是主类main函数的形式参数,是一个String 对象数组,可以用来获取命令行用户输入进去的参数)

Script file脚本文件(可以填入脚本文件路径)

Scriptsee below for variables that are defined:参照下文定义的变量(使脚本文件参照定义的变量来运行)

 

2 BSF断言

BSF(Bean Scripting Framework)之前也介绍过,是一个支持在Java应用程序内调用脚本语言 (Script),并且支持脚本语言直接访问Java对象和方法的一个开源项目;

作用对象:针对sampler中的BSF sampler而使用的断言

upfile1609587130647.png

Script languagee.g.beanshell,javascirpt,jexl:脚本语言(可以从下面的下拉框中选择对应的脚本语言JavaScriptbeanshell等)

parameters to be passed to script=> String Parameters and String []args:(传递给脚本的参数可以理解为使用BSF断言脚本时候一起引用的参数

Script fileoverrides script):重写脚本(可以通过选择脚本文件的状态,是浏览调用已有的脚本还是在在下方的输入框内写入脚本;)

Script下面的输入框表示可以输入变量类型,运用的脚本(取样结果、断言结果、取样日志文件等参数)

 

3、比较断言(compare  assertion

这是一种比较特殊的断言元件,针对断言进行字符串替换时使用;

作用对象:需要替换的字符串

upfile1609587141656.png

Select Comparison Operators:选择比较运算符

Compare Content:可以选择比较的内容类型(true/false或者自定义,编辑)

Compare Time比较时间(可以设定比较的时间,单位为秒,默认为-1

Comparison Fitters:比较修改工具

regular expression substitutions:替换正则表达式

Regex String:要替换的字符串(可从断言结果中选择)

substitutions替换的字符串(替换结果)

 

4HTML断言

对响应类为XML类型的文件进行断言;

作用对象:针对sampler中的SOAP/XML-RPC Request而使用的断言

upfile1609587153274.png

Tidy Settings:Tidy 环境(Tidy是一个HTML语法检查器和打印工具,可以将HTML转换为XML类型的文件)

Doctype:文档类型(可通过下拉框选择不同文档类型→ omit疏忽遗漏的/auto动态的/strict严格的/loose宽泛的。。。。。。我也不太懂这里什么意思GG

Format文件格式(可选择HTML/XHTML/XML三种不同类型的文件格式来检查返回内容)

Errors only误差校正(能接受的最大值)

Error threshold误差/错误范围(可选择误差/错误数量的范围,最大值)

Warning threshold警告范围(可选择误差警告的数量范围,最大值)

如果勾选“Error only”这里忽略Warning,只对误差作统计检查;如果对返回内容的检查结果不超过指定结果,则断言通过,否则失败。

Write JTidy report to file:写入JTidy报告的文件(JTidyTidy的一个java移植,可以将它当成一个处理HTML文件的DOM解析器)

 

5JSR223断言

JSR223Java 规范请求,是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求;

作用对象:针对sampler中的JSR223 sampler而使用的断言

upfile1609587164535.png

Script languagee.g.beanshell,javascirpt,jexl:脚本语言(可以从下面的下拉框中选择对应的脚本语言JavaScriptbeanshell等)

parameters to be passed to script=> String Parameters and String []args:(传递给脚本的参数可以理解为使用JSR223断言脚本时候一起引用的参数

Script fileoverrides script):重写脚本(可以通过选择脚本文件的状态,是浏览调用已有的脚本还是在在下方的输入框内写入脚本;)

Script下面的输入框表示可以输入变量类型,运用的脚本(取样结果、断言结果、取样日志文件等参数)

 

6MD5Hex断言

MD5是一种消息摘要算法,用以提供消息的完整性保护(具体关于MD5的知识请自行查询);

作用对象:针对参数类型为MD5Hex加密的参数的断言

upfile1609587173322.png

MD5Hex将已被MD5加密的参数写入其中,添加取样器等其他元件

 

上一篇: python比较运算符与逻辑运算符

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊