jmeter性能测试入门
1、jmeter介绍
2、jmeter变量环境部署
3、jmeter目录结构
4、jmeter Gui模式
5、jmeter 非Gui模式
6、jmeter 录制完显示乱码设置
7、jmeter 结果分析
1.jmeter介绍
1.1.jmeter基于java环境中运行,所以运行时电脑中需要配置java的jdk环境变量进行,不同版本的jmeter支持的jdk版本也不同,比如jmeter3.2只支持jdk8.0以上的版本,jmeter下载后解压安装并部署jdk就可以直接使用了。
1.2.jmeter下载(网盘或官网下载)
网盘:https://pan.baidu.com/s/1sKITYdiG7GwBGTzuHvQdTQ
密码:we6g
官网地址:https://jmeter.apache.org/
1.3.jdk下载(网盘或官网下载)
网盘:https://pan.baidu.com/s/1IZQbtdzde-6SZALfSh4-7w
密码:2zin
官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.jemter变量环境部署
参考地址:https://jingyan.baidu.com/article/c85b7a6414f2ee003bac95d5.html
验证结果:
在命令窗口输入 java -version 回车(会显示出jdk的版本及时间)
在命令窗口输入java回车(会显示出java命令页)
3.jmeter目录结构
JMeter中包含以下几个目录:
bin、docs、extras、lib、licenses、printable_docs
3.1 bin目录:
examples:目录中有csv样例
ApacheJMeter.jar:JMeter表现层的源码包
jmeter.bat:windows下启动文件
jmeter.sh:Linux下启动文件
jmeter.log:运行产生的日志和错误信息可在此文件查看
jmeter.properties:系统配置文件
jmeter-server.bat:windows下启动负载生成器服务文件
jmeter-server:Linux下启动负载生成器文件
3.2 docs目录:
接口文档目录
docs\api下的index.html可查看
3.3 extras目录
提供了对构建工具Ant的支持,可以使用Ant来实现测试自动化。
例如批量脚本执行,产生HTML格式的报表,测试运行时,可以把测试数据记录下来,Jmeter会自动生成一个.jtl文件,将该文件放到extras目录下,运行“ant -Dtest=文件名 report”,就可以生成测试统计报表
3.4 lib目录
lib下存放JMeter所依赖的外部jar包:
如httpclient.jar、httpcore.jar、httpmime.jar等等
JMeter依赖的核心jar包、JMeter插件包也在此目录
lib\junit下存放junit测试脚本
3.5 Licenses目录
jmeter证书目录
3.6 Printable_docs目录
用户使用手册,printable_docs下的index.html可查看
4.jmeter GUI模式
4.1 Jmeter windows下启动
4.2 Jmeter 主页面
4.3 Jmeter 测试元件简介
4.4 Jmeter 线程组
4.5 Jmeter接口测试实例
a、录制脚本
b、编写脚本
c、参数化数据
4.1 Jmeter的启动:
bin目录下启动jmeter.bat
4.2 Jmeter主页面
测试计划:
测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器
下面看一下一个计划下面都有哪些主要的功能模块
(右键单击“测试计划”弹出菜单)
4.3 测试元件:
e、Timer 定时器
负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求
f、Logic controller 逻辑控制器
允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
g、Pre processor Post processor 前端处理器、后端处理器
前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
h、config element 配置元件
维护Sampler需要的配置信息
4.4 线程组:
线程组的添加:
测试计划—>Threads—>Thread group
名称
注释
在取样器错误后要执行的动作
继续 (如果取样器里的执行出现错误失败的时候,请求不会停止,继续执行。)
Start Next Thread Loop
(忽略错误,线程当前循环错误,执行下一个循环。)
停止线程 (只限当前线程停止,不影响其他线程执行)
停止测试 (当前执行的线程全部执行完毕后结束)
Stop Test Now (立刻停止)
线程属性
线程数(需要设置多少线程执行测试,可看作模拟的用户数)
Ramp-up Period (in Seconds)(多长时间启动所有线程)
循环次数(线程跑几次)
Delay Thread creation until needed
(默认不勾选,延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟 和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。)
调度器(默认不勾选,选中之后可以配置启动时间)
启动时间(测试计划什么时候启动,启动延迟会覆盖它。当启动时间已过或手动运行
脚本时,当前时间也会覆盖它(但启动时间页面显示不会变)。)
结束时间(测试计划什么时候结束,持续时间会覆盖它)
持续时间(测试计划持续多长时间,会覆盖结束时间)
启动延时(测试计划延迟多长时间启动,会覆盖启动时间)
4.5 接口测试-实例
A、脚本的录制
A-1:
添加线程组:
右键测试计划-》添加-》Threads(Users)-》线程组
A-2:
添加HTTP代理服务器:
右键工作台-》添加-》非测试元件-》HTTP代理服务器
A-3:
配置代理服务器
--端口(Port域):XXXX
--目标控制器(Target Controller):测试计划>XXXX(线程组名称)
--分组:每个组放入一个新的控制器
--添加“包含模式(Patterns to Include)”:如“.*\.html”
--添加“排除模式(Patterns to Exclude)”:如“.*\.gif”
A-3:
添加HTTP代理服务器:
A-4:
手机配置
1、配置手机代理
2、安装证书
进入jmeter bin安装目录,找到“ApacheJMeterTemporaryRootCA.crt”文件,
以任何可行方式上传至手机(如何安装证书可自行百度)
4、证书安装成功后即可录制脚本
安装步骤:使用QQ、微信或USB线传输到手机,设置-更多设置-系统安全-从SD卡中安装。注:
安装前手机需设置为数字解锁密码,安装后可以关闭。
B 脚本的编写:
B-1
添加线程组:
右键测试计划-》添加-》Threads(Users)-》线程组
B-2
添加http请求
右击“线程组”,然后“添加”–>“Sampler”–>“HTTP请求”
B-3
在Sampler-http请求中完善:
域名
方法
Content encoding
路径
参数
B-4
添加查看结果树
右击“线程组”,然后“添加”–>“监听器”–>“查看结果树”
C 参数化数据
C-1
添加 CSV Data Set Config
右击“线程组”,然后“添加”–>“配置元件”–>“CSV Data Set Config”
C-2
CSV Data Set Config配置
C-3
CSV Data Set Config配置说明
Filename:制定的文档路径和名字;可以右击文档-属性,找到文档的路径,注意要写上文档名字和后缀;
File enconding:编码格式,如果txt文档中有中文,该行就要写入utf-8;
Variable Names:定义参数;txt文档中有几列就定义几个参数;参数见用英文逗号隔开;直接写wxid,在其他模块用的时候直接${wxid}调用即可;
Recycle on EOF:到了文件尾处,是否循环读取参数;
Stop thread on EOF:到了文件尾,是否停止线程;
C-4
http请求引用参数化数据
请求中参数值为${Variable Names}直接来引用
D 执行测试
命令行执行测试
5.Jmeter的非GUI模式
这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:
-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 远程执行 -> 启动远程服务
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
jmeter -n -t C:\Work\Order_10.jmx -l %workspace%\Report.jtl -e -o %jmxPath%\TestResult_Order\%d%\Report
6.Jmeter录制完显示乱码设置
6.1.修改jmeter配置文件:jmeter.properties
位置:jmeter中bin目录下
6.1.修改jmeter配置文件:jmeter.properties
打开配置文件后,
Ctrl+F输入encoding,把这行代码“=”后全部删除加入UTF-8,前方注释删除。
7.Jmeter结果分析
7.1.聚合报告
7.2.断言
添加响应断言:线程组-断言-响应断言
1.断言可以设置自己的预期结果
2.如我发送的请求返回值中有"success":true信息。
3.可以在响应断言中添加"success":true。
7.3.图形结果
添加图形结果:线程组-添加-监听器-图形结果
样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
jmeter性能测试入门的更多相关文章
- Jmeter性能测试入门(链接收藏)
Jmeter性能测试入门: http://www.cnblogs.com/TankXiao/p/4045439.html
- 【转载】Jmeter 性能测试入门
[转载]Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...
- Jmeter性能测试 入门--转载
转载: Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...
- Jmeter性能测试 入门【转】
Jmeter性能测试 入门[转] Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter ...
- jmeter 性能测试入门手册分享
深思熟虑之下,决定把这份性能测试入门手册分享给大家 最初整理这份教程的是因为自己在学习性能测试的过程中踩过了很多的坑,遇到了 数不清的问题,于是就想着将这些解决的问题全都归拢在一个文档里,方便自己查阅 ...
- Jmeter性能测试入门(转)
出处:http://www.cnblogs.com/by-dream/p/5611555.html Jmeter性能测试步骤 1. 添加线程组之后,先设置这两项: 2. 添加一个http请求 被测的u ...
- Jmeter性能测试 入门
Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadR ...
- JMeter性能测试入门--偏重工具的使用
1.JMeter整体简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试 ...
- JMeter性能测试入门--简单使用
1.JMeter整体简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试 ...
- JMeter性能测试入门-不同类型线程组的使用
jmeter不同线程组的详解 在做性能测试之前,我们来了解一下JMeter多个不同线程组的应用.首先,JMeter提供了三个基本的线程组,分别为: Thread Group setUp Thread ...
随机推荐
- JSP/Servlet基础
动态网页的技术 html+css javascript(弱语言) jquery(改造) jsp(java的html) servlet(核心) S2SH:structs2 (springmvc) spr ...
- uniapp 标题后面紧跟一个标签的布局
使用uni-app的时候,因为想用flex布局,所以一开始就设置了全部view display为flex. 之后遇到了如下这种样式: 开始想了半天没想出来,后来想到div span有这个效果. 然后就 ...
- 文件下载Controller,文件夹内容监听,文件上传,运行程序通过url实现文件下载
文件下载Controller @RequestMapping("/fileDownLoad") public ResponseEntity<byte[]> fileDo ...
- C++/CLI
[C++/CLI] A C++/CLI application or component uses extensions to C++ syntax (as allowed by the C++ Sp ...
- TCP报文格式
转载自https://blog.csdn.net/mary19920410/article/details/58030147 1.TCP报文格式 TCP报头中的源端口号和目的端口号同IP数据报中的源I ...
- JDBC 心得
还记得jdbc的及个步骤, 一是class出对象 2 链接数据库 3 SQL pre开头的 4 允许SQL,result,exeupdate, 在这里想写的通过反射得到对象, Hibernate有 ...
- 微信小程序分享朋友圈
原理:canvas生成图片再保存到手机 JS onShow: function () { var that = this; //1. 请求后端API生成小程序码 // that.getQr(); // ...
- struts 1.x配置文件说明
<struts-config> <global-exceptions /> <!--全局映射定义--> <global-forwards> <fo ...
- Which Queue Pair type to use?
Which Queue Pair type to use? Contents [hide] 1 Reliable Connected (RC) QP 2 Unreliable Connected (U ...
- 计数排序之python
话说,一口气不能吃个胖子, 一次性 学习 计数排序, 也确实容易消化不良. 下面,我们逐步学习下计数排序. 1. 已知一个简单列表 l1 = [5, 4, 3], 分析下这个列表的情况 5 > ...