jmeter 性能测试学习:从0-1开展性能测试学习
Posted 测试架构师北凡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter 性能测试学习:从0-1开展性能测试学习相关的知识,希望对你有一定的参考价值。
目录
JMeter下载完成后,直接解压apache-jmeter-5.4.1.rarJMeter下载地址:http://jmeter.apache.org
1、插件下载地址:http://jmeter-plugins.org/downloads/all/
2、将jmeter-plugins-manager.jar包放到apache-JMeter\\lib\\ext目录下后,重启JMeter
3、重启JMeter后,打开插件管理器“Options(选项)->PluginsManager”
4、在插件管理器页面,点“Available Plugins”标签页面,勾选所需要安装的插件,点击“Apply Changes and Restart JMeter”的按钮安装
1、用于服务器性能监视:PerfMon Metrics Collector
2、用于建立压力变化模型:Stepping Thread Group
3、用于展示响应时间RT曲线:Response Times Over Time
4、用于展示TPS曲线:Transactions per Second
2、设置不启动SSL修改jmeter.properties文件下server.rmi.ssl.disable=true
3、设置代理机的IP与端口修改jmeter.properties文件下Remote_hosts,server_port
4、代理机启动bin目录下执行jmeter-server.bat
第四步:导出 jmx 格式脚本点击File->Export to jmeter,即可导出.jmx格式脚本
第五步: JMeter 图形页面打开 Badboy 的脚本同普通的JMeter脚本一样打开“File->Open”
3.1、设置自动管理Cookie,此步骤可选HTTP Cookie Manager:像浏览器一样的存储和发送Cookie,Cookie主要管理策略如下:
一、Jmeter简介
1、什么是Jmeter
- JMeter是Apache组织开发的开源测试工具
- JMeter是基于Java编写,可集成到其他系统,可拓展各个功能插件
- JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能
- JMeter不仅用于对软件做性能测试,也能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序实际返回结果与预期结果的对比
2、Jmeter高扩展性
- JMeter可链接的取样器允许无限制的测试能力
- JMeter各种负载统计表和可链接的计时器可供选择
- JMeter数据分析和可视化插件提供了很好的可扩展性以及个性化
- JMeter具有提供动态输入到测试的功能(包括javascript)
- JMeter支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)
3、Jmeter优点
- JMeter的源代码是开放性,可以进行二次开发
- 相较于自己编写框架与其他开源工具,JMeter有较为完善的UI界面,便于调试
- JMeter部署安装简单,组件较小(LR部署复杂,且笨重)
- JMeter支持多平台,可在Linux,Windows,Mac上运行
- JMeter最初的用途是用来测试web应用,如今JMeter功能已得到扩展,支持绝大部分的程序进行测试,例如各种类型的数据库、FTP、HTTP、HTTPS或者其他的服务端应用等
4、Jmeter缺点
- JMeter无法验证JS程序,无法验证页面,需要手工去做验证
- JMeter断言功能不够强大,需要手工编写断言脚本和人工确认
- JMeter自身不带性能监控功能,不利于测试结果分析,需要借助第三方平台或组件,有时需要手工编写程序
- JMeter分析报表较少,不利于测试结果分析,需要借助第三方组件
- JMeter支持的协议没LoadRunner多
- JMeter没有售后服务,同时也没有LoadRunner易用(LR的UI操作页面更容易引导用户使用)
二、Jmeter安装与配置
第一步:JMeter下载安装
JMeter下载完成后,直接解压apache-jmeter-5.4.1.rar
JMeter下载地址:http://jmeter.apache.org
第二步:JDK安装与配置
JMeter4.0~5.4.1 版本,支持 JDK1.8 以上版本
JDK1.8下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
JDK环境变量配置:
1、JAVA_HOME:D:\\Program Files (x86)\\Java\\jdk1.8.0_121(jdk安装在哪个盘就写哪个路径)
2、Path:%JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin
3、Classpath:%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar
打开cmd,运行java –version,能得到下面的输出就表示配置正确了
第三步:JMeter环境变量配置
1、 JMETER_HOME:D:\\soft\\apache-jmeter-5.4.1
2、 CLASSPATH:%JMETER_HOME%\\lib\\ext\\ApacheJMeter_core.jar;%JMETER_HOME%\\lib\\jorphan.jar;
3、 Path:%JMETER_HOME%\\bin
安装过程到此结束
其他平台安装 Jmeter:
与Windows平台方法相同,除了启动文件不同,例如linux平台下为/bin/jmeter.sh
第四步(可选):JMeter的JVM配置
jmeter.bat/sh是JMeter的主运行程序,我们通过这个程序来启动JMeter。这个文件可以被编辑。JVM参数:(HEAP、PermSize,注: 堆内存与非堆内存 之和不要超过物理内存的 50%)
if not defined HEAP ( rem See the unix startup file for the rationale of the following parameters, rem including some tuning recommendations set HEAP=-Xms1024m -Xmx3072m set NEW=-XX:NewSize=512m -XX:MaxNewSize=1024m )
三、Jmeter插件安装
1、插件下载地址:http://jmeter-plugins.org/downloads/all/
2、将jmeter-plugins-manager.jar包放到apache-JMeter\\lib\\ext目录下后,重启JMeter
3、重启JMeter后,打开插件管理器“Options(选项)->PluginsManager”
4、在插件管理器页面,点“Available Plugins”标签页面,勾选所需要安装的插件,点击“Apply Changes and Restart JMeter”的按钮安装
四、常用的Jmeter插件
1、用于服务器性能监视:PerfMon Metrics Collector
2、用于建立压力变化模型:Stepping Thread Group
3、用于展示响应时间RT曲线:Response Times Over Time
4、用于展示TPS曲线:Transactions per Second
JMeter 可以单机部署,也支持分布式部署
五.JMeter 分布式部署前需要确认的事项如下:
- 确保所有防火墙都关闭
- 确保所有客户端都在同一个局域网中
- 确保JMeter可以访问测试服务器
- 确保所有客户端安装JMeter的版本是一致,不同版本可能导致不能协同工作
JMeter 分布式部署步骤如下:
1、生成密钥
执行create-rmi-keystore.bat,按提示生成密钥,会在bin目录下生成一个rmi_keystore.jks文件。
2、设置不启动SSL
修改jmeter.properties文件下server.rmi.ssl.disable=true
3、设置代理机的IP与端口
修改jmeter.properties文件下Remote_hosts,server_port
4、代理机启动
bin目录下执行jmeter-server.bat
5、主机远程启动
Run->Remote,选择代理机
六.Badboy录制jmx脚本
1、Badboy介绍
Badboy与LoadRunner、Jmeter一样,可以进行参数化,可以设置断言,也可以进行脚本调试,并且可以设置线程数进行性能测试,生成一个简单的测试报告。
- Badboy是开源的自动化测试工具
- Badboy可以功能测试,也可以性能测试
- Badboy主要是模拟浏览器的操作,可以单独进行一些简单事务的性能测试
- Badboy录制与回放的功能,可以作为Jmeter脚本开发的辅助工具
2、Badboy录制脚本
第一步:下载安装 badboy
badboy下载地址:https://badboy.en.softonic.com/
下载完后,双击“BadboyInstaller-2.2.5.exe”文件,一路点下一步,直到完成安装
第二步:录制脚本
打开已经安装好的Badboy,录制步骤:点击录制(record on/off)->输入测试地址,执行回车,录制完成后,再次点(record on/off),结束录制
脚本录制完成如下图所示
第三步:回放脚本
点击“Play All”进行回归放
第四步:导出 jmx 格式脚本
点击File->Export to jmeter,即可导出.jmx格式脚本
第五步: JMeter 图形页面打开 Badboy 的脚本
同普通的JMeter脚本一样打开“File->Open”
一般情况下,录制完成脚本后,首先要做的就是删除不需要的信息,在Badboy或JMeter中直接手工删除即可
3、Badboy设置并发线程数、参数化、断言
JMeter代理录制脚本的过程
七、添加测试计划
window下,点击“jmeter.bat”,打开JMeter图形页面,默认生成一个新的测试计划(Test Plan)。或者JMeter图形页面下,点击“File->New”,新建一个测试计划。如下图所示
2、User Defined Variables
2.1、添加用户定义变量
(添加配置元件的User Defined Variables),此步骤可选
添加用户定义变量:测试计划( Test Plan )右健 ->Add->Config Element->User Defined Variables
如下图:访问服务器地址、应用端口、传输协议、一些固定值的变量等
2.2、TestPlan 中添加变量
添加用户定义变量(在测试计划中直接添加用户定义变量),此步骤可选
添加用户定义变量:点击 “ 测试计划( Test Plan ) ”直接打开,如下图:访问服务器地址、应用端口、传输协议、一些固定值的变量等
3、 添加 HTTP Cookie Manager
3.1、设置自动管理Cookie,此步骤可选
HTTP Cookie Manager:像浏览器一样的存储和发送Cookie,Cookie主要管理策略如下:
- Standard/Standard-strict:HTTP Cookie Manager默认使用Standard,选择Standard或Standard-strict,目的是尽可能兼容不同服务器
- RFC2109:是JMeter默认的Cookies协议
- RFC2965:是RFC2109标准升级版本
- Netscape:是最原始的Cookies协议,即也是RFC2109的基础
- Ignore Cookies:是忽略所有Cookie
3.2、手动管理Cookie,此步骤可选
①设置JMeter自动保存到线程变量中
修改jmeter.properties文件中的"CookieManager.save.cookies=true"。注:JMeter2.3.2版本后不自动
储存Cookie的值,jmeter.properties文件在“JMETER_HOME\\bin”目录下:
# CookieManager behaviour - should Cookies be stored as variables?
# Default is false
#CookieManager.save.cookies=false
#修改为
CookieManager.save.cookies=true
②手动添加Cookie:添加Cookie到HTTP Cookie Manager,Cookie的值被会所有线程共享
浏览器中使用F12-开发者工具抓包获取请求cookie名称、cookie的Value值、域名、路径
4、 添加 HTTP Header Manager
HTTP信息头管理,此步骤可选
HTTP Header Manager:HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。
常用的消息头如下:
- Accept:可接受的响应内容类型,例如:text/html,application/xhtml+xml,application/xml;
- Accept-Charset:可接受的字符集,例如:utf-8
- Accept-Encoding:可接受的响应内容的编码方式,例如: gzip, deflate
- Accept-Language:可接受的响应内容语言列表,例如:en-US;zh-CN,zh;
- Cache-Control:用来指定当前的请求/回复中,是否使用缓存机制,例如:max-age=0
- User-Agent:浏览器身份标识字符串,例如:Chrome/89.0.4389.114
5、 添加 HTTP 请求默认值
添加HTTP默认请求,主要是设置HTTP请求使用默认值,此步骤可选。
添加 HTTP Request Defaults :测试计划( Test Plan )右健 ->Add->Config Element->HTTP Request Defaults
6、 添加线程组 Thread Group
录制脚本过程中,Thread Group保留默认值即可,后期脚本优化开发过程中再根据需要修改各参数进行调试。
7、 添加录制控制器
添加录制控制器Recording Controller,可选
8、 代理服务器添加与设置
添加HTTP代理服务器,与相关设置
添加代理服务器:右键Test Plan->Add->非测试元件->HTTP(S) Test Script Recorder
HTTP代理服务器设置
9、设置浏览器代理
设置HTTP代理服务器的端口8888(默认8888),设置浏览器代理(地址:127.0.0.1,端口:8888,端口必须一致且不被占用)
10、 启动代理录制
点击“start”启动代理录制,浏览器中输入测试系统地址开始录制脚本。脚本录制完成后,点击“stop”停止脚本录制。
注意:代理录制完成后,记得取消浏览器代理,否则无法上网。
11、Jmeter常用监控统计组件
- 用于建立压力变化模型:Stepping Thread Group
- 用于服务器性能监视:PerfMon Metrics Collector
- 用于展示响应时间RT曲线:Response Times Over Time
- 用于展示TPS曲线:Transactions per Second
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,群号913569736(备注“csdn000”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
以上是关于jmeter 性能测试学习:从0-1开展性能测试学习的主要内容,如果未能解决你的问题,请参考以下文章
JMeter4.0学习之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发