JMeter:如何开始简单的WEB压力测试?

news/2024/7/5 4:55:31

目录

背景

如何开始简单的WEB压力测试

PutsReq网站截图

执行测试计划


背景

JMeter是一款广泛使用的性能测试工具,它可以模拟用户行为并生成负载,用于评估Web应用程序的性能和稳定性。

最近工作上被安排针对Web网站进行性能压测,以评估特定的硬件配置下Web网站可支持的并发用户数。考虑到JMeter是流行的Web性能压测工具,因此趁着这次机会上网查阅了很多关于JMeter的资料,也自己动手进行软件的配置和调测,从最基本的发送HTTP请求,到参数化输入,分布式测试和最后的实时结果展示都折腾了一把。现将折腾过程进行整理,既作为自己日后参考,也可分享给有需要的人,少踩一些坑。

在折腾的过程中,主要参考JMeter官网,上面有详细的手册和教程,同时也参考了其他一些博客和StackOverflow。重新整理的过程也是一个学习提高的过程,复习了相关的概念并找到了一些更易于理解的方法。

接下来按照我做为初学者对性能压测的疑问,对整个过程进行梳理:

  • 如何开始简单的WEB压力测试(一):发起第一个HTTP请求
  • 如何开始简单的WEB压力测试(二):并发测试与参数化
  • 如何录制测试计划
  • 如何进行分布式压力测试
  • 如何实时展现测试结果

每个问题都会辅以实际的例子进行解答,并将具体操作的步骤和结果截图记录下来。


如何开始简单的WEB压力测试

俗话说万事开头难,接下来我们以一个最简单的例子介绍如何从JMeter发起第一个HTTP请求。后续在这个例子上进行延伸,了解如何进行并发测试和参数化。

发起第一个HTTP请求

1. 安装JMeter

建议从官网上下载最新版本,以便获得更多新功能。目前最新的版本是3.3,支持Java8。同时,官网上也有丰富的文档资源,包括用户手册,最佳实践,组件参考和教程等,值得花时间仔细阅读。

2. 准备被测网站

被测网站建议使用 PutsReq 。这个网站可以接受HTTP请求并且可以自定义返回结果,过程非常清晰,适合做为HTTP测试使用。

在网站首页上点击 “Create a PutsReq" 蓝色按钮,网站会自动帮你创建一个URL,接下来就可以往这个路径发送HTTP请求。可以看到是如果普通的GET请求,则会返回"Hello World";如果是POST请求并带了name参数(假设name参数值为XYZ),则会返回 Hello XYZ

PutsReq网站截图

3. 在JMeter中配置测试计划

首先在Test Plan中增加一个Thread Group。在JMeter中每个Thread相当于一个模拟用户,在Thread Group中进行进一步的配置可以定义模拟用户的行为,如发起各种请求等。

创建Thread Group

在本例中Thread Group创建后可以先不改参数,接着创建一个Sampler/HTTP Request

创建Sampler

并按下图所示填写相关的参数,包括协议,服务器名,请求类型和路径,让模拟用户发送HTTP GET Reqeust到被测网站。

配置Sampler

最后增加一个Listener/View Results Tree,查看请求的结果。

创建Listener

如果一切正常,那这个请求应该返回一串字符”Hello World"

4. JMeter执行测试计划并查看结果

配置完成后我们就可以通过JMeter执行刚刚配置好的测试计划,即发送一个HTTP GET Request到被测网站 PutsReq

执行测试计划

在JMeter上查看请求结果,返回是一串字符 "Hello World"

通过Listener查看请求返回结果

 作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可


http://lihuaxi.xjx100.cn/news/1289243.html

相关文章

从URL输入到页面展示过程

99. 从URL输入到页面展示过程 在日常的网页浏览中,我们只需要输入URL并按下回车键,就能迅速看到页面的展示。然而,背后涉及到了一系列复杂的步骤和技术。本文将详细介绍从URL输入到浏览器页面展示的完整过程,让我们更深入地了解浏…

【Spring Cloud Alibaba Sentinel 实现熔断与限流】 —— 每天一点小知识

💧 S p r i n g C l o u d A l i b a b a S e n t i n e l 实现熔断与限流 \color{#FF1493}{Spring Cloud Alibaba Sentinel 实现熔断与限流} SpringCloudAlibabaSentinel实现熔断与限流💧 🌷 仰望天空,妳我亦是行人.✨…

js内存泄漏及排查详解

js内存泄漏及排查详解 常见内存泄漏及解决方案 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 隐式全局变量 在局部…

v8-tc39-ecma262:concat,不只是合并数组

如上图,解释如下: 如果是对象o,转换为对象新建数组A设n0,用于最后赋值给A,确保A的长度正确预先把值设置到items(这里不知何意?)循环items,设置元素为E E是否可展开如果可展开 有len下标,则获取…

QT多线程之QtConcurrent::run()

QtConcurren导读 QtConcurrent提供了编写多线程程序的高级api,也即不使用低级线程原语,而其他实现多线程的方式,例如子类化QThread、QObject::moveToThread()、子类化QRunnable对于共享数据的保护都要使用低级线程原语,这无疑是要…

(0day通用)中庆纳博某系统敏感信息泄露+未授权修改密码

申明:本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途! 1.漏洞背景 北京中庆纳博信息技术有限公司,简称中庆纳博,是有20年历史的中庆集团旗下核心企业,专注于教育信息化的深度…

通过shell的while read line对一个文件中的考试分数进行人员分组

通过shell的while read line对一个文件中的考试分数进行人员分组,并记录分数 [rootecs-18b3 ~]# cat split.sh #!/bin/bash while read line donameecho ${line}|awk {print $1}scoreecho ${line}|awk {print $2}if [ ${score} -gt 90 ];thenecho -e "${name…

linux:Docker 退出容器但不关闭当前容器

参考: Docker 退出容器但不关闭当前容器_docker 怎么把容器hold_leoe_的博客-CSDN博客