软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

栏目: 编程语言 · XML · 发布时间: 7年前

在jmeter进行测试的时候,有时我们需要确定Jmeter是否正确工作。因为个别情况下,我们利用监听器查看时,监听器返回的结果是正确的,但实际上我们发送的请求中的有些参数可能是错误的,系统并没有按照我们预期的方式进行响应,例如典型的web应用一般都会有如下2种情况:

1.有一个登录页,它是整个应用的入口。当用户登录之后,应用会将用户相关的安全信息放到session中。

2.有一个filter,它拦截请求,检查每个请求相关的session中是否包含有用户安全信息。如果没有,那么请求被重定向到登录页,要求用户提供安全信息。

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

在这种配置下应用前面介绍的测试计划,那么除了登录页之外的 其它 请求都将因为缺少用户安全信息,而使请求实际定位到登录页。如果不加断言,那么在监听器看来所有的请求都是成功。而实际上,这些请求最终都没有到达它们应该去的地方。

要在JMeter中添加断言,我们首先要知道我们期望返回什么结果,比如我们利用jmeter测试http请求,向程序添加数据,同时,Jmeter又有查询的http请求,那么,我们当然要验证我们利用jmeter的http请求,是否成功添加了数据,这个时候,我们可以在查询的http请求中添加断言。

Jmeter3.0中有13种不同的断言,下面简单介绍下每个断言各自拥有什么样的作用:

1、BeanShell断言

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

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

2、 BSF断言

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

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

3、比较断言(compare assertion)

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

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

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

Select Comparison Operators:选择比较运算符

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

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

Comparison Fitters:比较修改工具

regular expression substitutions:替换正则表达式

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

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

4、HTML断言

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

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

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

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

Doctype:文档类型(可通过下拉框选择不同文档类型→ omit疏忽遗漏的/auto动态的/strict严格的/loose宽泛的。

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

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

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

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

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

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

5、JSR223断言

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

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

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

6、MD5Hex断言

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

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

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

7、Size断言

用于判断返回内容的大小;

作用对象:返回信息,响应报文

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

APPly to:应用范围(返回内容的断言范围)

Main sample and sub-samples:作用于父节点取样器及对应子节点取样器

Main sample only:仅作用于父节点取样器

Sub-samples only:仅作用于子节点取样器

JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)

Response Size Field to Test:响应字节的测试范围(可以选择用于判断的响应范围)

Full Response:全部响应

Response Headers:响应头部

Response Body:响应主体

响应代码:响应报文相关的代码

响应信息:响应报文的信息

Size to Assert:断言字节范围

字节大小单位为:字节;比较顺序是①返回内容的大小②比较类型③指定字节大小

8、SMIME断言

作用对象:针对采用了该种邮件传输协议的信息

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

9、XML概要断言

亦可以称为XML模型断言/XML数据类型断言;XML Schema 定义了两种主要的数据类型:①xml document schema 文档架构 ;② 文档架构xml-schema xml模式

作用对象:返回结果为XML概要断言的2中数据类型的消息

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

XML Schema:XML概要模型

File Name:文件名(写入需要断言的文件名称)

10、XML断言

作用对象:判断返回结果是否和xml的格式即<></>成对出现

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

11、XPath断言

作用对象:针对返回信息为XPAth的数据类型进行断言

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

Apply to:适用范围

Main sample and sub-samples:主要样本和次级样本

Main sample only:仅主要样本

Sub-samples only:仅次级样本

JMeter Variable:jmeter变量(输入框内可输入jmeter的变量名称)

XML Parsing Options:XML解析选项

Use Tidy(tolerant parser):使用Tidy(容错解析器),默认选择quiet(不显示)

Quiet:不显示

Report errors:错误报告

Show warnings:显示错误

Use Namespaces:使用名称空间

Validate XML:验证XML(文件包/数据)

Ignore Whitespace:忽略空格(这允许你指定语法分析器可以忽略哪个空格,而哪个空格是重要的)

Fetch external DTDs:获取外部DTDs(一些XML元素具有属性,属性包含应用程序使用的信息,属性仅在程序对元素进行读、写操作时,提供元素的额外信息,这时候需要在DTDs中声明)

XPath Assertion:输入框中写入xpath断言,点击Validate验证其正确性

True if nothing matches:确认都不匹配

12、响应断言

判断返回内容中的内容

作用对象:响应报文中的所有对象

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

APPly to:适用范围

Main sample and sub-samples:作用于父节点取样器及对应子节点取样器

Main sample only:仅作用于父节点取样器

Sub-samples only:仅作用于子节点取样器

JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)

要测试的响应字段:要检查的项

响应报文

Documeng(text):测试文件

URL样本

响应代码

响应信息

Response Headers:响应头部

Ignore status:忽略返回的响应报文状态码

模式匹配规则:

包括:返回结果包括你指定的内容,支持正则匹配

例如:

响应字段为: 响应文本

模式匹配规则:匹配

断言为:1、invalid 2、[a-z]+

当返回值为:{"msg":"channel invalid."} , 这两个断言都是ok的,返回true

匹配:根据指定内容进行匹配

例如:

响应字段为: 响应文本

模式匹配规则:匹配

断言为:1、{"msg":"channel invalid."} 2、{"msg":"[a-z]+ invalid."} , 3、[a-z]+

当返回值为:{"msg":"channel invalid."} ,断言1 2 是ok的, 断言3是false

当返回值为:{"msg":"channel invalid."} , 断言1 3是false, 断言2才是ok的。

原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。

Equals:返回结果与你指定结果一致

Substring:返回结果是指定结果的字串

例如:

响应字段为: 响应文本

模式匹配规则:匹配

断言为:1、invalid 2、[a-z]+

当返回值为:{"msg":"channel invalid."} , 断言1返回true, 但断言2返回false

否:就相当于取反。 如果上面断言结果为true,勾选"否"后,最终断言结果为false。如果上面断言结果为false,勾选"否"后,则最终断言结果为 true。

13、断言持续时间

用于判断服务器的响应时间

作用对象:服务器

软件测试员如何完全掌握Jmeter?这13种不同的断言了解一下!

APPly to:适用范围

Main sample and sub-samples:作用于父节点取样器及对应子节点取样器

Main sample only:仅作用于父节点取样器

Sub-samples only:仅作用于子节点取样器

Duration to assert:持续断言

Duration in milliseconds:响应时间设置(单位:毫秒),如果响应时间大于设置的响应时间,则断言失败,否则成功!

总结:

如果我们要确定Jmeter有没有按照我们的预期进行工作,我们应当考虑使Jmeter提供的断言,加到Sampler里面可以对返回的结果进行判断,例如判断HTTP返回结果里面是否含有某个字符串。如果断言为真,JMeter会标记请求为成功,否则标记为失败。

欢迎加入  51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试 工具 安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ      群:     755431660


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learning PHP 5

Learning PHP 5

David Sklar / O'Reilly / July, 2004 / $29.95

Learning PHP 5 is the ideal tutorial for graphic designers, bloggers, and other web crafters who want a thorough but non-intimidating way to understand the code that makes web sites dynamic. The book ......一起来看看 《Learning PHP 5》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具