前言
本文简单描述Jmeter的各个元件及基本的使用,是了解Jmeter的第一步。
一、Jmeter页面介绍
如图Jmeter主要分成三个区:
区域一是目录树,存放测试设计过程中使用到的元件;执行过程中默认从根节点开始顺序遍历树上的元件。
区域二是编辑区域,在【用户定义的变量】区域我们可以定义整个测试计划共用的全局变量,这些变量对多个线程组有效。
区域三是操作菜单,从左到右依次是【新建测试计划】【选择测试计划模板创建一个新的测试计划】【选择已经存在的测试计划并打开】【保存测试计划】【删除选定的元件】【复制元件】【粘贴元件】【展开目录树】【收起目录树】【禁用/启用元件】【开始运行当前测试计划,按线程组的设置来启动】【立即开始在本机运行当前测试计划】【停止运行状态的测试计划】【停止运行测试计划,立即终止】【清除运行过程中元件显示的响应数据,比如查看结果树中的内容,聚合报告中的内容,但不能清除日志控制台中的内容】【清除所有元件的响应数据】【查找】【清除查找】【函数助手对话框】【帮助】
二、Jmeter元件介绍
在介绍Jmeter元件时,使用51ste测试学习网站的登录接口来进行演示,大家可以边看边尝试。
1、取样器
取样器用来模拟用户操作,向服务器(被测试系统)发出请求或者Java请求。
51ste登录接口通过抓包工具抓取为:http://www.51ste.com/check_login.php
现在让我们来了解这个URL地址的组成:其中http是协议类型,一般协议类型现在通用为https和http;www.51ste.com是服务器地址;端口号一般来说https默认为443,http默认为80;/check_login.php为路径
HTTP请求协议由抓包工具获取,一般常见的就是GET和POST
POST的协议需要传参,常见的就是以表格形式和JSON格式。怎么看是以表格还是JSON格式呢,就需要看请求头中的Content-Type(内容类型)这个字段的值了。比如这个登录接口它的这个为application/x-www-form-urlencoded,就是以表格形式传参。
2、逻辑控制器
以事务控制器为例子,假如一个事务包含登录和查询接口,那么就新建一个事务控制器,下面添加一个登录接口取样器和一个查询接口取样器。
3、前置控制器
前置控制器目前没有用过,等后续用过会补充进来,你们也可以在评论下添加实际使用时,前置控制器的使用场景。
4、后置控制器
后置处理器一般放在取样器之后,用来处理服务器的返回结果,常用的就是JSON提取器和正则表达式提取器。
5、断言
断言用来验证结果是否正确,可以帮助我们来判断请求是否成功返回且是否符合要求。
例如这个登录接口成功返回的是HTML格式的响应信息,就是勾选响应信息,模式匹配规则选择包括,测试模式为响应信息中包含的某些信息。
6、定时器
为了足够真实地模拟用户负载,我们有时会需要模拟这些请求在同一时刻发送。
例如我们需要验证同一时刻5个用户一起请求,那我们可以增加一个同步定时器,设置模拟用户组的数量为5,超时时间以毫秒为单位设置1000的意思就是当运行了1s,当用户数没有到达5也会释放请求。
7、配置元件
配置元件常用的就是CSV Data Set Config,HTTP信息头管理器、HTTP请求默认值,用户自定义变量等,后续会专门讲解。
8、监听器
JMeter的监听器有两个任务。(1)添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用;(2)展示结果,JMeter可以以表格及图形的形式展现结果。常用的监听器:查看结果数、聚合报告、TPS曲线图、用表格查看结果。
三、Jmeter元件执行顺序
JMeter的元件的执行顺序类似二叉树的中序遍历,先执行根节点再执行子节点:
(1)配置元件(如果存在)。
(2)前置处理器(如果存在)。
(3)定时器(如果存在)。
(4)取样器(如果存在)(4)
(5)后置处理器(如果存在且取样器的结果不为空)。
(6)断言(如果存在且取样器的结果不为空)。
(7)监听器(如果存在且取样器的结果不为空)。
例如上面这个例子它的执行顺序为:
(1)执行线程组
(2)执行“简单控制器”。
(3)执行配置元件“HTTP Cookie 管理器”
(4)执行前置处理器“用户参数”
(5)执行定时器”Synchronizing Timer类似于 LoadRunner 中的集合点。
(6)执行取样器“HTTP 请求 1”。
(7)执行后置处理器“正则表达式提取器。
(8)执行断言“响应断言”。
(9)执行配置元件“HTTP Cookie 管理器”,
(10)执行前置处理器“用户参数”。(10)
(11)执行定时器“Synchronizing Timer”,类似于 LoadRunner 中的集合点。
(12)执行取样器“HTTP 请求2”
(13)执行后置处理器“正则表达式提取器”。
(14)执行断言“响应断言”。
(15)执行“HTTP 请求3”,“HTTP Cookie 管理器”将不覆盖此请求。
(16)执行过程中在“察看结查树”中可以看到结果,红色字体代表失败。此元件是在取样器之后开始工作的,严格来讲它应该与第6步并行。
大家可以根据这个图来理解一下这个执行顺序。
四、总结
带大家了解了一下Jmeter的页面组成和简单的使用,大家可以用百度等其他网站可以自行尝试一下。多学多练才是真理。有什么不懂或者有疑问的欢迎大家评论或者私聊我。