断言
作用:用于检查检测在测试中得到的响应结果是否符合预期,用来保证性能测试过程中数据 交互和预期的一致性的。主要是用来做调试,真正压力测试的时候,断言禁用。
目的:在 request 返回层面加一层判断机制。
实现的过程:
1、 在请求下添加断言,请求不同,添加的断言类型不同;
2、 添加一个断言结果的监听器,通过断言结果可以看到是否通过了断言的判断,对于一次请求,如果通过的话,断言结果中就会打印一次请求的名称。
备注:一个请求可以添加多个断言,根据检查的需要添加响应的不同类型的断言,当所有的断言都通过了,才算请求成功。断言是非必须元件,根据需要添加。
Jmeter 中的断言和 loadrunner 中 检查点是一样的。
响应断言:判断返回总的内容是否满足预期
作用的对象:响应报文中所有的对象(响应代码、响应头信、响应状态码、响应体(url返回值等等))
一、应用范围(Apply to)
Main sample and sub-samples: 匹配范围为当前父取样器,及子取样器
Main sample only:仅当前父取样器
Sub samples only: 仅子取样器
JMeter Variable:变量值进行匹配
备注:如果一个请求进行了重定向(请求出现了301,302提示,会重新定向发送一个请求),那么原来的这个请求就是父请求,重定向的就是子请求。
二、测试字段(field to Test )
(1)响应文本:响应服务器返回的文本内容,http协议排除header部分
(2)响应代码:匹配响应代码,比如http请求中‘200’代表成功
(3)响应信息:匹配响应信息,处理成功返回‘成功’或者“ok”字样
(4)响应头: 匹配响应头部中的信息
(5)请求头: 匹配请求头部中的信息
(6)URL样本: 对取样器的URL进行断言
(7)断言文档: 从各种类型的文件通过Apache Tika提取文本
(8)忽略状态: 指示JMeter设置sampler status的初始状态为success。sample status是否成功,由已Response status和断言结果决定,当选中Ignore Status时,Response status被强制设置为success,不执行进一步的断言判断。仅第一次断言时使用
(9)请求数据: 对请求的数据断言
三、模式匹配规则(Pattern Matching Rules)
(1)包括: 若文本包含正则表达式模式,则断言成立;(部分匹配)
(2)匹配: 若整个文本与正则表达式模式匹配,则断言成立;(全部匹配,普通字符串,非正则表达式)
(3)相等: 若整个文本与模式字符串相同(区分大小写), 则断言成立;(全部匹配)
(4) 字符串: 若文本包含模式字符串(区分大小写),则断言成立;(部分匹配,普通字符串,非正则表达式)
(5) 否:就相当于取反。 如果断言结果为true,勾选“否”后,最终断言结果为false。如果断言结果为false,勾选“否”后,则最终断言结果为 true
(6)或者: 复选框项, 如果不想用AND连接(所有的模式都必须匹配,断言才算成功),用OR选项可以用于将多个断言模式进行OR连接(只要一个模式匹配,断言就是成功的)
四、测试模式(Patterns to Test)
测试模式:输入结果期望值(空格要去掉),可参数化
五、自定义失败信息(Custom failure message)
断言失败时发送的信息,可查看结果树查看到
Size断言(大小断言):用来判断返回内容的大小
作用对象:返回信息,响应 报文,添加大小断言,必须指定大小长度
断言持续时间:用于判断服务器的响应时间是否达到预期
作用对象:服务器
响应时间的设置:毫秒为单位,实际运行的结果与设置的时间进行比较,大于设置时间,响应断言失败,小于设置时间,响应断言成功。
关联
在测试过程中需要引用前面的结果数据,但是这些数据又是经常变动的动态数据,要获取使用这些数据,就需要用到关联。
例如:第二个请求执行需要使用第一个请求响应中返回数据的一些数据作为输入数据,就使用关联把这个两个请求的数据对接起来。
实现步骤:
1、 在第一个请求之后添加后置处理器
后置处理器的作用:在请求结束之后,处理响应结果中的特定的数据,提取需要的数据,经常会用到的后置处理器: 正则提取器,json提取器来获取需要的数据。
2、 在第二个请求中,将第一个请求后置处理器中提取的数据作为输入信息,将两个请求的数据关联起来。
后置处理器:正则表达式
命令模式下执行测试脚本,并且生成报告
Jmeter -n -t 测试脚本的路径.jmx -l 报告的路径.jtl -e -o 网页报告的路径.html
注意:在命令模式下执行Jmeter 性能测试需要切换到 jmeter的bin目录下操作。
测试报告所在的目录必须是空目录。
只生成一个.jtl报告
Jmeter -n -t 测试脚本的路径.jmx -l 报告的路径.jtl
D:\apache-jmeter-5.2.1\bin>jmeter -n -t D:\sunsun\jmeter\测试计划(城市天气).jm
x -l D:\report\baogao1.jtl
将.jtl报告可以转换为html网页报告,必须是在Jmeter 5.2版本以上才支持
生成.jtl报告,也生成html网页报告
Jmeter -n -t 测试脚本的路径.jmx -l 报告的路径.jtl -e -o 网页报告的路径.html
备注:实际执行性能测试的时候,必须在命令模式下完成,GUI模式用来调试脚本,调试好以后,禁用断言,调试取样器,然后修改线程属性,按照需求场景设置,保存脚本,命令执行。
Jdbc请求(request)
思路:jdbc请求访问数据库时发出请求
访问数据的前提:与数据库建立连接,能够访问数据库
数据库连接:IP 、端口号、用户名、密码
准备工作:
1、 数据库环境:192.168.99.68 ,数据库名称 company, 用户名 root/Dsfz123456@
2、 准备表,准备数据:emp,dept等等
实现步骤:
添加.jar包(驱动)
1、 直接将jar包赋值到jmeter 的lib目录下(mysql比较推荐)
2、 通过testplan 浏览器加载 jar 包(oracle数据库比较适用)
3、 重启jmeter,否则,后执行的时候,还是找不到驱动
建立连接信息
新建测试计划—》配置元件-》JDBC Connection Configuration
.添加Jdbc 请求(取样器)
添加监听器,查看结果树
修改线程属性