jmeter的好处
开元,免费,基于java编写,可集成到其他系统可拓展各个功能插件,支持接口测试,压力测试,负载测试等多种功能,支持录制回放,入门简单相较于自己编写框架和其他开源工具,有较为完善的UI界面,便于接口调试,多平台支持,可在Linux,Windows,Mac上运行,支持多协议
jmeter的作用
1.接口测试 postman/jmeter
2.性能测试 jmeter
3.数据库测试
jmeter怎么用
Windows
下
Jmeter
下载安装,登录
http://jmeter.apache.org/download_jmeter.cgi
,根据自己平台,下载对应文件
安装jdk,配置环境变量,将下载的jmeter文件解压,双击/bin/jmeter.bat运行(jmeter.sh在linux上运行)
jmeter的目录结构
/bin 目录(常用文件介绍)
examples:目录下包含jmeter使用实例
ApacheJMeter.jar: jmeter源码包
jmeter,sh:linux下启动文件
jmeter.log: jmeter运行日志文件
jmeter.properties:jmeter配置文件
jmeter-server.bat:Windows下启动负载生成器服务文件
jmeter-server:linux下启动负载生成器文件
/docs目录:提供了对Ant的支持文件,也可用于持续集成
/lib目录:存放jmeter依赖的jar包,同时安装插件也存放在此目录
/licenses目录:软件许可证
/printable_docs目录:jmeter用户手册
使用jmeter测试快速入门
线程组是什么
进程:一个正在执行的程序对应一个进程
线程:一个进程有多个执行线程
线程组:按照线程性质对线程分组
三者关系:一个进程有多个线程组,一个线程组有多个线程
测试计划
—
线程组
—
线程组属性中的线程数
并发执行:多个线程同时执行,特点:执行结束的顺序与开始的顺序不一致
顺序执行:按照线程的启动顺序挨个执行
默认情况下,线程组中的线程是并发执行
每一个线程都要执行组内的
http
请求
设置线程组顺序执行:勾选测试计划中的(独立运行每个线程组)
线程组用来模拟用户的并发访问
线程组主要包含三个参数:线程数,准备时长,循环次数
线程数:虚拟用户数。一个虚拟用户占用一个线程。设置多少虚拟用户数在这里也就是设置多少个线程数
准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为20,准备时长为10,那么需要10秒启动20个线程。也就是每秒钟启动2个线程。
循环次数:每个线程发送请求的次数。如果线程数为20,循环次数为100,那么每个线程发送100次请求。总请求书为20*10=2000.如果勾选了“永远”,那么所有线程会一直发送请求,一直到选择停止脚本。
创建http请求,指定请求域名,请求路径
1.右键测试计划---添加---Threads---线程组

2.右键线程组---添加---sampler---http请求

设置对应的查看内容
察看结果树

通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。
Thread Name
:线程组名称
Sample Start:
启动开始时间
Load time
:加载时长
Latency
:等待时长
Size in bytes
:发送的数据总大小
Headers size in bytes
:发送数据的其余部分大小
Sample Count
:发送统计
Error Count
:交互错误统计
Response code
:返回码
Response message
:返回信息
Response headers
:返回的头部信息
聚合报告参数说明

lable
:对应每一个
http
请求,显示的是
http
请求的
Name
,如百度
http
请求
name
为
baidu
#Samples:表示这一次的测试中一共发出了多少请求
Average:平均响应时间,指的是所有的请求的平均响应时间
Median
:中位数,也就是
50%
用户的响应时间
90%Line
:
90%
用户的响应时间
Min
:最小响应时间
Max
:最大的响应时间
Error%
:本次测试中出现错误的请求的数量
/请求的总数
Throughput:吞吐量,默认情况下表示每秒完成的请求数
Recived KB/Sec
:每秒从服务器端接收到的数据量,以
kb
为计算的单位
图形结果

样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:有一半的服务器响应时间低于该值而另一半高于该值。
偏离:表示服务器响应时间变化、离散程度测量值的大小。
监听器
监听器
(Listener)
负责收集测试结果,同时也被告知了结果显示的方式。我们常用的包括:聚合报告、查看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。聚合报告前面我们介绍过,后面是查看结果树和用表格查看结果的截图。
逻辑控制器
右键线程组---添加---逻辑控制器
循环控制器

代表循环两次,请求两次

事务控制器
作用: 事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。在线程组下创建事务控制器
Generate parent sample
:
(
选中这个参数结果展示如下图红框,否则显示为下图蓝框
)
Include duration of timer and pre-post processors in generated sample
:选中这一项会统计定时器(timer)
的时间,否则只统计采样器
(sample)
的时间

断言---检查点
断言
(Assertions)
可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的


前置处理器
前置处理器
(Pre Processors)
和后置处理器
(Post Processors)
负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器
定时器
定时器
(Timer)
负责定义请求之间的延迟间隔

jmeter参数化实现之用户自定义变量
编辑名称和变量值

直接用${名称}可以直接使用变量值

效果展示

参数化实现之CSV Data Set Cibfig
通过这个组件可以动态获取并设置数据,实现批量添加操作
编辑文件,各项参数

填写各项:
Filename
:所需数据文件的路径。如和脚本同一路径,可直接填写文件名
File encoding
:编码和文件保持一致即可,默认为
ANSI
。如有中文,建议为
UTF-8
Variable Names
:引用变量时的变量名,对应数据文件中的每一列,以逗号分隔。
Delimiter
:
在
.txt
、
.dat
文件中,可以用逗号(
,
)或者
Tab
键(
\t
)来区分列与列
Allow quote data
:选项选为
“true”
的时候对全角字符的处理出现乱码
Recycle on EOF
:到数据文件结尾时是否循环读取。设置为
True
时,线程数过多,数据文件读取到最后
一行时,会再次从第一行开始读取。设置为
False
,到达文件结尾时如继续读取,则值会默认为,可通
过设置
jmeter
属性
csvdataset.eofstring
来改变该值。
Stop thread on EOF
:
Recycle on EOF
设置为
False
,
Stop thread on EOF
设置为
True
,则读取数据文
件最后一行后,停止测试,不管还有多少线程组未执行。
Sharing mode
:共享模式。默认在所有线程组中使用,可选择每个线程组单独打开


查看结果数
