测试 | 使用 jmeter 配置 Http 压测

本贴最后更新于 1818 天前,其中的信息可能已经天翻地覆

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
下载解压后的目录如下图所示:
image.png

启动 jmeter

确保本机 java 环境变量已经配好,然后进入到 bin 目录,执行 jmeter 就可以启动 jmeter 了
image.png
启动后 jmeter 界面如下图所示
image.png
左边的 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
下图是配置好的截图:
image.png
下面将详细讲解每个模块的配置

JMeter 配置 HTTP 测试

Thread Group

添加方式, 对 TestPlan 点右键, Add->Threads(Users) -> ThreadGroup
image.png
配置页面如上图所示,主要关系画框框的这三个参数:
Number Of Threads(users), 启动的线程数
Ramp-up period(seconds), 在多少秒之后把上面的线程数都启动起来
Loop Count: 循环次数

Http Request Defaults

有时候我们压测的不止一个页面,是同一网站上的很多页面,所以就需要这个配置项配置一些通用的东西.
添加方式:对ThreadGroup点右键-> Add-> Config Element->Http Requests Defaults, 配置面板如下图所示

image.png
在这里可以添加请求协议类型, http/https. 网站的根地址

HttpCookieManager/HttpHeaderManager

可管理请求的 cookie 和 header,添加方式:对 Thread Group 点右键-> Add -> Config Element ->Http Cookie Manager / Http Header Manager
CookieManager 新建后基本上不用操作,有自定义 header 需要添加可按下图在 Header 面板进行配置
image.png

HttpRequest

这个是具体的 Http 页面,添加方式, 右键 Thread Group -> Add -> Sampler->HttpRequest
配置面板如下
image.png
这里如 postMan 一样,可以设定请求的方式,及请求的路径. 在这个 DEMO 中配置为根路径

Aggregate Report

通常在压测中, 我们不会太多关注每一次的结果, 而是更关心其响应时间等,因为更多的,我们会添加 Aggregate Report,添加方式: Thread Group -> Add -> Listener-> Aggregate Report
image.png
添加完之后可以看到如上图的面板,但现在里面的数据还是空的.在运行之后会有结果

运行 JMeter 测试

image.png
在本次测试中, 我们把 Thread Group 做如下配置,1 秒内 50 个并发,循环 3 次
image.png
在运行完成后,可在 Aggregate Report 中看到如下结果:
image.png
可以看到对这次压测的报告:
平均响应时间 5s, 61% 的出错,每秒只能接收两个并发
其测试结果和网络情况有很大的关系

DEMO 总评

本来想把压测放到架构篇,但想了下, 这个只是入门级的,还并没有涉及到自动化测试和报告及差异化条件对比,还是只把这篇放在了测试篇下面. JMeter 的功能还有很多很多,值得每一位开发和测试人员深入学习掌握,加油!

  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • 测试
    53 引用 • 198 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...