压测软件Jmeter使用实例(WIN7环境)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 百科Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

百科

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言

我们为什么使用Jmeter

  • 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件
  • 支持接口测试,压力测试等多种功能,支持录制回放,入门简单
  • 相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试
  • 多平台支持,可在Linux,Windows,Mac上运行

Jmeter安装配置

登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件

img_5eefcedb4b5e0bea0e5f303fd7578c06.png
image.png

将下载Jmeter文件解压,打开/bin/jmeter.bat


img_d26c0336bddf4a3ccb77563103e2a6b3.png
image.png

打开后如图效果显示


img_2812efb953822d000c006c6136360f09.png

img_a500f237859be403072c6ea051ed2a34.png

新建线程组
img_33d90009260f0f96fbcfb7c6a52a8164.png

线程组( Threads (Users))

  • 理解:一个虚拟用户组,线程组内线程数量在运行过程中不会发生改变。
  • 注意事项:线程间变量相互独立。一个测试计划内可以包含多个线程组。
  • 可定义内容:
    取样器错误后执行的操作:继续,启动下一个线程,停止线程,停止测试,立刻停止
    线程属性:线程数,启动间隔时间(s)(n s内启动所有线程),单线程循环次数,线程执行顺序,是否使用调度器。
    调度器配置:持续时间,启动延迟,启动时间,结束时间
    本实例基本设置如下


    img_9d6a14a4eaa877a3536e357b6eb4ba3e.png

    为该线程组添加HTTP请求默认值


    img_80ea8afd0212961e18636d652913a551.png

    其中

配置元件(Config Element)

理解:为测试提供数据支持的控件

HTTP请求默认值

把测试计划中所有的HTTP请求的默认配置放到HTTP请求默认值中。
把重复的内容提取出来,只需要定义一次就可以了
协议,服务器或IP地址,端口号


img_3313324779c687b7b9204d80bb2086e5.png

HTTP请求默认值

  • 出现在测试计划下面,那么该配置会影响测试计划下的所有HTTP请求取样器
  • 出现在线程组中,那么其影响范围是线程组。

Sampler

理解:请求,设置不同的request

HTTP请求

理解:就是一次HTTP请求


img_5e5b8425daa98b4e926d9cb2a3e8ac7c.png

本实例该配置如下


img_0fa94cd4548ef19f9791fa3ebe003f3b.png

监听器(Listener)

理解:查看请求执行结果的控件

聚合报告

img_cce2ef38f02767a759b58d4fe3fb8e23.png
image.png

img_513d48da8da9f761b58f7b5457ecdfd0.png

参数含义:

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

图形结果

img_e4839483bb7663454e8fccbbe205dde9.png
image.png

参数含义:

样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
注意事项:图形结果本身会影响Jmeter的性能

点击启动按钮,开启测试

img_2927420e69eaf0a6bacbec45217cae2c.png

可见TPS还是很低的


img_d3048439cb36e9014c290c0998cce21f.png
image.png

Jmeter自定义变量

配置文件


img_0135a112e9106bab231243aaaea02c64.png
img_c5dd445a13fdb0198c18aaa493f12437.png
image.png

img_50d6470e8ec3b59e0ef8a9c619c0b059.png

Redis的压测

img_7528faedbbe773466c500507f9b73fd6.png
自带的压测工具
img_f5ec81c9f3cc7f7c409108c61f5a2d03.png
检验服务启动状态

执行redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000命令后


img_504be98a73960af988ec48563c8666d8.png
可以看出redis的QPS之高
img_2292f66ef334daa7c6ec91ae930d9527.png
redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100
img_9cfbfd0a30a14f9dfabcab4b3972c66c.png
只测试set,lpush命令
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
1月前
|
Ubuntu Java 测试技术
【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测
【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测
|
2月前
|
存储 弹性计算 运维
阿里云服务器ECS经济型e实例详细介绍_性能测试和租用价格
阿里云服务器ECS经济型e实例详细介绍_性能测试和租用价格,阿里云服务器ECS推出经济型e系列,经济型e实例是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,CPU采用Intel Xeon Platinum架构处理器,支持1:1、1:2、1:4多种处理器内存配比,e系列性价比优选
|
3月前
|
测试技术 UED
PTS压测问题之资源准备好慢如何解决
PTS(Performance Testing Service)是一项面向网站、应用等提供的压力测试服务,用于模拟不同场景下的用户访问,评估系统的性能表现;在进行PTS压测时,可能会出现一些异常或报错,本合集将PTS压测中频繁出现的问题及其解决办法进行汇编,旨在帮助用户更有效地进行性能测试和问题定位。
245 1
|
3月前
|
JSON 网络协议 Java
使用Jmeter进行功能和性能测试
使用Jmeter进行功能和性能测试
|
2月前
|
存储 弹性计算 运维
阿里云经济型e实例详细介绍_性能测试_使用限制说明
阿里云服务器ECS推出经济型e系列,经济型e实例是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,CPU采用Intel Xeon Platinum架构处理器
|
4月前
|
弹性计算 测试技术 开发者
我使用了阿里云的e实例进行了一系列性能测试
我使用了阿里云的e实例进行了一系列性能测试
61 0
|
5月前
|
JSON Java 测试技术
Jmeter压测工具使用手册(四)
Jmeter压测工具使用手册
104 0
|
5月前
|
JSON Java 测试技术
Jmeter压测工具使用手册(三)
Jmeter压测工具使用手册
|
5月前
|
测试技术 调度
Jmeter压测工具使用手册(二)
Jmeter压测工具使用手册
|
7月前
|
关系型数据库 MySQL Java
【JMeter】(3)---MySQL压测
【JMeter】(3)---MySQL压测
174 0