jmeter元件详细介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jmeter元件详细介绍
⼀、基本介绍
可以进⾏功能测试、性能测试、⾃动化测试。
⼆、配置元件介绍
线程组:threads
虚拟⽤户数,设置Jmeter按照什么场景运⾏,是⼀系列线程的集合,每⼀个线程都代表⼀个正在使⽤应⽤程序的⽤户。
在JMeter中,每⼀个线程都意味着模拟⼀个真实⽤户向服务器发起请求。
⽐如设置的线程数为50,JMeter将创建并模拟测试50个⽤户请求到服务器端
(指的是在线⽤户数量,并不是并发数量)。
setUp Thread Group:⽤于执⾏预测试操作,⽐如初始化的配置,类似LR中的init
tearDown Thread Group:⽤于执⾏测试后动作,⽐如建⽴数据库连接后,测试结束需要关闭数据库,类似LR中的end。
问题1 :统⼀作⽤域范围内执⾏顺序
结论:线程组在同⼀作⽤域名范围内执⾏顺序为:setUp Thread Group (init进⾏初始化操作)->线程组-> tearDown Thread Group(进⾏收尾关闭⼯作)
问题2 :在并发的情况下同⼀作⽤域范围内线程组的执⾏顺序
验证:
结论:线程组在并发的情况下执⾏顺序为:setUp Thread Group (init进⾏初始化操作)->线程组(并发执⾏)-> tearDown Thread Group(进⾏收尾关闭⼯作)
问题3 :在并发的情况下同⼀作⽤域范围内线程组的执⾏顺序
验证:
结论:线程组的执⾏次数跟线程数有关。
菜单栏:函数助⼿对话框:
打开⽅式:打开-选项-函数助⼿对话框-_CSVRead)
作⽤:读取csv⽂件的第⼆种⽅式,也是读取参数的第三种⽅式
其中第⼀⾏表⽰:填写csv⽂件的路径+名称
第⼆⾏表⽰:参数的列号,默认是从0开始的。
点击⽣成即可,在复制到对应的请求参数中:
注意:利⽤函数助⼿读取CSV⽂件时,默认线程数也就是代表⼀个⽤户数永远只会读取⼀个数据,就算加上循环次数也只是表⽰⼀个⽤户重复将⼀个数据读取三次。
如下所⽰:
注意:利⽤函数助⼿读取CSV⽂件时,要想所有的数据都能被读取,只是通过线程数来控制,多个线程数表⽰多个⽤户分别读取不同的数据。
2.1:HTTP请求默认值:
打开⽅式:配置元件---http请求默认值
作⽤:可以设定⼀些缺省值,假设有10个请求,访问域名和端⼝都是⼀样的,那HTTP请求中就不再需要单独配置了,⽐较⽅便这样增加脚本的移植性。
2.2:HTTP信息头管理:
打开⽅式:配置元件---http信息头管理
作⽤:内容为空,有需要的时候进⾏添加,否则⽆需处理,⼀般的请求格式:
1、类似form表单
2、参数json格式,添加Content-Type:application/json,utf-8
3、参数是XML,添加text/xml
2.3:HTTP cookie 管理器:
打开⽅式:配置元件---http cookie 管理器
作⽤:发送请求,经常要校验cookies信息,录制时使⽤的cookie管理器,只能在指定的域下⾯使⽤,如果服务器地址切换,发现发送请求时,就会出现no cookies。
储存在⽤户本地终端上的数据,主要⽤于默认cookie管理,通常情况下,当⽤户结束浏览器会话时,系统将终⽌所有的cookie,当web服务器创建了Cookie后,只要在其有效期内,当⽤户访问同⼀个Web服务器时,浏览器⾸先要检查本地的cookies,并将其原样发送
给web服务器。
如何设置:
1、⾃动管理cookies,jmeter配置⽂件中设置(bin⽬录)CookieManage.save.cookies=true,去掉前⾯的#,然后重启jmeter
2、⼿动添加cookies,可以利⽤Firefox中导出cookies之后,再导⼊Jmeter中轻松完成(浏览器需安装Firebug)
2.4:HTTP 授权管理器:
打开⽅式:配置元件---http 授权管理器
作⽤:可以理解为⽤户名和密码的验证过程,也是⼀种验证机制,⽐如说客户端或浏览器与服务端发⽣交互、发⽣请求时,需要提供凭证(URL、⽤户名、密码),提交后服务端通过后才会继续后续的请求或者交互。
clear auth on each iteration:是不是每次迭代时都清空,不勾验证⼀次可能就不再去验证了,⼀般不勾
2.5:计数器:
打开⽅式:配置元件---计数器
作⽤:数字记录
启动(Starting value):开始值
递增:即步长,以多少进⾏增长,若值为2,起始值为1,那么第⼆个请求执⾏时就是3
最⼤值(Maxinum value):⼀直递增到最⼤值时停⽌增长
Number format:python-00000000,0表⽰占位符
引⽤名称:存储递增后的值,如num
与每⽤户独⽴的跟踪计数器:每个线程都去独⽴计数,互不⼲扰,准确性会更⾼⼀点
如果遍历⼀次后已经达到最⼤值了,但还达到线程的循环数,此时⼜会重头开始遍历
2.6:CSV Data Set Config :
打开⽅式:配置元件---csv data set config
作⽤:⽤于读取txt⽂件数据,注意:默认txt⽂件的第⼀⾏内容会被当成参数读取
Filename:txt数据⽂件的⽂件路径+⽂件名称
Variable Names:txt⽂件中⽂件列的变量名
jmeter 参数的调⽤⽅式:
与正则表达式类似:${变量名},如${p1}
2、CSV Data Set Config:也可以⽤于读取csv⽂件数据,注意:默认csv⽂件的第⼀⾏内容会被当成参数读取,其他参数写法同上。
${变量名}格式,也可以在⽂件中加⼊于其结果⼀列。
这样在jmeter配置中加⼊预期结果的参数:
在响应断⾔中添加预期结果即可:
2.8:⽤户定义的变量:
打开⽅式:配置元件---⽤户定义的变量
作⽤:对于测试来说经常更换测试服务器地址时常有的事情,所以把测试的服务器地址作为⽤户定义的变量最适合不过,将测试的ip地址写在变量中,http请求中在去引⽤这些变量:
三、sampler
3.1:HTTP请求:
打开⽅式:线程组---sampler----Http请求
作⽤:可以设定⼀些缺省
Content encoding :内容的编码⽅式,默认值为iso8859
⾃动重定向:如果选中该选项,当发送HTTP 请求后得到的响应是302/301 时,JMeter ⾃动重定向到新的页⾯
跟随重定向:如果请求中涉及到了类似session id的变化,就选择这个
Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,可以使⽤表单形式发送,默认不选中。
注意:如果是POST请求,数据以Json的格式传的,那么可以把参数写在Body Data⾥⾯,格式:{"XXX":"XXX"},若不是Json格式的话就直接写xx=xx,多个参数中间⽤&
四、后置处理器
4.1:正则表达式提取器:当上⽂有些变量的值在下⽂当中被使⽤:
注意:loadrunner与jmeter中关联的不同之处:
1、在loadruner中关联函数是写在要获取变量值的页⾯的前⾯,⽽在jmeter中关联值是写在要获取变量值页⾯的后⾯。
2、在loadrunner中关联函数是⽤注册函数,⽽在jmeter中使⽤正则表达式提取器来进⾏关联。
打开⽅式:后置处理器---正则表达式提取器
作⽤:⽤于接⼝间参数传递
引⽤名称:相当于变量名
正则表达式:提取需要值的正则表达式
模板:表⽰提取结果中的第⼏值,⼀般结果⽤列表表⽰,$!$表⽰取结果中的第⼀个值,$n$表⽰取结果中的第n个值
匹配数字:0表⽰随机取,1表⽰取全部数据,n表⽰取个数据
缺省值:表⽰没有值时使⽤的默认数
案例:多参数获取
查看结果树:
jmeter 参数的调⽤⽅式:
名称:表⽰参数名
值:${变量名},此处的变量名即时正则表达式中的引⽤名称。
五、前置处理器
5.1:⽤户参数:
打开⽅式:前置处理器---⽤户参数
作⽤:⽤于接⼝间参数传递
后⾯的函数使⽤和之前的读取⽅式相同,${变量名}格式读取。
注意:如果以⽤户参数读取数据,线程数的配置原理与函数助⼿相同,⼀个线程数多次循环只会读取重复读取某⼀⾏数据。