Mac下Jmeter安装及基本使用

news/2025/3/15 10:45:20/

本篇文章只是简单的介绍下Jmeter的下载安装和最基本使用

1、初识Jmeter

前一段时间客户端app自测的过程中,有偶现请求某个接口返回数据为空的问题,领导让我循环100次请求这个接口,看看有没有结果为空的问题。听同事说有Jmeter的专业测试工具,正好不是很忙,于是上手Jmeter来测试下这个接口。

Jmeter是什么?

Apache Jmeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试,最初被设计用于Web应用测试,后来扩展到其他测试领域。

Jmeter有什么用?

  1. 可以用于测试静态和动态资源,例如静态文件、Java小服务程序、Java对象、数据库等;
  2. 可以对服务器、网络或对象模拟巨大的负载,来自不同压力级别下测试它们的强度和分析整体性能;
  3. 可以对应用程序做功能/回归测试;

Jmeter的优势

完全可移植性和100%纯Java,跨平台性非常好;

2、Jmeter下载与安装

进入Apache Jmeter官网首页 https://jmeter.apache.org/, 点击左边的Download Releases
在这里插入图片描述

点击Binaries下的压缩包下载,目前最新的版本为5.4.1

在这里插入图片描述

下载成功后,解压直接使用,不用安装,所以把压缩包解压到常用的软件文件夹下
在这里插入图片描述

打开终端,进入到该解压文件夹下的bin目录下

在这里插入图片描述

选中apache-jmeter-5.4.1文件夹,右键-服务-新建位于文件夹位置的终端窗口

在这里插入图片描述

输入命令:sh jmeter,打开Jmeter软件
在这里插入图片描述

软件启动页

在这里插入图片描述

软件设置中文,Options-Choose Language-Chinese(Simplified)

在这里插入图片描述

3、Jmeter基本使用

Jmeter的使用,我是以需求为导向的【在这里是指定接口循环100次】,以完成需求为目标,跟着需求来学习这个Jmeter。

1.创建线程组

在这里插入图片描述

线程组的基本配置
在这里插入图片描述

我这里对线程组的配置是1个线程数,间隔1秒,循环5次
在这里插入图片描述

2.添加http请求

在新建的线程组下,添加-取样器-Http请求

在这里插入图片描述

假如某个接口为:https://app.test.com/app_login?userName=hahaha&password=7844112b3344112b34f7

1.https请求需要在协议里明确填写https,
2.服务器路径或ip项填写:app.test.com【注意不用填写https://,末尾也没有/】
3.Http请求项根据当前接口的请求方式填写,一般为post或get
4.路径项填写:/app_login?userName=hahaha&password=7844112b3344112b34f7
5.端口号:https方式请求,端口号需要填写443,http方式不用填写
6.请求参数,根据参数字段值进行添加

在这里插入图片描述

接口参数配置好之后,我们添加一个察看结果树,就可以进行测试了

3.添加察看结果树

选中http请求,右键-添加-监听器-察看结果树

在这里插入图片描述

在电脑上创建一个csv文件,用于保存测试的结果,然后在察看结果树中配置该文件
在这里插入图片描述

然后就可以进行测试运行这个接口了,选中线程组,右键启动

在这里插入图片描述

会提示察看结果树的文件已存在,是覆盖文件还是附加到现有文件,这个根据需求选择就好

在这里插入图片描述

点击察看结果树,会看到,右边列表里请求的结果,绿色对号表示接口请求成功

在这里插入图片描述

响应的数据结果有多种查看方式可以选择

在这里插入图片描述

本地察看结果树保存的文件数据,有一些基本的测试结果数据可供查看
在这里插入图片描述

至此,基本上是可以满足对某个接口压测100次的,但是呢,查看结果比较麻烦,需要一个个手动点击每一次的接口去查看结果。比如我现在项目中的接口返回的一个状态码字段ret,ret=0表示接口正常,有数据返回,ret=-2表示接口正常,无数据返回。手动点击100次查看结果,这个效率太低了,可以写一个脚本,把接口返回的某个字段保存到本地文件中,然后直接在文件中去查看结果,这样的话,会方便很多。

那么就用到了Jmeter的正则表达式提取器和BeanShell后置处理程序

4.添加正则表达式提取器

正则表达式提取器是提取响应结果中的指定数据

在这里插入图片描述

比如想要过滤接口返回的的ret字段值 { “ret”: 0 } ,配置如下
在这里插入图片描述

在这里插入图片描述

5.添加BeanShell 后置处理程序

在这里插入图片描述
在这里插入图片描述

脚本程序如下,将正则表达式匹配到的数据保存到本地文件中

在这里插入图片描述

源代码如下:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.jmeter.samplers.*;
import org.apache.jmeter.config.*; 
import java.util.regex.Matcher;
import java.util.regex.Pattern;FileWriter fstream = new FileWriter("/Users/xxx/Desktop/666.csv",true);       
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("ret")+"\n"); 
out.close();
fstream.close();
var ret=vars.get("ret");
if(ret!=0){log.info("ssssssssssssssssssssssssssssssssssssssssssssssssssssss,ret:"+ret);
}

log.info可以把日志打印在控制台
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.运行测试

选中http请求,右键启动

1. 先查看日志运行结果

在这里插入图片描述

发现10次运行,ret字段返回值都为0

2. 查看本地文件是否保存ret字段值

在这里插入图片描述

可以看到666.csv文件已经保存ret的值了,我们通过查看666.csv这个文件可以更方便的筛选我们想要的测试结果

4、总结

Jmeter测试接口的基本功能算是熟悉了,不过它还有很多强大的功能,目前因为没有用到,也就没有进一步深入研究,待以后用到的时候,继续学习

文章来源:https://blog.csdn.net/weixin_39570655/article/details/132411845
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/1048992.html

相关文章

监控 FTP 服务器

文件传输协议 (FTP) 用于在 TCP/IP 网络中的服务器和客户端之间传输文件,它是一种标准协议,广泛用于在各个垂直行业的组织之间从集中位置存储和分发数据。FTP协议的其他一些安全版本如下: SSH 文件传输协议 &#xff…

性能比较 - Spring Boot 应用程序中的线程池与虚拟线程 (Project Loom)

本文比较了 Spring Boot 应用程序中的不同请求处理方法:ThreadPool、WebFlux、协程和虚拟线程 (Project Loom)。 在本文中,我们将简要描述并粗略比较可在 Spring Boot 应用程序中使用的各种请求处理方法的性能。 高效的请求处理在开发高性能后端…

【Apollo】自动驾驶感知——毫米波雷达

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&#x1f…

依赖预构建与静态资源处理

依赖预构建 vite是一个基于浏览器原生ES-Module的前端构建工具。 当你首次启动vite的时候,vite会在本地加载你的站点之前预构建项目依赖。 原因: CommonJS和UMD兼容性:在开发阶段中,Vite的开发服务器将所有的代码视为原生ES模块。…

[Docker] Portainer + nginx + AList 打造Docker操作三板斧

Portainer : Docker容器图形化管理系统nginx: 反向代理利器AList: 文件管理系统 1. 安装 ##### portainer ##### # 拉取镜像 portainer 注: ce 社区版 ee 企业版 原项目(portainer/portainer)已弃用 docker pull portainer/portainer-ce # 运行容器 docker run -d --name por…

LeetCode--HOT100题(36)

目录 题目描述:146. LRU 缓存(中等)题目接口解题思路代码 PS: 题目描述:146. LRU 缓存(中等) 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache…

Qbytearray:从十六进制字符串转字节一些注意事项

1、从十六进制字符串转字节后,按字节使用时 QByteArray data QByteArray::fromHex("cc94");printf("%x %x\n",data.at(0),data.at(0)&0xff);//若超过127,会不一样printf("%d %d\n",data.at(0),data.at(0)&0xff);…

RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

1. bug内容 RuntimeError: Unable to find a valid cuDNN algorithm to run convolution 2. 解决办法 设置torch.backends.cudnn.benchmark True 加上这一行后bug解决了,而且训练还更快了(但是在不同硬件下可能情况不同,因为我在本地电脑机上…