• 1. Welcome to HUAWEI Technologies presentationJmeter测试工具培训柯婷 2012-7
  • 2. Jmeter概述介绍1、Jmeter介绍 2、Jmeter主要组件 3、Jmeter用例创建和测试
  • 3. Jmeter介绍一:基础信息Jmeter是基于Jave的,开放源代码的测试工具 Jmeter 可以用于测试静态或者动态资源的性能(文件、 SOAP 、Web、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源) Jmeter 用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况 Jmeter的工作原理:向服务器提交请求;从服务器获取请求返回的结果 版本获取:官网地址http://jmeter.apache.org/download_jmeter.cgi。下载后,直接解压,运行bin/jmeter.bat即可 http://code.google.com/p/jmeter-plugins/downloads/list安装jmeter plugins(第三方插件)
  • 4. Jmeter介绍二:环境配置Jmeter要求支持JAVA运行环境变量,且版本满足JVM1.3或更高完成环境配置检查后,在windows则直接运行apache-jmeter \bin\jmeter.bat 就启动了该软件; linux系统下,运行jmeter.sh
  • 5. Jmeter主要组件1、测试计划(Test Plan) 2、线程组(Thread Group) 3、配置元件(Configuration) 4、逻辑控制器( Logic Controller ) 5、取样器(Sampler) 6、断言(Assertion) 7、监听器(monitor) 8、正则表达式提取器
  • 6. Jmeter主要组件—测试计划测试计划:是使用Jmeter进行测试的起点,是其他测试元件的容器,一个完整的测试计划包括一个或者多个线程组、逻辑控制器、取样器、监听器、配置元件 用户自定义的变量:用户可以自己定义的变量,使用此变量时,直接${变量名}引用。 eg:${IP},${port}
  • 7. Jmeter主要组件—线程组线程组:测试里每个任务都要线程去处理,所有任务必须在线程组下面创建。 线程数:设置发送请求的用户数目,即并发数 Ramp-Up Period(in seconds):创建完所有线程的时间,防止对服务器有太大的负载。 循环次数:请求的重复次数 启动时间:测试计划的启动时间 结束时间:测试计划结束时间 持续时间:测试计划持续时间(覆盖结束时间) 启动延迟:测试计划延迟启动时间(覆盖启动时间)
  • 8. Jmeter主要组件—配置元件配置元件维护Sampler需要的配置信息,配置元件并不发送请求(除了HTTP代理服务器例外),并根据实际的需要会添加或修改请求的内容 配置元件 “用户定义的变量"会在测试的初始阶段执行(无论它处于测试树的哪个位置)。 配置元件仅对其所在的测试树分支有效
  • 9. Jmeter主要组件—逻辑控制器逻辑控制器可以控制JMeter发送请求的测试逻辑,它与Sampler结合使用可以模拟复杂的请求序列 循环逻辑器:设置请求的循环次数或永远循环,可用于压力测试 简单控制器:测试用例顺序执行 事务控制器:将多个请求放在同一个事务中。选中Gegerate parent sample,则聚合报告中只显示事务控制器的数据,不会显示其中的各个请求的数据,反之则全部显示。 逻辑控制器可以组合使用
  • 10. Jmeter主要组件—取样器取样器(Sampler):可以认为所有的测试任务都由取样器承担,如:HTTP 请求、SOAP/XML-RPC Request。 取样器告诉Jmeter发送一个请求到指定服务器,并等待服务器的请求。取样器会按照其在测试树中的顺序去执行,还可以用逻辑控制器来改变取样器器运行的重复次数。
  • 11. Jmeter主要组件—断言断言:对取样器返回的请求结果给出判断,是否正确。 用户可以使用断言来检查从服务器获得的响应内容,用来判断请求响应的结果是否如用户所期望的断言会影响作用域内的所有采样器。如果要让断言只影响某个采样器,需要将断言作为该采样器的子项 断言中设置要测试的模式,则会对响应的内容(如http请求后,服务器返回的内容)进行与字符串进行匹配. 如果返回的内容包括了字符串,则认为该次测试通过, 否则就是失败。 一般通过添加监听器来监听响应断言
  • 12. Jmeter主要组件—监听器监听器:负责收集测试结果,支持将结果数据写入文件。 监听范围:当前节点层及当前节点的子节点(直至叶子节点),即监听器可以监听当前层以及比它低的层。 常用监听器: 察看结果树 聚合报告 图形结果 用表格查看结果察看结果树:显示取样器请求和响应的细节,包括消息头,请求的数据,响应的数据 取样器结果:显示的是取样器相关参数(客户端参数与响应参数) 请求:发送请求的具体值 响应数据:服务端返回的相应参数
  • 13. 监听器—聚合报告Label:取样器名称 Samples:运行过程中一共发出了多少个请求,一般来说是其值=线程数*循环次数(前提:测试按计划跑完,其中没有异常结束的线程)。总体Samples是各请求Samples之和。 Average:平均响应时间 Median:响应时间中间值 90%Line:响应时间90%线 Min/ Max :最小/最大响应时间Error%:出错率(出错的Request数/所有的request数) Throughput:吞吐量,每秒/每分钟(具体看“/”后面的单位)处理的Request数 KB/sec:每秒从服务器端接收到的数据 【注意】关于总体值并不是各列的累加。是以所有Samples为样本的统计值,如:总体Min=min{各个Samples的Min},总体Max=max{各个Samples的Max}
  • 14. 监听器—图形结果样本数目:发出去的请求数 最新样本:最近一个Request的响应时间 平均:所有Request响应时间的平均值 偏离:所有Request响应时间的标准差 吞吐量:单位时间内(一般是1分钟)处理Request的个数 中值:所有Request响应时间的中间值
  • 15. 监听器—用表格查看结果显示每一个请求的信息,包括发起请求的县城,开始时间,请求响应时间,请求字节数
  • 16. Jmeter主要组件—正则表达式提取器引用名称:其他地方引用提取值的变量名称,具体的引用方式是${变量名} ,eg:${submitTime} 正则表达式:提取内容的正则表达式,()表示提取,对于你要提前的内容需要用小括号括起来 模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东西),则可以是$1$,$2$等等,表示解析到的第几个值给变量,正则表达式的提取模式,值从1开始,值0对应的是整个匹配的表达式 如对于表达式s(.*) 值0对应s(.*),值1对应(.*) 匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容。 缺省值:正则匹配失败时,取的值 提取器作用:从请求的响应结果中取到需要的内容,从而实现关联 要检查的响应字段:正则表达式提取内容的范围
  • 17. Jmeter用例创建之测试计划新建测试计划。修改测试计划名称和运行模式 初始界面显示测试计划和工作台
  • 18. Jmeter用例创建之用户变量右键点击测试计划,添加->配置元件->用户定义的变量。配置用例需要的全局用户变量or地址变量
  • 19. Jmeter用例创建之线程组&循环控制器右键测试计划->添加->Threads(Users)->线程组,建立线程组以及逻辑控制器 右键线程组->添加->逻辑控制器->循环控制器/简单控制器。建立控制器
  • 20. Jmeter用例创建之取样器右键控制器->添加->Sampler->HTTP请求or SOAP/XML –RPC Request,添加取样器 完成取样器配置和请求报文命令编写
  • 21. Jmeter用例创建之正则表达式提取器右键取样器->添加->后置处理器->正则表达式提取器,添加正则表达式提取器 进行正则表达式提取器模式和命令配置
  • 22. Jmeter用例创建之响应断言右键取样器->添加->断言->响应断言,添加对应取样器的断言 进行断言内容定义和模式配置
  • 23. Jmeter用例创建之监听器右键测试计划->添加->监听器->察看结果树/聚合报告等 添加对应测试的监听器 根据要求配置监听器的写入文件等
  • 24. Q&A