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

news2024/11/28 1:15:11

目录

背景

如何开始简单的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://www.coloradmin.cn/o/702004.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:关于Python除二取余法的优缺点分析

关于Python除二取余法的优缺点分析 Python是当前数据分析和科学计算最火热的语言之一,其中除二取余法是Python中很有趣的算法之一。它也是很常用的基础算法之一,特别是在图像处理和编码中,非常常用。除二取余法指的是一个数值除以二后的余数…

『手撕 Mybatis 源码』09 - MyBatis 插件

MyBatis插件 概述 问题:什么是Mybatis插件?有什么作用? Mybatis插件本质上来说就是一个拦截器,它体现了 JDK 动态代理和责任链设计模式的综合运用 Mybatis 中所允许拦截的方法如下 Executor 【SQL执行器】【update&#xff…

深信服行为感知系统远程命令执行

什么是男子汉?困难打不倒的人才是真正的男子汉! 漏洞复现 构造payload访问漏洞url: /tool/log/c.php?strip_slashessystem&hostipconfig漏洞证明: 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢…

linux服务器python2升级安装python3.7环境

文章目录 开始1. 首先,先检查自己的系统是否安装了python32. 如果你只是想安装python3.63. 安装python3.7的准备工作4. 安装python35. 添加软链接,让python3和pip3这两个命令指向刚刚安装的python3.76. 检验python3安装是否ok7. 更新默认 Python 版本8. …

Spring管理事务知识

目录 1.什么是事务 2.事务的特性ACID 3.Spring 管理事务的方式 4.Spring管理事务的体现:JDBCTemplate 5.声明式事务的属性有哪些 6.声明式事务属性---只读 7.声明式事务属性---超时 8.声明式事务属性---回滚策略 9.声明式事务属性---事务隔离级别 10.声明…

mac 安装 aab android包

一、配置bundletool环境 1、下载最新版的bundletool 版本号要最新的 bundletool-all-1.15.1.jarhttps://github.com/google/bundletool/releases/download/1.15.1/bundletool-all-1.15.1.jar Releases google/bundletool GitHub​​​​​​​​​​ 2、把bundletool放在…

简要介绍 | 基于Diffusion model的图像生成和重建

注1:本文系“简要介绍”系列之一,仅从概念上对基于Diffusion model的图像生成和重建进行非常简要的介绍,不适合用于深入和详细的了解。 基于Diffusion model的图像生成和重建 What are Stable Diffusion Models and Why are they a Step Forw…

Hyperledger Fabric架构设计

目录 1、逻辑架构 答疑:什么叫做背书策略? 2、运行时架构 答疑:什么是锚节点? 1、逻辑架构 Hyperledger Fabric从1.X开始,在扩展性及安全性方面有了很大的提升,且新增了诸多特性。 多通道:支…

【carla】carla仿真环境安装与运行

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍carla仿真环境安装与运行。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷…

文心一言 VS 讯飞星火 VS chatgpt (51)-- 算法导论6.2 3题

三、当元素 A[i] 比其孩子的值都大时,调用 MAX-HEAPIFY(A.i)会有什么结果? 文心一言: 当元素 A[i] 比其孩子的的值都大时,调用 MAX-HEAPIFY(A, i) 会将 A[i] 与其孩子中的最小值进行交换,并将 A[i] 视为新的根节点。这个操作会…

解决no main manifest attribute, in XXX.jar

解决no main manifest attribute, in XXX.jar 1. 问题描述1.1 前言1.2 问题描述 2. 问题原因3. 解决问题3.1 修改pom文件3.2 重新启动3.3 再次查看META-INF/MANIFEST.MF3.4 小结 1. 问题描述 1.1 前言 创建一个简单的maven项目,pom配置如下: 1.2 问题…

若依-vue图片上传本地改OSS前台以及后台-附带oss图片上传工具类

阿丹: 在二次开发若依的过程中发现若依的图片上传的默认的是在本地,在spring-vue版本中,如果要将平台上线那么就需要考虑这个问题,要使用fastdfs或者oss来完成代替本地的图片上传。 本篇文章我使用了oss来完成图片上传以及前台的…

【零基础入门学习Python---Python网络编程之django快速入门实践】

🚀 Python 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

mac 文件批量重命名001开始

mac 文件批量重命名001开始,怎么操作?我们平时在整理办公文件的时候,经常需要对文件的名称进行修改,将文件修改为数字形式的名称,例如001、002、003、004......这样的形式,尤其是某项工作涉及非常多文件的时…

Spring Boot 中的 WebSocket 是什么,原理,如何使用

Spring Boot 中的 WebSocket 是什么,原理,如何使用 前言 WebSocket 是一种支持双向通信的网络协议,可以让客户端和服务器之间实现实时通信。Spring Boot 提供了对 WebSocket 的支持,可以方便地在应用程序中实现实时通信功能。本…

LangChain大型语言模型(LLM)应用开发(一):Models, Prompts and Output Parsers

LangChain是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

iOS App的上架和版本更新流程

一、前言: 作为一名iOSDeveloper,把开发出来的App上传到App Store是必要的。下面就来详细讲解一下具体流程步骤。 二、准备: 一个已付费的开发者账号(账号类型分为个人(Individual)、公司(Com…

2023上半年软考系统分析师科目一整理-17

2023上半年软考系统分析师科目一整理-17 计算机系统的性能一般包括两个大的方面。一个方面是它的(),也就是计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度,也可以是在一段时间内,能正常工…

【域名详解】网络杂谈(13)之深入简出了解什么是域名

涉及知识点 什么是域名,域名的概念,域名的结构,域名地址的寻址过程,深入了解域名的寻址机制。 原创于:CSDN博主-《拄杖盲学轻声码》,更多内容可去其主页关注下哈,不胜感激 文章目录 涉及知识点…

【工作记录】基于CSS+JS可拖拽改变大小、可吸附到边界的DIV

记录一段实现可拖拽、可自动吸附到边界的代码。 <!DOCTYPE html> <html lang"en"> <head><style>body {overflow: hidden;}#pane {position: absolute;width: 45%;height: 45%;top: 20%;left: 20%;margin: 0;padding: 0;z-index: 99;border…