Jmeter-使用
一、Jmeter使用
1、测试计划
打开Jmeter,在菜单左侧出现 “测试计划”。在这里测试计划我们可以把它理解成新建的空白项目,在这个空白项目下面可以添加一系列的接口。

2、线程组
添加方法:右键点击Test Plan->添加->线程(用户)->线程组。
元件描述:一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。

1.线程数:即虚拟用户数。设置多少个线程数也就是设置多少虚拟用户数
2.Ramp-Up时间(秒):设置虚拟用户数全部启动的时长。如果线程数为20,准备时长为10秒,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。
3.循环次数:每个线程发送请求的个数。如果线程数为20,循环次数为10,那么每个线程发送10次请求。总请求数为20*10=200。如果勾选了“永远”, 那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束。

1.在调度器配置中,设置持续时间,这个就是持续运行的时间。
2.启动延迟,就是延迟多少时间,开始执行
3、用户定义的变量
添加方法:线程组-->配置原件-->用户添加的变量

添加完成之后,只用${ip}去引用就可以了
4、Sampler(HTTP请求)
添加方法:线程组-取样器-http请求

1.名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
2.注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
3.服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
4.端口号:目标服务器的端口号,默认值为80 。
5.协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http 。
6.方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、TRACE、OPTIONS、DELETE等。
7.路径:目标URL路径(不包括服务器地址和端口)
8.内容编码:内容的编码方式,默认值为iso8859
9.自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。
10.使用keep Alive :保持jmeter 和目标服务器之间的活跃状态,默认选中
11.对Post使用multipart/from-data:当发送POST 请求时,使用multipart/from-data方法发送,默认不选中。
12.同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。
5、响应断言
添加方法:线程组-取样器-http请求-断言-响应断言

1.apply to:通常发出一个请求只触发一个请求,所以勾选“main sampie only”就可以;若发一个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了
(1)Main sample and sub-samples:作用于主请求和子请求
(2)Main sample only:仅仅只作用于主请求
(3)Sub-samples only:仅仅只作用于子请求
(4)Jmeter Variable:作用于jmeter变量(输入框内输入jmeter变量名称)
2.要测试的响应字段:
(1)一般的http响应,都勾选“响应文本”;
(2)url样本是对sample的url进行断言,如果请求没有重定向,就请求url,如果有重定向,就请求url和重定向url;
(3)响应代码:http响应代码,如101,200,302,404,501等。当我们要验证404,501等http响应代码时,需要勾选“ ignore status”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的;
(4)响应信息:响应代码对应得响应信息,例如“OK"
3.模式匹配:
(1)包括:返回结果包括你指定的内容,支持正则匹配
(2)匹配: 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同 ;
正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。
(3) SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串
(4) 否:就相当于取反。 如果断言结果为true,勾选“否”后,最终断言结果为false。如果断言结果为false,勾选“否”后,则最终断言结果为 true
4.要测试的模式:输入结果期望值(空格要去掉)
6、监听器
添加方法:线程组 ->右键添加 ->监听器 ->察看结果树。一般还会一并添加图形结果、聚合报告。
元件描述:树状形式显示接口的访问结果,包括请求结果、请求内容、服务器的响应内容。
聚合报告
- Label 取样器别名,如果勾选Include group name ,则会添加线程组的名称作为前缀
- Samples 取样器运行次数
- Average 请求(事务)的平均响应时间
- Median 中位数
- 90% Line 90%用户响应时间
- 95% Line 90%用户响应时间
- 99% Line 90%用户响应时间
- Min 最小响应时间
- Max 最大响应时间
- Error 错误率
- Throughput 吞吐率
- Received KB/sec 每秒收到的千字节
- Sent KB/sec 每秒收到的千字节
7、事务控制器
添加方法:逻辑 控制器-事务控制器
作用:用户进行一系列操作的测试,只有整个事务控制器定义的事务成功,才算成功

Generate Parent Sample:如果选中,则生成样本作为其他样本的父项,否则样本将作为独立样本生成。
Include duration of timer and pre-post processors in generated sample:是否在生成的样本中包括计时器,预处理和后处理延迟。默认值为false。一般不建议选择,因为选择会把一些额外时间算入总时间

二、外部数据
1.csv数据文件
添加方法:添加-配置元件-CSV数据文件设置
https://blog.csdn.net/liangyoufei/article/details/83714978
2.随机变量
1)Random Variable
添加方法:配置元件-随机变量

2)__Random()
位置:


3)Counter
在整个线程组内设置一个全局变量,该变量的值是唯一的
添加方法:配置元件-计数器counter
引用名称





浙公网安备 33010602011771号