JMETER培训培训计划•Jmeter介绍•Jmeter组件介绍•利用Jmeter测试凭证库初识Jmeter•Jmeter介绍–Jmeter基础信息–Jmeter与Loadrunner对比•Jmeter组件介绍•利用Jmeter测试凭证库Jmeter基础信息Jmeter是基于Jave的,开放源代码的测试工具Jmeter可以用于测试静态或者动态资源的性能(文件、SOAP、Web、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)Jmeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况Jmeter的工作原理:向服务器提交请求;从服务器获取请求返回的结果Jmeter/Loadrunner对比对比项JmeterLoadrunner支持的协议少多结果报表少多测试场景灵活灵活运行环境Windows/linux/unixWindows/linuxIp欺骗无有安装无有脚本语言C\JAVA\VBXML编辑方式修改脚本图形界面修改成本免费昂贵学习资料较少较多进阶Jmeter•Jmeter介绍•Jmeter组件介绍–测试计划(TestPlan)–线程组(ThreadGroup)–逻辑控制器(LogicController)–取样器(Sampler)–正则表达式提取器–断言(Assertion)–配置元件(Configuration)–监听器(monitor)•利用Jmeter测试凭证库Jmeter组件Jmeter组件-测试计划测试计划:是使用Jmeter进行测试的起点,是其他测试元件的容器,一个完整的测试计划包括一个或者多个线程组、逻辑控制器、取样器、监听器、配置元件用户自定义的变量:用户可以自己定义的变量,使用此变量时,直接${变量名}引用。eg:${IP},${port}Jmeter组件-线程组线程组:测试里每个任务都要线程去处理,所有任务必须在线程组下面创建。线程数:设置发送请求的用户数目,即并发数Ramp-UpPeriod(inseconds):创建完所有线程的时间,防止对服务器有太大的负载。循环次数:请求的重复次数启动时间:测试计划的启动时间结束时间:测试计划结束时间持续时间:测试计划持续时间(覆盖结束时间)启动延迟:测试计划延迟启动时间(覆盖启动时间)Jmeter组件-逻辑控制器逻辑控制器可以控制JMeter发送请求的测试逻辑,它与Sampler结合使用可以模拟复杂的请求序列循环逻辑器:设置请求的循环次数或永远循环,可用于压力测试运行时控制器:设置请求执行的时间,请求会一直循环执行,直到运行了所设置的时间才会停止逻辑控制器可以组合使用Jmeter组件-取样器取样器(Sampler):可以认为所有的测试任务都由取样器承担,如:HTTP请求、SOAP/XML-RPCRequest。取样器告诉Jmeter发送一个请求到指定服务器,并等待服务器的请求。取样器会按照其在测试树中的顺序去执行,还可以用逻辑控制器来改变取样器器运行的重复次数。Jmeter组件-正则表达式提取器提取器作用:从请求的响应结果中取到需要的内容,从而实现关联要检查的响应字段:正则表达式提取内容的范围引用名称:其他地方引用提取值的变量名称,具体的引用方式是${变量名},eg:${submitTime}正则表达式:提取内容的正则表达式,()表示提取,对于你要提前的内容需要用小括号括起来模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东西),则可以是$1$,$2$等等,表示解析到的第几个值给变量,正则表达式的提取模式,值从1开始,值0对应的是整个匹配的表达式如对于表达式s(.*)值0对应s(.*),值1对应(.*)匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容。缺省值:正则匹配失败时,取的值Jmeter组件-断言断言:对取样器返回的请求结果给出判断,是否正确。用户可以使用断言来检查从服务器获得的响应内容,用来判断请求响应的结果是否如用户所期望的断言会影响作用域内的所有采样器。如果要让断言只影响某个采样器,需要将断言作为该采样器的子项断言中设置要测试的模式,则会对响应的内容(如http请求后,服务器返回的内容)进行与字符串进行匹配.如果返回的内容包括了字符串,则认为该次测试通过,否则就是失败。一般通过添加监听器来监听响应断言Jmeter组件-配置元件配置元件维护Sampler需要的配置信息,配置元件并不发送请求(除了HTTP代理服务器例外),并根据实际的需要会添加或修改请求的内容配置元件“用户定义的变量会在测试的初始阶段执行(无论它处于测试树的哪个位置)。配置元件仅对其所在的测试树分支有效Jmeter组件-监听器•查看结果树1•用表格查看2•聚合报告3•其他4监听器-察看结果树察看结果树:显示取样器请求和响应的细节,包括消息头,请求的数据,响应的数据取样器结果:显示的是取样器相关参数(客户端参数与响应参数)请求:发送请求的具体值响应数据:服务端返回的相应参数监听器-用表格察看结果显示每一个请求的信息,包括发起请求的县城,开始时间,请求响应时间,请求字节数监听器-聚合报告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}监听器-其他监听器-其他实战Jmeter•Jmeter介绍•Jmeter组件介绍•利用Jmeter测试凭证库–Soap接口用例–管理端请求类型程度测试压力模式可以随意设定并发数、运行时间、运行次数、接口自动化单用户压力下可以做到无人值守自动执行,多用户需注意监视服务器性能监视通过配置jmeter插件可以监视服务器性能代理负载机未设置Jmeter凭证库现有脚本初始化库还原库执行接口Jmeter凭证库脚本思路Q&A