当前位置:网站首页>Jmeter在性能测试中的应用实践样例
Jmeter在性能测试中的应用实践样例
2022-07-27 22:21:00 【51CTO】
Jmeter在某项目中进行性能测试中的应用实践样例
前段时间再次做了一次实践,基于JMeter进行了一下性能测试。昨天简要整理了一下,写了一篇文档,现在分享于此。
编制 | 念槐聚 | 日期 | 2016-01-26 |
审核 |
| 日期 |
|
发布 |
| 日期 |
|
发布 |
| 日期 |
|
变更记录
*修订类型分为 A - ADDED M - MODIFIED D – DELETED
注:对该文件内容增加、删除或修改均需填写此记录,详细记载变更信息,以保证其可追溯性
目录
目录
1文档目的:
2 适用范围:
3 参考文献:
4 Dubbo接口测试代码编写
4.1 创建工程,并导入依赖包
4.2 Jmeter中的case结构(JavaSamplerClient)
4.3 生成class可执行文件
5 Jmeter中进行测试执行
5.1 新建测试计划
5.2配置线程组
5.3添加java请求
5.4添加定时器
5.6添加监控项:Transactions per Second
5.7添加监控项:Transaction Throughtput vs Threads
5.5添加聚合报告
5.8其他扩展:前置处理器
5.9其他扩展:断言
6. 测试执行
7. 备注
1文档目的:
本文档主要对Jmeter在练习测试项目过程中的一次应用实践,做一简单描述,对于通过Dubbo接口,经过消息中心的处理与MQ的分发,以及MySQL入库\下发至网关的整个流程所涉及的测试方法,做一些简要的说明。
2 适用范围:
本文档主要适用于做测试,对JMeter没有了解过的测试人员,熟悉或已经精通JMeter的人可以忽略。
3 参考文献:
Jmeter API:
http://jmeter.apache.org/api/
4 Dubbo接口测试代码编写
4.1 创建工程,并导入依赖包
依赖包,包含两部分:一部分是压测工具Jmeter所需要的依赖包,参见下面截图

另外一部分,是业务相关的依赖包:jmeter-haotest-server.jar;
将相关lib包放在jmeter的目录${Jmeter_home}\apache-jmeter-2.13\lib\ext 下面,然后将jar包导入到eclipse中。
配置文件:


View Code
4.2 Jmeter中的case结构(JavaSamplerClient)
我们jmeter中的的一个完整case是要继承JavaSamplerClient这个类,继承这个类之后,在eclipse 中会自动生成需要重写的方法,这些方法就是我们这个文档主要介绍的部分。
如下代码示例:
实例中添加了这些方法的说明,接下来我会具体介绍每个方法如何完成代码开发。
TestInit.java:初始化基础类


View Code
JMeterTestSendTemplateMsgByEmail.java:
Dubbo接口类


View Code

4.3 生成class可执行文件
代码调通之后,需要重新clean,并run生成编译后的可执行文件;
然后联通bin目录一起copy到Jmeter机器中,标机为 ${jmeter_workspace_home};
5 Jmeter中进行测试执行
相关脚本调试通过之后,可以在压测工具Jmeter中执行:
启动D:\apache-jmeter-2.13\bin\jmeter.bat
打开 ${jmeter_workspace_home}\scenarios\JMeterTestSendTemplateMsgByWeChat.jmx
运行,并监控过程的输入。

下面对前一个过程进行详细的说明:
5.1新建测试计划
通过“文件”-->“新建”,添加一项测试计划;
5.2配置线程组

如上图所示,在测试计划中,添加线程组;
5.3添加java请求

在线程组下添加Java请求,如上图所示。添加结果如下:

在添加后的主窗口中,选择要测得类,并添加相应的参数。
包括参数的名称、值;
添加之后,进行保存。
5.4添加定时器

根据需要,有些压测需要添加定时器,则在线程组中,添加-->定时器-->固定定时器;
结果如下:

根据需要,并进行配置固定定时器的线程延时;
添加结果:

5.6添加监控项:Transactions per Second

测试过程中,我们需要监控相关tps,以及事务处理的线程情况等;
那么可以在监控器中添加相应的项,用以在后续测试执行之后得到相关数据;

如上图所示,添加之后,在测试执行过程中,实时的tps情况,即可在上表中呈现出来;
5.7添加监控项:Transaction Throughtput vs Threads

Transaction throughtput vs threads的添加方法和tps相同;
监控结果同样,会在执行过程中实时展现出来;
样例如下图:

*********
5.8添加聚合报告

通过选择 线程组-->监听器-->聚合报告,添加聚合报告之后,可以在聚合报告中看到总体的结果情况;
聚合报告的样例如下:
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | KB/sec |
TestSendTemplateMsgByWeChat | 9531 | 40 | 22 | 96 | 124 | 188 | 2 | 630 | 0.00% | 55.7 | 0 |
总体 | 9531 | 40 | 22 | 96 | 124 | 188 | 2 | 630 | 0.00% | 55.7 | 0 |
*
********
5.9其他扩展:前置处理器

对于某些场景的测试而言,可能需要准备预埋数据;
而添加前置处理器可以帮助解决这些问题;
5.10其他扩展:断言

断言,顾名思义,添加断言,可以在测试之后,通过断言,直接验证和标记case是否通过;
6.测试执行
执行过程中监控相关数据,并得到相关报告。
下面截取部分测试执行的结果样例;

上图是一个接口测试的TPS结果图片;

上图是一个接口测试的thread情况结果图片;
7.备注
JMeter的使用有更多的场景;
该文仅仅是一种基本的使用示例,欲了解更多,后续再逐渐补充;
补充服务启动的一个shell


View Code
由于是先编写了word文档,到这里格式可能略有变化。
赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
边栏推荐
- Can TSMC Samsung build a production line without American equipment for Huawei?
- ASML推出第一代HMI多光束检测机:速度提升600%,适用于5nm及更先进工艺
- Basic operations of MySQL database (3) --- Based on fields
- Basic elementary function
- 自动推理的逻辑09–自动定理证明
- Arm releases the new a78/g78/n78 kernel! There is also a cortex-x Series CPU that supports customization
- Jerry's PWM setting and PWM IO selection [chapter]
- In July, a software testing engineer came to the company. He looked like a hairy boy. He didn't expect to be the new generation of roll King
- Count the six weapons of the domestic interface cooperation platform!
- MySQL limit使用及超大分页问题解决
猜你喜欢

蓝桥杯单片机第十一届国赛程序设计试题

From the second floor to the third floor

Multithreading & high concurrency (the latest in the whole network: interview questions + map + Notes) the interviewer is calm

立即报名 | 云原生技术交流 Meetup 广州站已开启,8 月 6 号与你相遇!

《KMP复习 + AC自动机》前传

mysql分表之后怎么平滑上线?

点分治解析

DC motor winding parameters

Rancher2.6 monitoring grafana docking LDAP

Syntaxerror resolved: positive argument follows keyword argument
随机推荐
592. 分数加减运算 : 表达式计算入门题
Redis learning and understanding of three special data types
What is the org relationship mitigation strategy of Microsoft edge browser tracking prevention
Jerry Zhi doesn't play hidden audio files [article]
From the second floor to the third floor
MySQL limit使用及超大分页问题解决
LeetCode - 寻找两个正序数组的中位数
SRv6初登场
"C language" deep entry rounding & four functions
startUMl
Leetcode:1997. the first day after visiting all rooms [jump DP]
融云 IM & RTC 能力上新盘点
Network equipment hard core technology insider firewall and security gateway (V) security double repair method
R language evaluates the relative importance of the predictive factors (variables, characteristics) of the regression model, scales the predictive variables of the regression model, and then construct
网络设备硬核技术内幕 防火墙与安全网关篇 (九) 虚拟化神器 (下)
[CruiseControl]Build Result JSP
网络设备硬核技术内幕 防火墙与安全网关篇 (五) 安全双修大法 中
mysql数据库的基本操作(一)-——基于数据库
592. Fraction addition and subtraction: introduction to expression calculation
LeetCode_ Bit operation_ Medium_ 137. Number II that appears only once