软件测试工具之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、可以进行单个接口的测试,同时测试单个接口的性能情况;
- 上一篇:SSL&TLS渗透测试
- 下一篇:几种性能测试工具的总结
相关推荐
- 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,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)