文章目录
一,组件简介
1、响应断言
对服务器的响应内容进行断言
作用:对服务器的响应进行断言校验
界面解释:
1)Apply to(应用范围):
1,main sample and sub sample :主样本和子样本
2,main sample only:主样本
3,sub-sample only :子样本
4,jmeter variable Name to use:使用jmeter变量
1)默认勾选的main sample only 一般就够了
2)一般情况一个请求,实质上只有一个请求,但是如果发起一个请求时,可以触发多个服务器请求,就有主样本和子样本的区分了
2)测试字段:
响应文本,响应代码,响应信息,响应头,请求头,URL样本,文档(文本),忽略状态,请求数据
1,响应文本:
服务器响应文本,一般普通http响应,都勾选这个
2,响应代码:
http响应代码,如101,200,302,404,501等。但当我们要验证404,501等http响应代码时,需要勾选“ ignore status(忽略状态)”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的
3,响应信息:
例如:OK, Found
HTTP/1.1 200 Ok
HTTP/1.1 302 Found
4,响应头(Response Header):
例如:
Server: Tengine
Date: Thu, 12 Mar 2015 09:43:52 GMT
Content-Type: text/html
Content-Length: 260
Connection: close
Location: http://www.baidu.com/404.html
5,请求头
6,URL样本
是对sample的url进行断言。如果请求没有重定向(302),那么就是这个就是请求url。 如果有重定向(且跟随重定向),那么url就包含请求url 和 重定向url
7,文档(文本)Document(Text):
一切Apache Tika 支持服务器响应,包括文本响应,还支持 PDF, Office, Audio, Video formats。jmeter会用Apache Tika 去解析服务器响应内容,会很耗内存,而且也很容易解析失败。所以一般普通http请求,不要选择这个
8,忽略状态
勾选,让Jmeter在运行的时候忽略失败请求的状态
9,请求数据
3)模式匹配规则:
包括,匹配,相等,字符串,否,或者
1,包括
返回结果包括你指定的内容,支持正则匹配
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、invalid 2、[a-z]+
当返回值为:{“msg”:“channel invalid.”} , 这两个断言都是ok的,返回true
2,匹配
(1) 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同
(2) 正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为: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 只匹配了返回值部分,而不是全部匹配。
3,相等(Equals)
返回结果与你指定断言完全一致
4,字符串(SubString)
与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、invalid 2、[a-z]+
当返回值为:{“msg”:“channel invalid.”} , 断言1返回true, 但断言2返回false
5,否
就相当于取反。 如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true
6,或者
2、Compare Assertion
比较断言可用于比较其范围内的样本结果。可以比较内容或经过的时间,并且可以在比较之前过滤内容。断言比较可以在“ 比较断言可视化器”中看到。
负载测试期间不得使用“ 比较声明”,因为它消耗大量资源(内存和CPU)。仅将其用于功能测试或在测试计划调试和验证期间使用。
这是一种比较特殊的断言元件,针对断言进行字符串替换时使用;
作用对象:需要替换的字符串
- Select Comparison Operators:选择比较运算符
- Compare Content:可以选择比较的内容类型(true/false或者自定义,编辑)
- Compare Time:比较时间(可以设定比较的时间,单位为秒,默认为-1)
- Comparison Fitters:比较修改工具
- regular expression substitutions:替换正则表达式
- Regex String:要替换的字符串(可从断言结果中选择)
- substitutions:替换的字符串(替换结果)
3、MD5Hex断言
针对参数类型为MD5Hex加密的参数的断言
MD5Hex断言允许用户检查响应数据的MD5 hash。
MD5Hex:将已被MD5加密的参数写入其中,添加取样器等其他元件
作用对象:针对参数类型为MD5Hex加密的参数的断言
4、Size Assertion
对响应内容的大小进行断言
大小断言测试每个响应中包含正确的字节数。您可以指定大小等于,大于,小于或不等于给定的字节数。
- Main sample and sub-samples:主样本和子样本都要
- Main sample only:只要主样本(默认)
- Sub-samples only:只要子样本
- JMeter…:断言将应用于命名变量的内容
选择需要测试的响应字段:
- Full Response:完整响应(默认)
- Response Headers:响应头
- Response Body:响应的消息体
空响应被视为0字节,而不是报告为错误。
5、SMIME Assertion
SMIME断言可用于评估来自邮件阅读器采样器的样本结果。此断言验证哑剧消息的主体是否已签名。签名也可以针对特定的签名者证书进行验证。由于大多数用户不一定需要此功能,因此需要下载其他jar,并将其添加到JMETER_HOME / lib中:
- bcmail-xxx.jar(BouncyCastle SMIME / CMS)
- bcprov-xxx.jar(BouncyCastle提供程序)
SMIME是一种多用途网际邮件扩充协议,相比于之前的SMAP邮件传输协议,增加了安全性,对邮件主题进行保护;
作用对象:针对采用了该种邮件传输协议的信息
signature:签名(可选择对协议的签名验证状态)
Verify signature:验证签名
Message not signed:没有签名消息
Signer certificate:签名证书(因为SMIME协议增加了安全传输,需要证书验证)
No check:不检查
Check values:检查
Signer distinguished name:签名证书者名称(证书注册者的名称)
Sigmer email address:签名者的邮件地址(注册的邮件地址)
Issuer distinguished name:发行者名称(由谁发行的证书)
Serial Number:证书序号
Certificate file:选择证书文件
Execute assertion message at position:执行断言消息的位置(在返回消息的具体哪个位置执行断言)
6、XML Schema Assertion
XML模式声明允许用户验证对XML模式的响应。
- File Name:文件名(写入需要断言的文件名称)
7、XML断言
XML断言测试响应数据包含形式正确的XML文档。它不会基于DTD或架构验证XML,也不会进行任何进一步的验证。
XML(可扩展标记语言) 提供一种描述结构化数据的方法。与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型;
作用对象:判断返回结果是否和xml的格式即<></>成对出现
8、XPath Assertion
XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
作用对象:针对返回信息为XPAth的数据类型进行断言
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:确认都不匹配
9、断言持续时间
持续时间断言测试在给定的时间内收到了每个响应。任何超过给定毫秒数(由用户指定)的响应都将标记为失败响应。
- Main sample and sub-samples:主样本和子样本都要
- Main sample only:只要主样本(默认)
- Sub-samples only:只要子样本