Java使用JMeter进行高并发测试


Posted in Java/Android onNovember 23, 2021

软件的压力测试是一种保证软件质量的行为.在金融,电商等领域应用比较普遍.通俗的讲,压力测试即在一定的硬性条件下,模拟大批量用户对软件系统进行高负荷测试.需要注意的是,压力测试的目的不是为了让软件变得完美无瑕,而是通过压力测试,测试出软件的负荷极限,进而重新优化性能或在实际的应用环境中控制风险.

常见的压力测试工具:

1. LoadRunner:支持多种常用协议多且个别协议支持的版本比较高;可以设置灵活的负载压力测试方案,

可视化的图形界面可以监控丰富的资源;报告可以导出到Word、Excel以及HTML格式。

LoadRunner官网:https://saas.hpe.com/zh-cn/software/loadrunner

2.NeoLoad是Neotys出品的一种负载和性能测试工具,可真实地模拟用户活动并监视基础架构运行状态,从而消除所有Web和移动应用程序中的瓶颈。NeoLoad通过使用无脚本GUI和一系列自动化功能,可让测试设计速度提高5-10倍,并将维护的脚本维持在原始设计时间的10%,同时帮助用户使用持续集成系统自动进行测试。

NeoLoad支持WebSocket、HTTP1/ 2、GWT、HTML5、AngularJS、Oracle Forms等技术协议,能够监控包括操作系统,应用服务器,Web服务器,数据库和网络设备在内的各种IT基础设施,同时可以通过Neotys云平台发起外部压力。

官网链接:http://www.neotys.com/product/overview-neoload.html

3.JMeter:是开源测试工具,专门为运行和服务器负载测试而设计、100%的纯Java桌面运行程序。

原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。

它和HTTP和SQL(使用JDBC)的模块一起运行。它可以用来测试静止或活动资料库中的服务器运行情况,

可以用来模拟服务器或网络系统在重负载下的运行情况。它也提供了一个可替换的界面用来定制数据显示,

测试同步及测试的创建和执行。多平台支持,可在Linux,Windows,Mac上运行

官网链接:http://jmeter.apache.org/

使用JMeter进行高并发测试

1.下载并安装JMeter

下载JMeter 5.0,并将下载后的apache-jmeter-5.0.zip 解压到固定目录.

然后配置jmeter环境:

1.修改变量JMETER_HOME,值为实际压缩路径

2.修改Path变量,追加以下内容  %JMETER_HOME%\bin;

3.修改或添加CLASSPATH变量,添加以下内容:

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;
%JMETER_HOME%\lib\jorphan.jar;

2.使用JMeter进行测试

打开命令提示符窗口,输入"jmeter"命令启动JMeter,或者打开bin下的jmeter.bat,如图所示:

Java使用JMeter进行高并发测试

设置jmeter语言为中文

Java使用JMeter进行高并发测试

添加测试计划

Java使用JMeter进行高并发测试

添加线程组

Java使用JMeter进行高并发测试

设置线程参数

线程数:要启动的线程数目

Ramp-Up Period(in seconds):线程启动时间间隔,如果为0,则代表同时启动对应线程数的线程,即并发数

循环次数:请求执行次数

Java使用JMeter进行高并发测试

添加http请求

Java使用JMeter进行高并发测试

设置http请求相关系数

Java使用JMeter进行高并发测试

添加"察看结果树"监听器

Java使用JMeter进行高并发测试

启动测试计划

Java使用JMeter进行高并发测试

查看测试结果

Java使用JMeter进行高并发测试

Java使用JMeter进行高并发测试

3.生成测试报告

jmeter -n -t D:\jmeter\jmeter-5.0\backups\测试计划.jmx -l d:\jmeter\result.jtl -e-o d:\result

 参数说明:

)n:非GUI模式执行JMeter;
)t: 脚本文件(.jmx文件)的路径;
)l: 指定生成测试结果的保存文件(.jtl格式),此文件必须不存在;
)e:测试结束后,生成测试报告;
)o:用于存放测试报告的路径;

Java使用JMeter进行高并发测试

Java使用JMeter进行高并发测试

Java使用JMeter进行高并发测试

4.分析测试报告

APDEX是一个国际通用标准,是用户对应用性能满意度的量化值.定义了2个用户满意度阈值,是综合并发测试中的所有线程响应时间,并结合满意度阈值量化出的具体数值.

Requests Summary(请求摘要)

表示执行成功和失败的请求数目的具体占比,OK表示执行成功,KO表示执行失败,JMeter主要以HTTP状态码是否为200来判断请求的成功与失败.

Statistics(综合统计图)

Statistics为综合性的请求响应时间及响应状态的统计图,包括了请求数,请求失败数,请求错误比例,平均响应时间,最小响应时间,最大响应时间等.

到此这篇关于Java使用JMeter进行高并发测试的文章就介绍到这了,更多相关Java JMeter高并发测试内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
浅谈Java实现分布式事务的三种方案
Jun 11 Java/Android
Java实现斗地主之洗牌发牌
Jun 14 Java/Android
SpringBoot生成License的实现示例
Jun 16 Java/Android
Spring Boot 实现敏感词及特殊字符过滤处理
Jun 29 Java/Android
Java数组与堆栈相关知识总结
Jun 29 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
Flutter集成高德地图并添加自定义Maker的实践
Apr 07 Java/Android
Android开发EditText禁止输入监听及InputFilter字符过滤
Jun 10 Java/Android
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
Jul 07 Java/Android
Java 中的 Lambda List 转 Map 的多种方法详解
Jul 07 Java/Android
java实现web实时消息推送的七种方案
Jul 23 Java/Android
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
聊聊Lombok中的@Builder注解使用教程
Nov 17 #Java/Android
springboot 多数据源配置不生效遇到的坑及解决
Nov 17 #Java/Android
You might like
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
Javascript Object.extend
2010/05/18 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
微信小程序列表时间戳转换实现过程解析
2019/10/12 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
批处理与python代码混合编程的方法
2016/05/19 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
Python字符串的一些操作方法总结
2019/06/10 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
2014年监理个人工作总结
2014/12/11 职场文书
感谢信模板大全
2015/01/23 职场文书
担保贷款承诺书
2015/04/30 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js