jmeter性能测试培训
《Jmeter入门培训》课件
它是一种强大的工具,可以模拟 多个用户同时访问应用程序或网 站,以测试其性能和承受能力。
JMeter通过模拟用户行为来生 成测试计划,并收集和分析结果 数据,帮助开发人员和测试人员
评估系统的性能。
JMeter的用途
负载测试
JMeter可以模拟大量用 户同时访问应用程序或 网站,以测试其负载能
在JMeter中,可以使用各种图 表和报告来分析性能测试结果 ,例如实时图表、聚合报告、
总结报告等。
性能测试结果分析可以帮助我 们发现系统中的瓶颈和问题, 并提供改进和优化的建议,以 便更好地提升系统的性能和稳 定性。
04 JMeter常见问题及解决方案
CHAPTER
JMeter无法启动问题
总结词
能和稳定性。
输标02入题
在JMeter中,可以使用CSV Data Set Config来参数 化请求。CSV Data Set Config可以从CSV文件中读 取数据,并将其作为参数传递给请求。
01
03
参数化请求可以帮助我们模拟不同用户的行为,例如 不同的用户ID、用户名、密码等,以便更好地测试系
跨平台
JMeter可以在多个操作系统 上运行,如Windows、Linux
和Mac OS。
易于使用
JMeter提供了直观的用户界 面和丰富的文档,使得用户可
以快速上手。
强大的扩展性
JMeter提供了丰富的插件和 脚本语言支持,可以满足各种
复杂的测试需求。
02 JMeter基础操作
CHAPTER
安装与配置
其提取出来。
提取出来的数据可以用于后 续的测试或分析,例如比较 提取出来的数据与预期结果 是否一致,或者计算提取出 来的数据的平均值、最大值
全栈性能测试修炼宝典JMeter实战
JMeter作为一款优秀开源性能测试工具,被广泛应 用
JMeter简介
JMeter是一款开源的、基 于Java的压力测试工具
支持多线程并发,可模拟 大量用户请求
可用于对静态和动态资源 进行性能测试
提供丰富的测试结果展示 和导出功能
02
JMeter基础
安装与配置
安装Java环境
JMeter需要Java运行环境,确保已 安装合适版本的Java。
吞吐量、错误率等。
02
配置测试脚本
在控制器上配置好相应的测试脚本, 包括请求的URL、请求头、请求体
等信息。
04
分析测试结果
收集并分析测试结果数据,找出系 统性能瓶颈和潜在问题,并提出优
化建议。
07
总结与展望
课程回顾与总结
JMeter基础概念与原理
深入讲解了JMeter的核心概念和 工作原理,包括测试计划、线程组、 取样器、监听器等关键组件。
在每个压力生成器上安装JMeter,并 配置好相关的测试脚本和参数。
启动压力生成器 启动所有的压力生成器,并确保它们 能够正确地连接到控制器,并接受控 制器的指令。
实施分布式压力测试
01
设计测试场景
根据实际需求设计不同的测试场景, 包括并发用户数、请求类型、请求
频率等参数。
03
启动测试
通过控制器启动测试,并监控测试 过程中的各项指标,如响应时间、
报告评审
根据分析结果,提出针对性的优化建议,包 括硬件升级、代码优化、系统配置调整等方 面的建议。
组织相关人员对测试报告进行评审和讨论, 确保报告质量和准确性。
05
JMeter高级功能应用
参数化设置技巧
软件性能测试工具Jmeter入门级教程案例
软件性能测试工具Jmeter入门级教程案例性能测试工具Jmeter入门级教程案例JMeter学习(一)工具简单介绍一、JMeter 介绍Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。
它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。
JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
同时,JMeter可以帮助你对你的应用程序进行回归测试。
通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。
为了更高的适应性,JMeter允许你使用正则表达式来创建这些assertions.JMeter与LoadRunner比较JMeter 是一款开源(有着典型开源工具特点:界面不美观)测试工具,虽然与LoadRunner 相比有很多不足,比如:它结果分析能力没有LoadRunner详细;很它的优点也有很多:?开源,他是一款开源的免费软件,使用它你不需要支付任何费用,?小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java 开发的工具。
?功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。
因为它的开源性,当然你也可以根据自己的需求扩展它的功能。
两者最大的区别:jmeter不支持IP欺骗,而LR支持。
缺点使用JMeter无法验证JS程序,也无法验证页面UI,所以要须要和Selenium配合来完成Web2.0应用的测试。
二、JMeter 下载安装1)JMeter安装1.解压文件到任意目录2. 安装JDK,配置环境变量JAVA_HOME.3. 系统要求:JMeter2.11 需要JDK1.6以上的版本支持运行4. JMeter可以运行在如下操作系统上:Unix,Windows 和Open VMS.5. 避免在一个有空格的路径安装JMeter,这将导致远程测试出现问题。
JMeter培训教程(PPT41页)
JMeter主要元件件介绍-线程 用户
❖ 虽然有三个添加线程组的选项,名字不一样, 创建之后,其界面是完全一样 的。
❖ setup thread group :一种特殊类型的ThreadGroup的,可用于执行预测试 操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型 的线程执行测试前进行定期线程组的执行。
❖ teardown thread group:一种特殊类型的ThreadGroup的,可用于执行测试 后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类 型的线程执行测试结束后执行定期的线程组。
❖ 如果您用过junit,想必你不会对 setup ,teardown这陌生。 熟悉loadrunner 的应该知道,loadrunner的脚本除了action里是真正的脚本核心内容,还有初 始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块。 那么这 里 setup thread group 和 teardown thread group 就是分别指这两部分。 其 实从本质上来看,他们并没有什 么不同
JMeter主要元件件介绍-线程 用户
❖ thread group(线程组):这个就是我们通常添加运行的线程。通俗的讲一个线 程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚 拟用户。线程组中包含的线数量在测试执行过程中是不会发生改变的
JMeter主要元件介绍-线程组
❖ 名称:为线程组起名字。 ❖ 线程属性-线程数:设置发送请求的
用户数目 ,即并发数。 ❖ 线程属性-Ramp-Up Period(in
second):线程间的时间间隔,单位 是秒。即所有线程在多少时间内启动。 ❖ 线程属性-循环次数:请求的重复次 数,如果选择后面的forever(默认), 那么 请求将一直继续,如果不选择 forever,而在输入框中输入数字,那 么请求将重复指定的次数,如果输入 1,那么请求将执行一次,如果是0, 会出现问题。 ❖ 调度器配置-启动时间:测试计划什 么时候启动,启动延迟会覆盖它。 ❖ 调度器配置-结束时间:测试计划什 么时候结束,持续时间会覆盖它。 ❖ 调度器配置-持续时间:测试计划持 续多长时间,会覆盖结束时间。 ❖ 调度器配置-启动延迟:测试计划延 迟多长时间启动,会覆盖启动时间。
JMeter性能测试入门及进阶教程
JMeter性能测试入门+进阶教程✧JMeter入门篇 (2)1.JMeter简介 (2)2. JMeter安装 (2)2.1 JDK安装 (2)2.2 JMeter安装 (2)3. JMeter脚本编写 (4)3.1 添加线程组 (4)3.2 添加HTTP请求 (6)3.3 添加察看结果树 (7)3.4 添加用户自定义变量 (8)3.5 添加断言 (9)3.6 添加断言结果 (10)3.7 添加聚合报告 (11)4. 执行性能测试 (12)4.1 配置线程组 (12)4.2 执行测试 (13)5. 分析测试报告 (13)✧JMeter进阶篇 (15)1. JMeter参数化 (15)1.1 CSV Data Set Config (15)1.2 参数化测试数据准备 (15)1.3 使用函数助手设置参数规则 (17)2. JMeter录制功能 (20)2.1 JMeter代理模式录制脚本 (20)2.2 Fiddler抓包工具 (26)2.3 Badboy录制 (29)3. JMeter扩展图形插件 (31)3.1 图形插件安装 (31)3.2 图形扩展插件实例运用 (33)4. 命令行运行JMeter (36)4.1命令行语法 (36)4.2命令行示例 (37)5. JMeter常用协议实例 (38)5.1 http协议 (38)5.2 https协议 (38)5.3 soap协议 (43)5.4 socket协议 (48)6. JMeter负载均衡 (55)6.1配置负载测试机 (55)6.2设置Controller调度机 (59)6.3 注意事项及负载性能提升 (60)7. Loadrunner与JMeter对比 (62)7.1实际接口测试结果对比 (62)7.2工具特点对比 (66)JMeter入门篇1.JMeter简介Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。
Jmeter培训精品PPT课件
Jmeter组件-线程组
➢ 线程组:测试里每个任务都要 线程去处理,所有任务必须在 线程组下面创建。
➢ 线程数:设置发送请求的用户 数目,即并发数
➢ Ramp-Up Period(in seconds):创建完所有线程的 时间,防止对服务器有太大的 负载。
➢ 循环次数:请求的重复次数
➢ ቤተ መጻሕፍቲ ባይዱ动时间:测试计划的启动时 间
➢ 模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东西),则 可以是$1$,$2$等等,表示解析到的第几个值给变量,正则表达式的提取模式,值从1开始, 值0对应的是整个匹配的表达式 如对于表达式s(.*) 值0对应s(.*),值1对应(.*)
➢ 匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个 匹配的内容。
Jmeter/Loadrunner对比
对比项 支持的协议 结果报表 测试场景 运行环境 Ip欺骗 安装 脚本语言 编辑方式 成本 学习资料
Jmeter 少 少 灵活
Windows/linux/unix 无 无 C\JAVA\VB 修改脚本 免费 较少
Loadrunner 多 多 灵活
Windows/linux 有 有 XML 图形界面修改 昂贵 较多
➢ 配置元件 “用户定义的变 量"会在测试的初始阶段执 行(无论它处于测试树的 哪个位置)。
➢ 配置元件仅对其所在的测 试树分支有效
Jmeter组件-监听器
1 • 查看结果树
2
• 用表格查看
3 • 聚合报告
4 • 其他
监听器-察看结果树
➢ 察看结果树: 显示取样器请 求和响应的细 节,包括消息 头,请求的数 据,响应的数 据
软件性能测试工具JMeter从入门到进阶
Jmeter从入门到进阶目录1、基础介绍简单介绍jmeter的元件组成,作用等基础知识;2、录制脚本简述了jmeter录制脚本的2种方式;3、元件的作用域及执行顺序jmeter各元件的作用域及执行的顺序;4、Sampler之SOAP/XML-RPC Request取样器中关于SOAP/XML-RPC Request的用法;5、Sampler之HTTP请求取样器中关于HTTP请求的用法;6、http请求之content-type取样器中关于HTTP请求的补充说明;7、Sample之JDBC Request取样器中关于JDBC请求的用法;8、JDBC Request之Query Type取样器中关于JDBC请求的补充说明;9、目录结构jmeter目录结构等简单介绍;10、参数化jmeter参数化的4种方式;11、关联之正则表达式提取器jmeter关联之正则表达式提取器的用法;12、关联之XPath Extractorjmeter关联之XPath Extractor的用法;13、配置元件之计数器jmeter配置元件中关于计数器的用法;14、配置元件之HTTP属性管理器jmeter配置元件中关于http属性管理器的用法;15、函数助手jmeter内置函数助手的简单介绍;16、定时器jmeter八大元件之定时器的介绍;17、断言jemter八大元件之断言的介绍;18、逻辑控制器jmeter八大元件之逻辑控制器的介绍;19、常见问题及解决方法jmeter使用过程中常见问题及解决方案的说明;20、阶梯式加压测试jmeter扩展插件Stepping Thread Group的简单介绍;21、jmeter常用插件介绍jmeter插件Transactions per Second、Response Times Over Time、PerfMon Metrics Collector的下载安装及使用;22、内存溢出原因及解决方法关于jmeter做压力负载测试时候遇到内存溢出的原因和解决方法;23、jmeter分布式测试关于高并发情况下分布式测试的一些技术点和注意事项;24、dubbo接口测试利用jmeter的dubbo插件进行dubbo接口测试和性能测试;25、linux环境运行jmeter并生成报告linux环境,非GUI模式运行jmeter脚本进行性能测试,并生成测试报告的介绍;jmeter(一)基础介绍jmeter是一款优秀的开源性能测试工具,目前最新版本3.0版本一、优点1、开源工具,可扩展性非常好2、高可扩展性,用户可自定义调试相关模块代码3、精心简单的GUI设计,小巧灵活4、完全的可移植性和100%纯java5、完全swing和轻量组件支持(预编译的HAR使用javax.swing.*)包6、完全多线程框架,允许通过多个线程并发取样以及单独的线程对不同的功能同时取样7、支持脚本取样器二、安装及下载jmeter本身不需要安装,只需要配置好JDK环境,然后在在jmeter文件中的bin文件中打开jmeter.bat文件即可最新版本,建议配置的JDK最好用1.7及以上版本三、基础构成1、组成部分1)负载发生器:产生负载,多进程或多线程模拟用户行为2)用户运行器:脚本运行引擎,用户运行器附加在进程或线程上,根据脚本模拟指定的用户行为3)资源生成器:生成测试过程中服务器、负载机的资源数据4)报表生成器:根据测试中获得的数据生成报表,提供可视化的数据显示方式·2、主要概念2.1测试计划(test plan)描述一个性能测试,包含本次测试所有相关功能2.2.threads(users)线程Setup thread group:一种特殊类型的线程,可用于执行预测试操作。
Jmeter实战:零基础也能看懂的性能测试!
Jmeter实战:零基础也能看懂的性能测试!经常听到性能?何为性能,从来没做过性能测试的人该如何上手?这篇文章非常适合零基础的同学看,看完之后基本上就能知道性能测试的全流程。
性能指标1.什么是性能测试在一定情况下,通过工具模拟用户负载系统的响应时间、吞吐量等指标是否满足需求。
2.性能的指标基本上做过性能测试的人都知道性能指标这个词,一般执行脚本成功后都会通过指标判定服务器性能从而判断是否符合当前业务需要,再有,面试时经常会问到通过哪些指标来观察服务器性能。
性能指标可以从以下5个方面观察:•并发数:模拟用户数,比如淘宝网双11模拟上千万级用户执行加入购物车操作,这里的用户数就是并发数。
•响应时间:完成一个事务的时间(客户端-网络-服务器-数据库),完成特定场景用时,比如千万级用户执行加入购物车操作的完成时间,最有名的为2-5-8原则为准则。
•稳定性:长时间运行场景系统有无异常,系统12-24小时运行正常无报错。
•资源使用率:CPU\内存使用率,通过观察服务器的CPU\内存使用率大小,一般《=80%•思考时间(think time):为了模拟真实的用户场景,在设计脚本时需要加上思考时间,比如执行完加入购物车,到结算页面需要2-3s时间,这段时间可以为思考时间。
3.性能测试过程大致分为需求分析->指标分析->场景用例设计->脚本用例设计->构建测试数据->脚本开发->执行运行结果并收集->输出测试报告->性能调优与回归几大过程。
性能测试工具的选择目前主流的性能测试工具有Jmeter 和Loadrunner,大部分公司基本上都用Jmeter,原因loadrunner有下面三个缺点 :1)价格昂贵,一般是按协议和虚拟用户数量收费;2)不能二次开发,比如实现额外的功能,不支持自己写的脚本;3)支持的最大并发数是50,想要支持大量并发数有限制。
所以这篇文章介绍的是Jmeter工具的使用。
jmeter性能测试及性能调优 PPT
目 录
Contents
二.性能测试脚本介绍 1.事务 2.参数化 3.断言 4.关联 5.集合点 6.思考时间
1.事务:用户自定义的一个标识,用来衡量不同的操作所花费的时间,事务时间反映的是一个 操作过程的响应时间。
2.参数化:参数化作为测试脚本中最基本的使用技巧,需要每个从事性能测试的小伙伴都能熟练掌握。
3 .断言: jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似; 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。 使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。
2.性能测试资源的监控: 2 .1安装工具nmon: (我这边有下载的工具及安装步骤)
2.2 用nmon 监控工具收集后台资源 收集命令: ./nmon_x86_64_centos6 -f -s 6 -c 30
说明:-f 以文件的形式输出,默认输出是机器名+日期.nmon的格式,也可以用-F指定输出的文件名,例如: -s是采样频率,隔多长时间收集一次,这里我指定的是6秒一次;
说的有些太严肃了,简单举个例子,比如我们要测试用户注册的功能,注册的用户名是不允许重复的。我们录制完 的 脚本都是hard code,直接进行并发测试的话,无疑所有模拟用户的线程在注册的时候输入的都是相同的用户名和密 码,这样肯定是会有很多错误请求无法达到服务端,也就不能产生我们预期的负载压力。这时候,针对用户名就需要我 们使用参数化的技巧来实现,每个注册的用户每次注册都使用不同的用户名来填写注册信息。
• 内存使用率:无性能压力:0%~50%、有一定性能压力:50%~70%、达到性能阀 值:70%~80%、严重性能问题:80%~100%
JMeter基础培训
与Loadrunner的比较-不同点
A. Jmeter安装简单,只需要解压jmeter文件包到C盘上就可以了,其实是没有安装.要是你想执行调试测试脚本, 前提是:装上jdk和netbean插件.而loadrunner安装包有1G多,在一台P3.0,1G内存的PC上安装要一个多小时. 要是装过较旧的盗版还不能再装新版,解决办法倒是有,但麻烦且花时间.
培训目标
JMeter的下载安装及部署 JMeter脚本创建 JMeter脚本的录制 JMeter脚本的简单修改 与Loadrunner的比较 实际业务脚本创建演示 资料补充
1
JMeter的下载安装及部署
下载安装JDK
下载地址:
下载解压JMeter压缩包
下载地址: JMeter解压之后即可使用,无需安装。
分布式部署
2
分布式部署
如右下图所示:为控制机Controller,增加三台Agent,以四台机来运行JMeter.
实现步骤如下: a. 在所有机子上装上JMETER b. 在Agent机子上运行bin目录下的JMeter-server.bat c. 在Controller找到bin目录里的文件JMeter.properties,用记事本打开 d. 在文件中查找”remote_hosts=”,你会看到这样一
Agent IP:192.168.0.1
Controller Agent IP:192.168.0.3
Agent IP:192.168.0.2
3
JMeter脚本创建
1. 添加线程组 2. 添加请求 3. 判断请求响应 4. 统计请求响应情况
4
JMeter脚本的录制
JMeter代理录制 Badboy软件录制
《Jmeter入门培训》课件
了解Jmeter的基本界面,创建测试用例和测试脚本。
2
Jmeter的界面介绍
主要有测试计划、工具栏、搜索栏,各种测试元素的工具箱。
3
Jmeter的测试脚本录制
了解如何通过录制使用场景,快速创建测试用例和测试脚本。
Jmeter的高级操作
Jmeter的参数化
通过参数化可使测试用例更具 通用性。用CSV数据文件或用 户定义变量代替硬编码的值。
Jmeter的优化建议
通过更好地配置Jmeter和选择测试元素的正确方式,您可以进一步提高性能测试的效率。加 深理解性能测试中的如负载和压力等概念也是非常重要的。
Jmeter的社区资源介绍
Jmeter社区提供了大量的教程、文档和实用工具,您可以通过Jmeter的官网、Jmeter用户组 类似的方式来了解社区资源。
Jmeter提供了大量的日志记录和监控器来帮助您排除Jmeter测试中的异常。您可以通过查看 日志和监控来找出问题并解决。
Jmeter的与其他工具集成
Jmeter与Jenkins集成
Jmeter可以很好的与Jenkins 集成,可以在Jenkins构建中 生成性能测试报告和自动化 测试报告。
Jmeter与持续集成集成
Jmeter测试计划的创建流程
创建测试计划、添加线程组、添加Sampler和断 言、添加监听器和运行测试计划。
Jmeter的测试元素
Jmeter的线程组
线程代表了模拟的用户,而线程组管理了多 个线程。您可以配置线程数、启动延迟等参 数。
Jmeter的取样器
取样器定义了执行一个请求的方式,也是监 控请求响应的主要工具。您可以选择多种取 样器,针对不同的请求协议。
Jmeter入门培训
Jmeter入门培训PPT课件
.
22
另外,在Jmeter的bin\templates目录下面 有些模板可供学习参考,这些都是非常不错 的资料:
.
23
线程组配置以下属性:
线程数(x):代表并发用户数。
ramp-up period(y):启动并发用户的消耗时间,启动间隔时间 为:t=y/x 单位秒
循环次数:循环测试的次数 如果始终测试,选择foreever
.
24
增加统计监听器
1>在线程组节点上,点击右键,选择添加->监 听器->聚合报告
2>配置参数:文件存放位置(日志位置)
.
25
PerfMon插件 做压力测试时,我们需要关注服务器的CPU, 内存,硬盘读取等,这时候要用到PerfMon
.
26
服务器端启动Agent 将下载的zip包解压到服务器上面,如果你是linux(需 要jre环境),就进入serverAgent目录,运行 startAgent.sh命令,如下: 1>启动:>>./startAgent.sh --udp-port 0 --tcpport port(agent起来之后所监听的端口) 2>停止:>>./startAgent.sh --udp-port 0 --autoshutdown 如果你是windows环境:进入serverAgent目录, 直接双击startAgent.bat,启动agent
Jmeter的断言功能不是很强大。而Jmeter提供的断言 功能有限,并且不依赖于界面,无法完成界面相关内容 的验证,用Jmeter测试更需要人工测试,人工确认。
可以跳过页面限制,向后台程序添加非法数据,这样 可以测试后台程序的健壮性。
jmeter培训
• 安装完成后Jmeter会自动重启,新插件就会出现在可 选监听器菜单中
场景设计:参数化
• 在Java Request下添加配置元件-CSV Data Set Config • 在CSV Data Set Config界面配置CSV文件的相关信息 • 再回到Java Request配置界面,编辑参数的值,形如
• 场景启动后可以实时查看聚合报告、图形报告等监听 器的结果
分布式压力测试环境
• 远程机器安装Jmeter,将脚本及相关JAR包复制到 $JMETER_HOME/lib/ext/目录下
• 启动$JMETER_HOME/bin/jmeter-server文件,远程机器做 为slave
• 在做为master的机器上修改 $JMETER_HOME/bin/jmeter.properties文件, 如果有多个 slave可以以“,”进行分隔 remote_hosts=172.17.103.174:1099,172.17.103.175:10
Manager菜单项,打开插件管理界面 • 建议安装“3 Basic Graphs”和“5 Additional
Graphs”这两个插件
Jmeter目录及主要文件
• $JMETER_HOME/bin • $JMETER_HOME/lib/ext/ • $JMETER_HOME/bin/jmeter.properties • $JMETER_HOME/bin/jmeter-server • $JMETER_HOME/bin/jmeter.sh • $JMETER_HOME/bi7.103.194:1
安装Jmeter插件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
高可扩展性
免费/开源
3
谁在使用JMeter
4
谁在使用JMeter
• 移动梦网搜索项目 • 盘古搜索项目
5
目录
• JMeter介绍 • JMeter与Loadrunner的对比
• 支持的协议对比
• 功能对比 • 使用对比 • JMeter在测试工作的应用 • JMeter二次开发
6
支持的协议对比
• •
28
函数参数
• JMeter函数助手的功能,里面内置了多个 函数;
29
文件参数
• • • • •
•
选择一个功能_Random。 设定最小值为1。 设定最大值为100。 函数名称设为num1。 点击生成将生成一个引用字符串${_Random(0,100,num1},在需要的请 求参数中拷贝该字符串即可。 其中函数名称用来在引用中作区别,即我们可以设定不同的名称在不同 的地方引用同一个函数的功能。
• • • •
12
JMeter主要组件(取样器)
• • 名称:HTTP请求的名字。 Web服务器-服务器名称或 IP、端口号,脚本录制时自 动添加,也可以使用“用户 自定义变量”。 HTTP请求:用默认值即可 。 同请求一起发送参数:请求 中的参数、值可以在此设置 ,需要用到参数化及动态数 据关联,后面专门介绍。 同请求一起发送文件:我可 以制定同请求一起发送哪个 文件。 其他任务包括:从HTML文 件中获取所有内含的资源、 用作监视器
•
11
JMeter主要组件(线程组)
• • • • 名称:线程组的名字。 线程数:设置发送请求的用户数目 ,即并发数。 Ramp-Up Period(in second):线程 启动的时间,单位是秒。即所有线 程在多少时间内启动。 循环次数:请求的重复次数,如果 选择后面的“永远”,那么 请求将 一直继续;而在输入框中输入数字 ,那么请求将重复指定的次数,如 果输入1,那么请求将执行一次。 启动时间:测试计划什么时候启动 。 结束时间:测试计划什么时候结束 。 持续时间:测试计划持续多长时间 ,会覆盖结束时间。 启动延迟:测试计划延迟多长时间 启动,会覆盖启动时间。
• JMeter测试实例
• JMeter二次开发
10
JMeter主要组件(测试计划)
• • 测试计划(Test Plan)是使用 JMeter 进行 测试的起点,它是其它 JMeter 测试元件的容器。 用户定义的变量:用户可以自己定义 变量,在用到此变量的时候直接用${ 变量名}引用即可。例如: ${ip},${port} Add directory or jar to classpath: 向类路径即%JMeter-HOME%\lib中 添加目录及jar包
25
用户自定义变量
26
文件参数
• 在一个HTTP请求中,要提交多个参数, 其中category,query两个参数需要做参 数化,数据保存在文件中
27
文件参数
• 使用配置元件-CSV Data Set Config
• • • Filename文件名:即参数化 要引用的文件名 File encoding:文件编码: 可以不填。 Variable Names(commadelimited)变量名(用逗号分 割):多个变量可以引用同 一个文件,用逗号分割。这 里是num1,num2 Delimiter:参数文件中多个 变量值的分隔符,\t表示用 tab键分割,默认是逗号。 Recycle on EOF:结束后 是否循环?默认是True.
31
动态关联
• 在脚本录制完毕以后,运行一遍录制的脚本,使 用“察看结果树”监听器,分析那些需要做动态 关联(一般建议先使用HttpWatch分析那些要做 动态关联); • 以基于WEB_BAS的SQMAS为例。经过分析,在 登录时,会cookie会记录一个JSESSIONID,每 次提交请求时,会post一个ticket。
32
动态关联
• 添加一个正则表达式提取器,提取JSESSIONID; • 可以添加一个响应断言,测试提取结果; ${jessionid_g1}表示匹配第一组数值,这里只有一 个,也可以直接使用${jessionid}
33
动态关联
• 运行测试计划,测试提取结果
34
动态关联
• 修改ticket,使用提取的JSESSIONID
JMeter主要组件
查看结果树 显示取样器请求和响应的细节,包括消息报头,请求的数据,相应数据
JMeter主要组件
表格查看结果 显示每一请求的信息,包括发起请求的线程,开始时间,请求响应时间,请求字节 数
JMeter主要组件
图形结果
脚本录制
• 使用JMeter的代理服务器功能进行脚本录 制 • 利用Badboy进行脚本录制,再转为JMeter 脚本
JMeter基础培训
2011年7月
1
目录
• JMeter介绍
• • JMeter介绍 谁在使用JMeter
• JMeter与Loadrunner的对比 • JMeter在测试工作的应用
• JMeter二次开发
2
JMeter介绍
• • • • • • JMeter是基于Java的,开放源代码的性能测试工具 能够对HTTP和FTP服务器进行压力和性能测试 可以对任何数据库进行同样的测试(通过JDBC) 各种负载统计表和可链接的计时器可供选择 缓存和离线分析/回放测试结果 完全多线程框架
•
……
7
JMeter与Loadrunner功能对比
对比项 支持的协议 结果报表 测试场景 运行环境 IP欺骗功能 少 少 灵活
JMeter 多 丰富 灵活
Loadrunner
Windows/Unix/Linux Windows/Linux(部分支 持) 无 有
8
使用对比
对比项 安装 脚本录制 简单 很好 JMeter 复杂 较好 Loadrunner
35
场景设置
• JMeter的逻辑控 制器提供了一系 列的组件,可以 实现多样化的场 景控制。 • 常用的逻辑控制 器有:循环控制 器,事务控制器
36
JMeter测试实例
• HTTP GET测试 • 基于WEB_BAS的测试实例 • HTTP XML测试
37
目录
• JMeter介绍 • JMeter与Loadrunner的对比
参数化设置
• 在我们的过程中,通常会提交一些参数, 使用不同的参数值来模拟才更接近实际 情况。 • 参数定义后, 使用${paramName}既可 以使用
24
参数化设置
用户自定义变量 • 使用测试计划 中的用户定义 变量作为参数 • 一般定义全局 变量,如:IP, 端口 文件参数 • 利用配置元件 中的CSV Data Set Config进 行参数化设置 函数参数 • 使用JMeter提 供的函数进行 参数化 • JMeter提供 “函数助手” 的向导
•
•
•
•
13
JMeter主要组件(监听器)
• 监听器(Listener)负责收集测试结果,支持将结果数据写入文件。同时也 被告知了结果显示的方式。我们常用的包括: • 聚合报告、 • 查看结果树、 • 用表格查看结果、 • 图形结果
14
JMeter主要组件
聚合报告: Label:这里对应一个HTTP Request ,显示的就是 Name 属性的值; #Samples: 表示你这次测试中一共发出了多少个请求; Average: 平均响应时间 , 默认情况下是单个 Request 的平均响应时间,当使用 了 “事务控制器”时,以事务为单位为单位显示平均响应时间 Median: 中位数,也就是 50 %用户的响应时间 90% Line: 90 %用户的响应时间 Min: 最小响应时间 Max:最大响应时间 Error%: 本次测试中出现错误的请求的数量 / 请求的总数 Throughput: 吞吐量 ,默认情况下表示每秒完成的请求数。 KB/Sec: 每秒从服务器端接收到的数据量
• JMeter在测试工作的应用
• JMeter二次开发 • 自定义协议实现思路 • 应用举例
38
HTTP GET测试
39
基于WEB_BAS的测试实例
40
JMeter二次开发
• JMeter取样器提供了一些协议的测试 支持。如果不能满足测试需要,需要 做二次开发。 • JMeter是基于Java语言实现的,例 如http请求,它只是用Java代码封装 了Http的协议,内部其实使用了Java 的类库来对应用发送请求的,所以通 过Java请求的性能测试,我们可以做 任意自定义协议请求的性能测试
• JMeter支持的协议 • • Web(HTTP/ HTTPS),SOAP,FTP,Database(JDBC), LDAP,
JMS, Mail(POP3/IMAP),JAVA
Loadrunner支持的协议 • • • • WEB(Http/Html) 、FTP、LDAP、Palm 、Web/WinsocketDual JMeter 支持的协议相对 Loadrunner 较少, Protocol 但是可以通过二次开发来实现 SQL Server、 MS ODBC、 Oracle、 DB2、 Sybase CTlib、 Sybase DBlib、 Domain Name Resolution(DNS)、Windows Socket COM/DCOM、Corba-Java、Rmi_Java EJB、Rmi_Java Oracle NCA、SAP-Web、SAPGUI、SAPGUI/SAP-Web Dual Protocol、 PropleSoft_Tuxedo、Siebel Web、Siebel-DB2 CLI、 Sieble-MSSQL、Sieble Oracle