JMeter
一.线程组介绍
原出处:点击打开链接
如上图:
名称:可以随意取,我们保持创建是自动分配的名称
注释:随意
在取样器错误后要执行的动作:我们选择继续,错误之后依然继续执行
线程数:一般我们用来表示多少个用户,即我们测试时的用户数量
Ramp-up Period(in Seconds):表示每个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 如果我设置为0秒,则表示立即启动所有用户。
循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去, 是为了方便调度器的调用。
调度器的配置:我们勾选调度器时,将会出现这个面板
启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。
结束时间:与启动时间对应,表示脚本结束运行的时间。
持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。 (即可以表示成优先级比结束时间高,如果持续时间比结束时间先到了,那么就将停止线程)
启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。
PS:如果要设置线程组定时跑5分钟,那么直接在线程组中设置持续时间为300s即可,不用管启动时间或结束时间
注意:如果我们需要用到调度器来设定持续时间,如果线程数不够多到持续时间结束,我们就必须将循环次数勾选为永远,特别地,如果线程组里面有其他的循环,我们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,需要将永远勾选),否则,按我如上配置,将永远去掉勾选,文本里填1,那么无论你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会停止不再运行。
二.CSV Data Set Config设置
(
Allow quoted data?: 双引号相关. 设置为True,则会将CVS文件中的双重双引号只读取一个;设置为False,则会将CVS文件间中的所有双引号当为有效字符传入
可以做一个例子,设置一个data.csv,内容如下
5
6
“1,2”
“3,4”
然后运行一下就懂了
)示例:
二.启动jmeter.bat进入jmeter界面
1.添加线程组
右击“测试计划”-添加-Threads-线程组;
注:如果是英文jmeter可通过“选项”-选择语言-Chinese更改;
2.添加并配置CSV Data Set Config
(1)添加:
右击“线程组”-添加-配置元件-CSV Data Set Config;
(2)配置CSV Data SetConfig参数信息
Filename:制定的文档路径和名字;可以右击文档-属性,找到文档的路径,注意要写上文档名字和后缀;
File enconding:编码格式,如果txt文档中有中文,该行就要写入utf-8;
Variable Names:定义参数;txt文档中有几列就定义几个参数;参数见用英文逗号隔开;直接写wxid,在其他模块用的时候直接${wxid}调用即可;
Recycle on EOF:到了文件尾处,是否循环读取参数;
Stop thread on EOF:到了文件尾,是否停止线程;
(3)若:想把文档中所有数据读取一遍,且不重复,那么就要设置为:
Recycle on EOF:False;
Stop thread on EOF:True;
3.添加http请求并配置
(1)添加:右击“线程组”-添加-Sample-HTTP请求;
(2)配置http请求
4.修改线程组配置
因为我们只写了一个http请求,所以点击运行只会运行一次,我们想把txt文档中所有行都执行一遍,所以我们要将线程数修改;目前txt中共175行,所以线程组中线程数我们设置为175;
5.监听结果:添加“查看结果树”和“聚合报告”
查看结果树:可以看到每个请求的执行成功失败;
聚合报告:可以看出总共执行数和失败情况等;
6.点击运行,查看结果
点击绿色箭头运行,查看结果
(1)在“查看结果树”中,可以看到参数请求的是那个值:
(2)在“聚合报告”可以看所有线程有没有执行完成
以上结果,只是让txt文档中数据全部执行了1遍,如果想执行多次,那么我们就要让http请求重复执行了;
7.重复执行http请求
(1)添加循环控制器:
右击http请求-插入上级-逻辑控制器-循环控制器;
(2)配置循环次数
8.再次查看运行结果:
一共175条数据*3=525条记录;
(一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。)
Label:每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示 的就是 Name 属性的值 v
#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户, 每个用户迭代10次,总体就会显示100
Average:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务 控制器时,也可以以事务为单位显示平均响应时间 v
Median:中位数,也就是 50 %用户的响应时间 v
90% Line: 90 %用户的响应时间 v
Min:最小响应时间
Max:最大响应时间
Std.Dev:Standard Deviation 标准差
Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数 v
Throughput:吞吐量,默认情况下表示每秒完成的请求数( Request per Second ) v
Received KB/Sec:每秒从服务器端接收到的数据量
Sent KB/Sec:每秒发送的数据量
Avg.Bytes:服务端返回Request数据的平均值,理解为:服务端返回所有数据/请求数
到此我们就完成了,多用户多次抽奖的功能;
多用户就是txt文档中多行数据,多次抽奖就是单个请求循环3次,如果抽多次就修改次数即可,谢谢观看~