百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

软件测试工具之JMeter教程

itomcoil 2024-12-14 12:42 30 浏览

扼要:

1、了解JMeter的界面操作;

2、用JMeter进行接口测试;

3、用JMeter进行html/htmls协议、websocket协议的压测;


JMeter是Apache应用程序,是开源软件,100%纯Java语言编写,可用于模拟服务器、服务器组、网络或者对象上的重负载,以测试其强度或者分析不同负载类型下的整体性能,即用途:测量性能。

JMeter测试对象

JMeter能够加载和性能测试许多不同的应用程序/服务器/协议类型:

1、web应用或者协议:HTTP,HTTPS(Java,NodeJS,PHP,ASP.NET等);

2、SOAP / REST Web服务;

3、FTP;

4、通过JDBC的数据库;

5、邮件-SMTP(S),POP3(S)和IMAP(S);

6、TCP协议;

7、Websocket协议等等。

JMeter安装

1、安装jdk,下载地址:https://www.oracle.com/java/technologies/javase-downloads.html

2、安装JMeter,下载地址:https://jmeter.apache.org/download_jmeter.cgi

下载后,解压即可。

备注:目前JMeter最新版本为: 5.4.1,其需要Java 8+(JDK 8)

JMeter在windows系统的操作

1、在JMeter解压后的文件夹中,找到bin目录,点击jmeter.bat即可启动Jmeter;

2、下面操作例子为手机号码归属地查询;

2.1、免费获取的API地址:https://api.ioser.net/

2.1、手机号码查询API:https://api.ioser.net/phone

操作录屏:

操作细分:

1) 在空白的测试计划中,创建线程组;

2) 在线程组中,添加http请求;

3) http请求界面中,添加相应的配置,如下图所示:


1) 添加监听器,本次添加“察看结果树”,主要查看运行结果是否正确。

3、进行压测

3.1、设置线程组的配置:

3.2、设置分布压测

分布压测:一个控制器节点和多个工作节点;

通常一个控制器节点(运行JMeter GUI[控制测试]的系统),安装在windows上,工作节点则安装linux上,并采用CLI模式运行脚本;

备注:控制器节点的机器和工作节点的机器都应该在同一网段;

A、修改工作节点机器的jmeter.properties:

server_port=1234(自定义端口号,避免被占用)

server.rmi.localport=1234(跟上面设置的端口号一致)

server.rmi.ssl.disable=true

B、修改工作节点机器的jmeter-server:

RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.50.57(绑定本机ip)

C、 启动工作节点机器上jmeter bin目录下的jmeter-server(jmeter-server.bat for windows),记录ip和port

D、修改控制器节点的机器jmeter.properties:

server.rmi.ssl.disable=true

remote_hosts=192.168.50.57:1234(与工作节点机器上配置的ip、port对应)

备注:若有多个工作节点机器,使用逗号分隔多个ip、port,如remote_hosts=ip1:port1,ip2:port2

E、在控制器节点的机器上,打开测试脚本,启动-->远程启动slave机,可以启动单个工作节点机器或全部启动。

JMeter命令执行脚本

命令执行脚本,可以节约系统资源、便捷快速。

1、一般性执行测试脚本

jmeter -n -t HTTP请求.jmx

2、指定结果文件和日志

jmeter -n -t HTTP请求.jmx -l D:\JMeterTest\report\result.csv -j D:\JMeterTest\report\log.log

3、工作节点机器上执行脚本

jmeter -n -t D:\JMeterTest\HTTP请求.jmx -R 192.168.50.57:1234 -l D:\JMeterTest\report\01-result.jtl -j D:\JMeterTest\report\01-log.log

JMeter压测websocket协议

1、访问https://jmeter-plugins.org/get/ 获取jmeter插件管理器的jar包(jmeter-plugins-manager-1.3.jar);

2、将jmeter-plugins-manager-1.3.jar包放入 jmeter的 lib/ext目录,重启jmeter;

3、添加插件,在工具栏>>>>Options>>>Plugins Manager>>>Available Plugins中搜索"WEBSOCKET" ,使用的"WebSocket Sampler by Maciej Zaleski",勾选并点击下面的Apply and restart jmeter,安装成功后,会自动重启;

4、创建websocket协议

4.1、 Server Name or IP:不需要再添加“ws”;Port Number:端口默认为80;

4.2、关联数据处理

后置处理json格式的数据,即当前的接口返回的数据中在后面的接口中用到,且每次请求后的数据是动态的。

方法处理:后置处理器-->json提取器

根据json路径来提取:$.data.auth.token 或者$.data.auth[0].token

4.3、参数化

参数化的名称格式:${token},其中token为通过json提取器保存的数据名称;

JMeter其他用途

1、可以进行大量造数据;

2、可以进行单个接口的测试,同时测试单个接口的性能情况;

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...