当前位置:文档之家› JMeter测试工具使用

JMeter测试工具使用


数据收集和展示
Label:Sampler的名字 Samples:请求个数 Average:平均响应时间,单位毫秒 Median:中位数,也就是 50% 用户不大于这个 值,剩下的不小于这个值,单位毫秒 90% Line:90% 用户不大于这个值,剩下的不 小于这个值,单位毫秒 Min:最小响应时间,单位毫秒 Max:最大响应时间,单位毫秒 Error%:本次测试中出现错误的请求的数量/请 求的总数 Throughput:每秒完成的请求数 Kb/Sec:每秒从服务器端接收到的数据量, Kilobytes per second, 相当于LoadRunner中的 Throughput/Sec Avg. Bytes: 请求的响应数据的平均大小 Std.Dev: Standard Deviation, 所有响应时间标准 偏差,反映数据波动,越小越好
) 如果想每个数据集有自己的数据,可以使sharing mode = current thread, 需要为每个线程建一个文件(如果没有,
那么这个线程将不被执行),例如 test1.csv, test2.csv,... testn.csv. 用这个文件名 test${__threadNum}.csv
8
脚本编辑
• 关联
从上一个请求拿出要关联的数据,用正则表达式去匹配,例如要匹配的是id“:145} }中的 145,可以写成id”:(.*?)}} 或 id“:(.+?)}} 或 id":(.*?)} .匹配任何字符 *匹配0次或多次 +匹配1交或多次 ?初次匹配成功后就停止 /usermanual/regular_expressions.html有关于正则表达式写法的 描述。 模板:$1$表示第一组 匹配数字:1第一个匹配的,2第二个匹配的,0随机取

Jmeter基础培训
报告人:质量控制部 黄春 Judy Huang
目录
第一部分 Jmeter简介存拆库项目性 第二能部测分试 安装Jmeter 第三部分 Jmeter组件 第四部分 脚本的录制 第五部分 脚本加工存拆库项目性能
测试 第六部分 场景设置
第七部分 数据收集和展示
第八部分 远程测试
12
脚本编辑
• 定时器 Synchronizing Timer:等待到达一定数量的用户数
后才释放用户。 0表示等齐所有用户,10表示等齐10个用户
固定定时器:使每个thread在请求之间停顿相同的时 间。
13
脚本编辑
• 检查点 响应断言:为保证响应数据的准确性,检查响应的数据是否包含,匹配,等于某个样式字符
Pre-Processor 1 Timer 1 Timer 2 Sampler 2 Post-Processor 1 Post-Processor 2 Assertion 1
6
Jmeter组件
作用域规则: Controllers的作用域是它的子元素 其它组件是按等级来的,例如, 一个Assertion,如果它的父节点是请求,那它应用于这个
9
脚本编辑
• 参数化 用CSV Date Set Config参数化
每个线程的每个迭代用不同的值,线程调用这参数值的顺序是他们执行的顺序决定的。 Recycle on Eof=true,如果所有值被用完,就从头开始取, Recycle on Eof=false时,stopThread才起作用 Recycle on Eof=false,stopThread=false,当文件里面的所有的参数值被用完后,参数会被设为等于<EOF> Recycle on Eof=false,stopThread=true,当文件里面的所有的参数值被用完后,场景就会停下来 Delimiter 两列参数之间的分隔符,默认是逗号,也可以设置为其它值 Allow quote data CSV文件是否允许值被引号,如果是enabled,值可以被双引号括起来(只允许双引号,不允许单引号
时间把timer和pre-post processors也计算在内,如果不勾,则不计算pre-post processors的时间
15
场景设置
• 线程组 线程组是设置计划的开始点,所有controller和sampler都必需在线程组下面,其它元素 可以直接放在test plan下面,用于同时应用于所有的线程组,例如listener。
串。
14
场景设置
• 可根据场景的要求选择controller • 用controller组织你的sampler 吞吐量控制器,控制用户执行频率
Total Executions 当达到一定数量使控制器停止场景运行 Percent executions 使控制器执行test plan设定的一定百分比 Per User 如果勾了,计算基于所有用户一起执行,如果不勾,计算基于单个用户
7
录制脚本
Step 1 工作台添加一个HTTP代理服务器,用来录脚本 Step 2 添加一个察看结果树,用来观察脚本录制过程中产生的请求和响应数 据 Step 3 线程组里面加一个录制控制器,录的请求会放在录制控制器里 Step 4 浏览器的端口必须跟HTTP代理服务器设置的端口一样 Step 5 启动HTTP代理服务器,用浏览器打开要录的接口 过滤掉或直接删掉,例如.*\.gif
事务控制器,用于统计嵌套在transaction controller里面的所有元素的值(响应时间,tps, 吞吐量等)
Generate Parent Sample,如果勾了,这个控制器生成为其它sampler的父节点,否则独立于其它sampler Include duration of timer and pre-post processors in generated sample , 如果勾了,Transaction Controller的
例子: 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
少百分比,顺序是怎么样的。 Listener: 收集测试用例运行信息,例如响应时间,请求和响应的详细信息。 Timers:请求之间的暂停。 Assertions: 验证服务器返回的信息是否正确。 Configuration Elements: 对samplers进行配置。 Pre-Processor: 运行在Sampler之前,多用于设置sampler,和更新从上一个响应获得的变量
• Jmeter能做什么 能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。 完全的可移植性和100%纯Java。 完全Swing的轻量级组件支持(预编译的JAR使用 javax.swing.*)包。 完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。 精心的GUI设计允许快速操作和更精确的计时。 缓存和离线分析/回放测试结果。 高可扩展性:
5.Assertions (unless SampleResult is null)
6.Listeners (unless SampleResult is null)
只有有sampler 的时候,Timers, Assertions, Pre- and PostProcessors才会被运行, Logic Controllers and Samplers 按它 们在树里的排列顺序执行
– 可链接的取样器允许无限制的测试能力。 – 各种负载统计表和可链接的计时器可供选择。 – 数据分析和可视化插件提供了很好的可扩展性以及个性化。 – 具有提供动态输入到测试的功能(包括JavaScript)。 – 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。
3
Jmeter安装配置
10
脚本编辑
• 参数化 用Jmeter自带的方法参数化 例如: ${_StringFromFile(/home/vipshop/Jenkins/workspace/benchmarktest_cart.api/userE dit.csv,userEditID,,)} ${__RandomString(9,chars,variableName)}
Apache JMeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java对象,数据库和查询,FTP服务器或是其它资源)的 性能进行测试。JMeter可以用于在服务器,网络或对象模拟繁重的负载来测试它们提供服务的受压能力或者分析不同压力条件下的总 体性能情况。你可以使用JMeter提供的图形化界面,分析性能指标或者在高负载情况下测试你的服务器/脚本/对象。
第九部分 NON GUI模式 第十部分 Jemter Plugins
Jmeter简介
• Jmeter是什么 Apache JMeter 是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量。它最初被设计用于Web 应用测试但后来扩展到其它测试领域。
• 我用它能做什么
请求,如果它的父节点是Controller,那它应用于Controller下面所有的请求。
如图,Assertion #1应用于请求 One, Assertion #2应用于请求 Two,Three。
Timer#1应用于请求Two,Three,Four, Assertion #1应用于请求Three,Timer #2 应 用于所有请求。
• 配置JDK • 从/download_jmeter.cgi下载, 解压后运行bin目录下的
jmeter.bat
相关主题