jmeter操作实例分析Word下载.docx
《jmeter操作实例分析Word下载.docx》由会员分享,可在线阅读,更多相关《jmeter操作实例分析Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
这个就是我们通常添加运行的线程。
通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。
线程组中包含的线程数量在测试执行过程中是不会发生改变的。
1.2测试片段(Test
Fragment)
1.2.1Test
Fragment
测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。
它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。
1.3配置元件
1.3.1CSVDataSetConfig
被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理众多变量。
其实就是设置变量。
1.VariableNames:
变量名列表(逗号分隔),可以指定变量名。
2.Allowquoteddata?
:
CSV文件是否容许值被引用
3.RecycleonEOF:
达到文件结尾后,是否从文件开始循环重新读取(默认True),当到达文件尾时,且Recycle选项设置为True,就会从文件第一行重新开始读取,如果设置为false,而StopthreadonEOF是False,那么当到达文件尾部时所有变量都将被置为<
EOF>
可以通过设置JMeter属性csvdataset.eofstring来改变该值。
如果Recycle选项为false,而Stopthread是True,那么到达文件尾部之后,将导致线程被终止。
4.StopthreadonEOF?
达到文件结尾后,线程是否该终止。
5.Sharingmode:
如果希望每个线程拥有自己独立的值集合,那么就需要创建一系列数据文件,为每个线程准备一个数据文件,如test1.csv、test2.csv等,使用文件名test${__threadNum}.csv,并将“sharingmode"
设置为"
Currentthread"
Allthreads:
文件在所有线程间共享
Currentthreadgroup:
每个文件会针对每个线程组打开一次
Currentthread:
每个文件会针对每个线程单独打开
Identifier:
所有线程共享相同的标识,共享相同的文件。
如有4个线程组,测试人员可以使用一个通用ID,以便在两个或多个线程组之间共享文件。
6.Delimiter(分隔符):
默认逗号
7.:
文件名
8.:
文件编码格式
1.3.2FTP请求缺省值
Defaults:
被用于设置FTP请求的默认值
1.3.3HTTP请求默认值
HTTP请求默认:
设置HTTP请求使用的默认值
需要填写服务器名称或者ip以及端口号,是网页自动化测试必备的元件
1.3.4HTTPCookie管理器
HTTPCookie管理器:
主要有两个功能:
它像web浏览器一样存储和发送Cookie。
,如果测试人员有一个HTTP请求和相应里包含Cookie,Cookie管理器会自动存储Cookie,那么接下来针对特定web站点的所有请求中使用该Cookie。
可在结果树中查看。
接收到的Cookie可以被保存为变量,须定义属性"
CookieManager.save.cookie=true"
另外,在被存储前Cookie名称会加上前缀“COOKIE_"
,要恢复早前处理方式,则定义属性”CookieManager.name.prefix="
(一个或多个空格)。
如果启动了该功能,那么名称为TEST的Cookie,可以通过${COOKIE_TEST}加以引用。
手动为Cookie管理器添加一个Cookie(为所有JMeter线程所共享)。
一般网页测试包换cookie时会使用到。
1.3.5RandomVariable
RandomVariable:
被用来产生随机数字字符串,接下来将其存放到变量之中。
VariableName:
变量名,用于保存随机字符串
outputformat:
使用java.text.DecimalFormat格式字符串,例如”000"
会产生至少3个数字的随机数,或者“USER_000"
产生的输出格式为USER_nnn,如果不指明,就是用long.toString()来产生数字。
其实就是初始化格式。
MinimumValue:
产生随机数的最小值(整数)
MaximumValue:
产生随机数的最大值(整数)
SeedforRandomfunction:
随机数产生器的种子,默认为当前时间(以毫秒为单位)
PerThread(User)?
如果为False,则随机数产生器在线程组的所欲线程共享,为True,则每个线程都有自己的随机数产生器。
1.4前置处理器
1.4.1用户参数
右键快捷菜单中选择添加-前置处理器-用户参数
与用户自定义变量不同的是,用户参数列表中的参数取值可以在测试计划执行过程中发生变化。
如图,username和password分别有两组不同的取值。
通过界面右下方的四个按钮,可以向列表中增加参数,增加参数值,删除参数和删除参数值。
“每次迭代更新一次”选项控制参数取值的变化规则,如果选中该选项,则参数的值在每个迭代中保持不变,在新的迭代开始时取下一个值。
如果取消该选项,则参数值在每个在其作用域内的sampler发出请求时取下一个可用值。
如果参数的取值范围很小,使用用户参数比较合适;
如果参数的取值范围很大,建议使用csvdatasetconfig方法。
1.5断言
1.5.1响应断言
用户可以使用断言来检查从服务器获得的响应内容。
通过断言可以测试服务器返回的响应与测试人员的期望是否相符。
例如,测试人员可以断言某个查询的响应中包含特定的文字信息。
测试人员可以使用Perl格式的正则表达式来描述响应中应该包含的文字,或者它应该与整个响应相符。
测试人员可以为任何采样器添加断言。
例如,测试人员可以为HTTP请求添加断言,用于检查文本"
.."
。
接下来JMeter就会检查该文本是否出现在HTTP响应中。
如果JMeter不能找到该文本,那么它就会将请求标记为失败。
此条为经常用于功能测试,查找是否反馈信息成功。
1.6监听器
1.6.1聚合报告
最常用的监听器之一,非常好用,建议每次都选上
对于记录的指标解释:
Label:
所监控记录的sampler名称
#Samplers:
当前sampler执行成功的总数
Averrage:
平均的响应时间
Median:
50%的用户的响应时间都小于或等于此值
90%Line:
90%的用户的响应时间都小于或等于此值
Min:
最小的响应时间
Max:
最大的响应时间
Error%:
设置了断言之后,断言失败的百分比,也就是说如果没有设置断言这里就是0,除非系统报错则不是0。
Througput:
吞吐量——默认情况下表示每秒完成的请求数
KB/sec:
每秒从服务端接收到的数据量
对于Median和90%Line的一些解释,jmeter官方文档说是中位数的百分位值和90的百分位的值,经过一系列的搜索,中位数的意思就是正好有一半的值比当前这个值高或者等于,也可以理解为有一半的值比当前这个值低或者等于;
90百分位的意思就是有90%的值比当前值小或者等于,有10%的值比当前值大或者等于。
保存当前记录的结果,点击SaveTableData完成保存,默认保存为csv格式的文件。
2.SimpleDataWriter
此监听器可以将请求过程中的数据写入到一个文件,可以当做脚本运行的简易日志
1.6.2查看结果树
在使用断言后,在此处可以查看详细的断言信息。
1.6.3图形结果
通过图形查看各个数据的变化趋势
1.7工作台
针对工作台只介绍http代理服务器,主要用于web测试的启动
1.7.1HTTP代理服务器
启动测试的必备配置,设置端口、分组、目标控制器和地址后,点击启动即可开始录制测试流程。
脚本录制
1.录制步骤
1.添加一个线程组和http请求默认值
(输入内容在图中已经全部填写完成)
2.在工作台右键添加HTTP代理服务器
3配置代理服务器
*注:
端口号不能被占用。
排除模式中添加的东西将在录制时不被录制上。
端口可能会有被占用的情况,这种情况下点击启动会报错,可以再cmd里查看是否被监听。
命令为:
netstat
-aon|findstr
"
8080"
(8080为端口号)
4.浏览器端设置。
设置的地址可以是localhost,也可以是127.0.0.1,端口与HTTP代理服务器端设置的端口号一致。
在设置了代理服务器后,去其他浏览器上访问网页会不能打开,要取消代理服务器后才会正常。
5.在Jmeter的HTTP代理服务器上点击启动,然后再浏览器上进行要录制的操作,例登录动作,录制结束后点击HTTP代理服务器上的停止。
只留下这一个登陆的过程,其余全部删除就可以获得该登陆脚本
6.添加HTTP
Cookies
管理器(只需要一个)
7.对线程组进行次数编辑
8.添加查看结果树监听器,然后点击
去执行看结果就可以了。
到此就完成了一个最简单对登陆的性能测试流程