javaDEMO
本网站记录了最全的各种 JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring 的, Mybatis 的等等各种,助力你从菜鸟到大牛,记得收藏哦~~
https://www.javastudy.cloud
jmeter 总述
jmeter 是一款综合性的测试工具,可以测 http, webservice , mq, 数据库等等,常用拿来做压测工具,本 DEMO 也是以压测入手使用 JMeter
官方文档地址:
https://jmeter.apache.org/usermanual/get-started.html
下载配置 jmeter
首先下载 jmeter,下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.2.1.zip
下载解压后的目录如下图所示:
启动 jmeter
确保本机 java 环境变量已经配好,然后进入到 bin 目录,执行 jmeter 就可以启动 jmeter 了
启动后 jmeter 界面如下图所示
左边的 TestPlan 就是我们要新建任务的地方
JMeter Http 相关组件介绍
如 postman,浏览器一致,要用 jmeter 来进行 http 请求,则也要在 jmeter 中把浏览器各个部分都模拟出来, 有 Request , Response , Cookie , Header , Body 这么些东西,对应的在 jmeter 中同是以下部分:
Thread Group: 以多线程的方式模拟多个用户同时对网站进行访问
Http Request Defaults: 这个放请求的通用的信息,如网站网,端口等信息
Http Cookie Manager:这个是用来管理请求中的 cookie 的
Http Request: 这个是 http 的请求
View Results Tree: 这个是看结果的,如需要看结果,就添加这个, 如果需要聚合报告,可添加 AggregateReport
下图是配置好的截图:
下面将详细讲解每个模块的配置
JMeter 配置 HTTP 测试
Thread Group
添加方式, 对 TestPlan 点右键, Add->Threads(Users) -> ThreadGroup
配置页面如上图所示,主要关系画框框的这三个参数:
Number Of Threads(users), 启动的线程数
Ramp-up period(seconds), 在多少秒之后把上面的线程数都启动起来
Loop Count: 循环次数
Http Request Defaults
有时候我们压测的不止一个页面,是同一网站上的很多页面,所以就需要这个配置项配置一些通用的东西.
添加方式:对ThreadGroup点右键-> Add-> Config Element->Http Requests Defaults, 配置面板如下图所示
在这里可以添加请求协议类型, http/https. 网站的根地址
HttpCookieManager/HttpHeaderManager
可管理请求的 cookie 和 header,添加方式:对 Thread Group 点右键-> Add -> Config Element ->Http Cookie Manager / Http Header Manager
CookieManager 新建后基本上不用操作,有自定义 header 需要添加可按下图在 Header 面板进行配置
HttpRequest
这个是具体的 Http 页面,添加方式, 右键 Thread Group -> Add -> Sampler->HttpRequest
配置面板如下
这里如 postMan 一样,可以设定请求的方式,及请求的路径. 在这个 DEMO 中配置为根路径
Aggregate Report
通常在压测中, 我们不会太多关注每一次的结果, 而是更关心其响应时间等,因为更多的,我们会添加 Aggregate Report,添加方式: Thread Group -> Add -> Listener-> Aggregate Report
添加完之后可以看到如上图的面板,但现在里面的数据还是空的.在运行之后会有结果
运行 JMeter 测试
在本次测试中, 我们把 Thread Group 做如下配置,1 秒内 50 个并发,循环 3 次
在运行完成后,可在 Aggregate Report 中看到如下结果:
可以看到对这次压测的报告:
平均响应时间 5s, 61% 的出错,每秒只能接收两个并发
其测试结果和网络情况有很大的关系
DEMO 总评
本来想把压测放到架构篇,但想了下, 这个只是入门级的,还并没有涉及到自动化测试和报告及差异化条件对比,还是只把这篇放在了测试篇下面. JMeter 的功能还有很多很多,值得每一位开发和测试人员深入学习掌握,加油!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于