jmeter 软件测试
1、性能测试是什么
- 接口测试
- 性能测试
- 压力测试
- Web自动化测试
- 数据库测试
2.4、jmeter安装和环境配置
Windows下安装jmeter
登录http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件
配置java环境
1、在系统变量中新建
变量名:JAVA_HOME
变量值:安装包的路径
2、继续新建
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
3、在用户变量中添加path
%JAVA_HOME%\jre\bin
%JAVA_HOME%\bin
此时环境就配置好了
4、将下载的Jmeter文件解压,打开/bin/jmeter.bat
双击进入 可能会有命令框 不要退掉命令框哦
3、基本功能介绍
1.测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
|
2.线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。
|
3、取样器(Sampler):模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等。
|
4、监听器:负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。
|
6、断言:用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
|
7、定时器:负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。
|
5、逻辑控制器:允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
|
8. 配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
|
9. 前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据
|
线程:一个线程可以控制或操作同一个进程里面的其它线程
线程组:按照线程性质对线程分组
3.1、创建线程组
一个HTTP请求有着许多的配置参数,下面将详细介绍:
|
名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
|
注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
|
服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
|
端口号:目标服务器的端口号。
|
方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
|
Content encoding :内容的编码方式,默认值为iso8859
|
路径:目标URL路径(不包括服务器地址和端口)
|
端口号不填默认为80 填写完成后
创建察看结果树
创建聚合报告
聚合报告中包含性能指标
lable:对应每一个http请求,显示的是http请求的Name,如百度http请求name为baidu
|
#Samples:表示这一次的测试中一共发出了多少请求,如上图所示,sougou和baidu的http请求每个都发出2个请求
|
Average:平均响应时间,指的是所有的请求的平均响应时间,如上图的2个请求的总的响应时间除以2得出的平均响应时间,默认的情况下是单个请求的平均响应时间,但当使用了“事务控制器”时,则以事物为单位显示平均响应时间
|
Median:中位数,也就是50%用户的响应时间
|
90%Line:90%用户的响应时间
|
Min:最小响应时间
|
Max:最大的响应时间
|
Error%:本次测试中出现错误的请求的数量/请求的总数,如上图所示,本次的测试中,sougou的http请求66.6%的请求出错,而baidu的请求则没有出错的请求
|
Throughput:吞吐量,默认情况下表示每秒完成的请求数,如上图所示,每秒完成的请求数分别为6.6个每秒,6.2个每秒
|
Recived KB/Sec:每秒从服务器端接收到的数据量,以kb为计算的单位
|
点击绿色三角 执行线程
点击察看结果树 能看到返回的数据
3.3、逻辑控制器的使用
3.3.1、创建事务控制器
然后在创建一个HTTP请求 添加相应的请求地址
勾选上
勾选后就是将请求放在事务中了
那我们就看看没勾选的吧
那这个baidu2的请求就不属于事务中的啦
3.3.2、循环控制器
在其中设置循环次数并创建所需要的HTTP请求
在这里我设置了循环两次
3.3.3、创建定时器
固定定时器
设置间隔时间 就会发现baidu1执行完成后300m后baidu2才开始执行的
防止混乱执行
3.4、CSV数据文件设置
创建批量请求的文件
选择创建好的文件
添加对应的数据 和设置变量
并且在HTTP请求中添加已经创建好的变量
然后我们根据封装数据的条数来设置相对应的线程数
开始执行
执行成功啦