JMeter测试工具使.ppt

上传人:小飞机 文档编号:5436330 上传时间:2023-07-06 格式:PPT 页数:24 大小:581.50KB
返回 下载 相关 举报
JMeter测试工具使.ppt_第1页
第1页 / 共24页
JMeter测试工具使.ppt_第2页
第2页 / 共24页
JMeter测试工具使.ppt_第3页
第3页 / 共24页
JMeter测试工具使.ppt_第4页
第4页 / 共24页
JMeter测试工具使.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《JMeter测试工具使.ppt》由会员分享,可在线阅读,更多相关《JMeter测试工具使.ppt(24页珍藏版)》请在三一办公上搜索。

1、Jmeter基础培训,报告人:质量控制部 黄春 Judy Huang,目录,第一部分 Jmeter简介存拆库项目性能测试,第二部分 安装Jmeter,第四部分 脚本的录制,第五部分 脚本加工存拆库项目性能测试,第六部分 场景设置,第八部分 远程测试,第十部分 Jemter Plugins,第七部分 数据收集和展示,第三部分 Jmeter组件,第九部分 NON GUI模式,Jmeter简介,Jmeter是什么Apache JMeter 是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到其它测试领域。我用它能做什

2、么Apache JMeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java对象,数据库和查询,FTP服务器或是其它资源)的性能进行测试。JMeter可以用于在服务器,网络或对象模拟繁重的负载来测试它们提供服务的受压能力或者分析不同压力条件下的总体性能情况。你可以使用JMeter提供的图形化界面,分析性能指标或者在高负载情况下测试你的服务器/脚本/对象。Jmeter能做什么能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。完全的可移植性和100%纯Java。完全Swing的轻量级组件支持(预编译的JAR使用 javax.

3、swing.*)包。完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。精心的GUI设计允许快速操作和更精确的计时。缓存和离线分析/回放测试结果。高可扩展性:可链接的取样器允许无限制的测试能力。各种负载统计表和可链接的计时器可供选择。数据分析和可视化插件提供了很好的可扩展性以及个性化。具有提供动态输入到测试的功能(包括JavaScript)。支持脚本变成的取样器(在及以上版本支持BeanShell)。,Jmeter安装配置,配置JDK从http:/下载,解压后运行bin目录下的jmeter.bat,Jmeter组件,Thread Group:场景的起始点,设置多少用户

4、并发,什么时候开始跑,跑多久。Controllers:包括Samplers和Logical Controllers。Samplers:告诉Jmeter发请求和等待响应。Logic Controllers:组织发送请求的逻辑,例如什么情况下发请求,每个请求发多少次,多少百分比,顺序是怎么样的。Listener:收集测试用例运行信息,例如响应时间,请求和响应的详细信息。Timers:请求之间的暂停。Assertions:验证服务器返回的信息是否正确。Configuration Elements:对samplers进行配置。Pre-Processor:运行在Sampler之前,多用于设置sample

5、r,和更新从上一个响应获得的变量值。Post-Processor:运行在Sampler之后,多用于对响应数据的处理。,Jmeter组件,执行顺序:0.Configuration elements 1.Pre-Processors 2.Timers 3.Sampler 4.Post-Processors(unless SampleResult is null)5.Assertions(unless SampleResult is null)6.Listeners(unless SampleResult is null)只有有sampler 的时候,Timers,Assertions,Pre-an

6、d Post-Processors才会被运行,Logic Controllers and Samplers 按它们在树里的排列顺序执行,例子:Controller Post-Processor 1 Sampler 1 Sampler 2 Timer 1 Assertion 1 Pre-Processor 1 Timer 2 Post-Processor 2执行的顺序会是:Pre-Processor 1 Timer 1 Timer 2 Sampler 1 Post-Processor 1 Post-Processor 2 Assertion 1 Pre-Processor 1 Timer 1 T

7、imer 2 Sampler 2 Post-Processor 1 Post-Processor 2 Assertion 1,Jmeter组件,作用域规则:Controllers的作用域是它的子元素其它组件是按等级来的,例如,一个Assertion,如果它的父节点是请求,那它应用于这个请求,如果它的父节点是Controller,那它应用于Controller下面所有的请求。,如图,Assertion#1应用于请求One,Assertion#2应用于请求Two,Three。,Timer#1应用于请求Two,Three,Four,Assertion#1应用于请求Three,Timer#2 应用于所

8、有请求。,录制脚本,Step 1 工作台添加一个HTTP代理服务器,用来录脚本 Step 2 添加一个察看结果树,用来观察脚本录制过程中产生的请求和响应数据 Step 3 线程组里面加一个录制控制器,录的请求会放在录制控制器里 Step 4 浏览器的端口必须跟HTTP代理服务器设置的端口一样 Step 5 启动HTTP代理服务器,用浏览器打开要录的接口 过滤掉或直接删掉,例如.*.gif,脚本编辑,关联从上一个请求拿出要关联的数据,用正则表达式去匹配,例如要匹配的是id“:145 中的145,可以写成id”:(.*?)或 id“:(.+?)或 id:(.*?).匹配任何字符*匹配0次或多次+匹

9、配1交或多次?初次匹配成功后就停止http:/有关于正则表达式写法的描述。模板:$1$表示第一组匹配数字:1第一个匹配的,2第二个匹配的,0随机取,脚本编辑,参数化用CSV Date Set Config参数化每个线程的每个迭代用不同的值,线程调用这参数值的顺序是他们执行的顺序决定的。Recycle on Eof=true,如果所有值被用完,就从头开始取,Recycle on Eof=false时,stopThread才起作用Recycle on Eof=false,stopThread=false,当文件里面的所有的参数值被用完后,参数会被设为等于Recycle on Eof=false,s

10、topThread=true,当文件里面的所有的参数值被用完后,场景就会停下来Delimiter 两列参数之间的分隔符,默认是逗号,也可以设置为其它值Allow quote data CSV文件是否允许值被引号,如果是enabled,值可以被双引号括起来(只允许双引号,不允许单引号)如果想每个数据集有自己的数据,可以使sharing mode=current thread,需要为每个线程建一个文件(如果没有,那么这个线程将不被执行),例如 test1.csv,test2.csv,.testn.csv.用这个文件名 test$_threadNum.csv,脚本编辑,参数化用Jmeter自带的方法

11、参数化例如:$_StringFromFile(/home/vipshop/Jenkins/workspace/benchmarktest_cart.api/userEdit.csv,userEditID,)$_RandomString(9,chars,variableName),脚本编辑,HTTP Cookie 管理器有些请求会被重定向多次,因为我们没有维护user session,session要读cookie,所以需要加上cookie manager.例如这个请求,把HTTP Cookie Manager加到每个Thread Group,可以每个thread拥有自己的cookies,但是每

12、个thread的所有Http请求会共享这个cookie,脚本编辑,定时器Synchronizing Timer:等待到达一定数量的用户数后才释放用户。0表示等齐所有用户,10表示等齐10个用户固定定时器:使每个thread在请求之间停顿相同的时间。,脚本编辑,检查点响应断言:为保证响应数据的准确性,检查响应的数据是否包含,匹配,等于某个样式字符串。,场景设置,可根据场景的要求选择controller用controller组织你的sampler吞吐量控制器,控制用户执行频率Total Executions 当达到一定数量使控制器停止场景运行Percent executions 使控制器执行tes

13、t plan设定的一定百分比Per User 如果勾了,计算基于所有用户一起执行,如果不勾,计算基于单个用户事务控制器,用于统计嵌套在transaction controller里面的所有元素的值(响应时间,tps,吞吐量等)Generate Parent Sample,如果勾了,这个控制器生成为其它sampler的父节点,否则独立于其它samplerInclude duration of timer and pre-post processors in generated sample,如果勾了,Transaction Controller的时间把timer和pre-post process

14、ors也计算在内,如果不勾,则不计算pre-post processors的时间,场景设置,线程组线程组是设置计划的开始点,所有controller和sampler都必需在线程组下面,其它元素可以直接放在test plan下面,用于同时应用于所有的线程组,例如listener。ramp-up period:Jmeter花多少时间去启动所有的线程。如果有10个线程,ramp-up period是100秒,每个线程在上一个线程启动10秒后才启动当循环数达到循环次数,时间达到结束时间或持续时间,场景会停止运行。启动延迟的优先级高于启动时间,持续时间的优先级高于结束时间,数据收集和展示,Label:S

15、ampler的名字Samples:请求个数Average:平均响应时间,单位毫秒Median:中位数,也就是50用户不大于这个值,剩下的不小于这个值,单位毫秒90%Line:90用户不大于这个值,剩下的不小于这个值,单位毫秒Min:最小响应时间,单位毫秒Max:最大响应时间,单位毫秒Error%:本次测试中出现错误的请求的数量/请求的总数Throughput:每秒完成的请求数Kb/Sec:每秒从服务器端接收到的数据量,Kilobytes per second,相当于LoadRunner中的Throughput/SecAvg.Bytes:请求的响应数据的平均大小Std.Dev:Standard

16、Deviation,所有响应时间标准偏差,反映数据波动,越小越好,察看结果树:以树的形式显示所有sampler的请求数据和响应数据,还可以看到接收响应数据所花费的时间。由于使用它会消耗较多的资源,请只在调试和验证脚本时使用。,远程测试,1.节点(节点包括client和server,client是调度机,server是被调度机)最好用同一版本jmeter,如果用了数据文件,数据文件不会被client传到server里,所以请保证数据文件存在于所有的server的正确目录里。2.防火墙要关掉3.所有节点要在同一个子网4.一台client启动多台server,远程测试,5.在server上跑JMET

17、ER_HOME/bin/jmeter-server.bat6.在/bin/jmeter.properties里修改remote_hosts属性,可设置多个host,用逗号隔开,例如,NON GUI模式,Non GUI比GUI节省资源,并有更高的稳定性步骤:1.进入jmeter的bin目录2.运行jmeter-n-t E:jmetertrainingexample.jmx-l E:jmetertrainingresult.jtl或jmeter-n-t E:jmetertrainingexample.jmx-l E:jmetertrainingresult.jtl-Jthreads 5-Jiter

18、ations 4-n 这是指定JMeter在非用户界面模式运行-t 包含测试计划的JMX文件的名字:example.jmx-Jthreads 并发用户数:5个-Jiterations 循环次数:4次-l 记录取样结果的JTL文件的名字:resut.jtl,Non GUI远程测试jmeter-R指定远程的server,可以不用在jmeter.properities里配remote_hosts。相对路径时,参数的csv要放在jmeter的bin目录下,否则要有绝对路径Jmeter-n-t D:paramexample.jmx-l D:paramresult.jtl-r跑jmeter.properities里配的所有的host,Jmeter Plugins,JMeter Plugins at Google Code(JPGC)是为Jmeter写的第三方插件,它补充了jmeter的功能,包括10几个图表,负载控制器,和其它功能。到http:/jmeter-plugins.org/downloads/all/去下载,解压后放在apache-jmeter-2.11libext下面,然后重启jmeter,Thanks!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号