目录
前言
没有安装的伙伴,可以先看看,这篇博客:http://t.csdnimg.cn/eYMDr
1、JMeter元件及基本使用作用域(简述)
1.1、基本元件
基本元件有哪些?
我们进入后JMeter后,可以看到如下页面:
我们选中测试计划这个这一栏,可以进行重命名,不过重点不在这里,是我们要知道哪些是JMeter的原件,我们选中测试计划这一栏,右键选择添加一个线程组:
右键选择添加一个线程组:
下面的红框中,也是JMeter的元件~
各个元件的简单理解:
- Sampler:取样器。就是发送什么请求,例如http请求等,调用get、post方法发送请求
- 逻辑控制器:例如包含一些逻辑运算等
- 前置处理器:对请求参数化进行复制
- 后置处理器:提取响应中特定字段的值
- 断言:对提取出来的值与预期结果进行对比
- 定时器:例如控制循环发送请求的时间
- 配置元件:进行初始化测试数据
- 监听器:在控制台查看脚本运行的结果
看完上述的说明,可能还是有些懵,没关系,下面我们来一起继续学习,带着大家做一些案例,就会明白啦~
元件与组件有什么关系?
- 元件:多个类似功能组件的容器,可以当做是一个类
- 组件:容器中实现独立的某个功能,可以看做是一个方法
- 类中可以有多个方法
所以我们可以看到:
1.2、作用域的原则
- 取样器:核心,没有作用域
- 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用
- 其他元件:如果是某个取样器的子节点,则该元件只对其父节点起作用;如果其父节点不是取样器,则其作用域是该元件父节点下的其他节点所有后代节点(包括子节点、子节点的子节点等)
这里的第三点,我们就可以理解为,如果你是一个其他元件,而你的爸爸是取样器,那么你就可以管着你爸;如果说你爸爸不是取样器,那么你就可以管着你的新兄弟姐妹,以及你的兄弟姐妹的后代
1.3、元件执行顺序
在同一个作用域下(怎么看他们在在不在同一个作用域:同目录/级别/缩进)的不同元件的执行顺序:配置元件-前置处理程序-定时器-取样器-后置处理程序-断言-监听器
在同一个作用域的相同元件的执行顺序:从上到下一次执行
案例:
上述的执行顺序?
正解:定时器1- 请求 - 定时器1 - 定时器2 - 请求2
2、JMeter三个重要组件
2.1、线程组
什么是线程组?
JMeter中的线程组就是用于执行测试的一组用户
而这里的线程数,也就是我们所模拟的用户个数~
线程组的分类:
- Setup线程组:预测试操作,所有脚本之前执行
- Teardown线程组:测试后 操作,所有脚本之后执行
- 普通线程组:执行测试用例,可以有1个或者多个(并行 / 串行)
线程组的属性说明:
思考,以下场景:
- 模拟10个用户并行执行
- 模拟10个用户5s内启动完成
- 模拟2个用户各循环3次
- 模拟2个用户运行30s
- 模拟2个用户等待10s后开始执行
这些,场景都可以设置出来,就算是理解了这一块~
案例:
以下有两个场景:
- 配置200个线程数,循环次数为300
- 配置300个线程数,循环次数为200
实操:
访问百度为例:
添加以下组件:
添加位置:
- 线程组:选中测试计划 -
- http请求:选中线程组 -
- 察看结果树:选中测试计划 -
线程组1的设置:
就不用200、300了,运行时间有点长,我们使用20、30:
请求1的设置:
线程组2的设置:
请求2的设置:
运行所有:
运行指定的线程组:
运行线程组,运行时间:
点击察看结果树,可看到结果:
点击这里,可清空查看结果树中的数据:
分析这两个的区别:
- 线程数代表虚拟用户数,用户数越多,负载越大【例如,多个用户给服务器的压力比一个用户给的压力要大吧】
- 循环次数代表总的运行时间,次数越多,运行时间越长【运行多次的时间要比运行一次的时间长吧】
2.2、HTTP请求
该组件的作用:
向服务器发送http及https请求
位置:
上述的案例中已经说了:选中线程组-右键-添加-取样器-http请求
参数说明:
2.3、查看结果树
上述,翻译成中文,想必大家都能理解,就不解释了,下面我们主要来说一下,如何处理,响应体中,中文乱码的问题:
响应体中,中文乱码解决方案:
JMeter的安装路径下,找到bin目录---打开jmeter.properties文件,修改配置:
修改前:
修改后:
重启JMeter就可以啦~~~
3、字体放大
放大界面的字体:
JMeter的安装路径下,找到bin目录---打开jmeter.properties文件,修改配置:
修改前:
修改后:
放大消息体数据的字体:
修改前:
修改后:
重启JMeter即可~