CN108540349A - 一种基于Jmeter的自动化性能测试方法及系统 - Google Patents
一种基于Jmeter的自动化性能测试方法及系统 Download PDFInfo
- Publication number
- CN108540349A CN108540349A CN201810350848.5A CN201810350848A CN108540349A CN 108540349 A CN108540349 A CN 108540349A CN 201810350848 A CN201810350848 A CN 201810350848A CN 108540349 A CN108540349 A CN 108540349A
- Authority
- CN
- China
- Prior art keywords
- jmeter
- performance testing
- test
- server
- testing method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于Jmeter的自动化性能测试方法及系统,所述方法采用在Jmeter测试工具中设置并发量、端口号、IP地址及循环数,运行Jmeter得到测试结果,同时编写统计结果脚本,分析Jmeter测试结果,获得最终的性能测试结果;同时本发明还通过编写Shell脚本将并发量、端口号、IP地址、循环数及Jmeter测试结果和保存目录进行参数化,来实现多个接口,多组并发,多个不同IP地址或端口的测试;本发明无需多次输入执行命令,无需多次重写脚本,无需将测试结果拷贝到安装了jmeter GUI的电脑中,可节约大量时间,提升工作效率,提升工作准确率。
Description
技术领域
本发明涉及自动化测试领域,尤其涉及一种基于Jmeter的自动化性能测试方法及系统。
背景技术
目前的进行服务器端性能测试的主流工具有loadrunner,jmeter。loadrunner更像是一个模拟器,它比较适用于前端构造较复杂场景的情况,比如模拟100个用户登录的场景,LoadRunner对非技术人员提供了很好的支持。LoadRunner不适用后端接口。针对接口复杂的后端端口,jmeter可以导入jar包,实现多种协议的测试,扩展性很强。因此jmeter更适合服务器端性能测试。
Jmeter的GUI方式的测试简单,容易上手。然而,如果要实现大并发测试,只能采用non-gui的方式。利用non-gui的测试方式会面临一下两个问题:
1)一般利用性能测试,如果并发量,端口号,nginx或API的ip地址发生变化,脚本都需要重新修改。
2)另外,jmeter命令行生成的测试报告,仅对单一的并发量有效。当需要测试的并发量设置为一个任意值,且需要多组并发量来衡量某个接口的性能时,需要多组脚本。
3)jmeter的扩展工具可对测试期间CPU,内存统计工具,但仅对tomcat项目或java项目有效。如果是C,python项目,统计工具无法生效。
发明内容
针对现有技术需要重写脚本,且测试结果生成很麻烦,将运行结果文件导出来非常耗时,浪费大量时间的缺点,提供了一种基于Jmeter的自动化性能测试方法及系统。
所述基于Jmeter的自动化性能测试方法中,压测机服务器、API服务器及数据库均在由代理服务器提供网络连接的同一个内网中,所述压测机服务器与API服务器通过API接口进行连接,所述数据库提供API接口所需要调用的数据,压测机服务器上加载Jmeter性能测试工具,所述方法包含以下步骤:
S1:启动Jmeter性能测试工具,设置压测机服务器发送请求的并发数、代理服务器的IP地址及端口号及每个请求的发送循环数;
S2:设置好步骤S1中的参数后运行Jmeter进行测试,将Jmeter测试结果保存在Jtl文件中;
S3:分析Jtl文件,编写统计结果代码,形成统计脚本,运行统计脚本,得到最终的统计结果,形成最终性能测试报告。
在本发明的一种基于Jmeter的自动化性能测试方法中,还包括编写Shell脚本来将步骤S1中的压测机服务器发送请求的并发数、代理服务器的IP地址及端口号、每个请求的发送循环数及Jmeter测试结果保存目录进行设置和参数化,将所述Shell脚本导入Jmeter并运行,以执行多个测试接口,多组压测机并发,多个不同IP地址或端口的测试。
在本发明的一种基于Jmeter的自动化性能测试方法中,所述Shell脚本通过C或Python编写。
在本发明的一种基于Jmeter的自动化性能测试方法中,根据步骤S3中所述Jmeter测试结果:第一列数据为时间戳,第二列代表响应时间,根据公式:每秒请求数=(总请求数/总运行时间)得到每秒请求数。
在本发明的一种基于Jmeter的自动化性能测试方法中,步骤S3中得到的最终性能测试结果包含:平均响应时间、响应时间中值、最小响应时间、最大响应时间、90%响应时间、95%响应时间、每秒查询速度、每秒从服务器接收的数据量、每秒从服务器发出的数据量、吞吐量及错误率。
优选的,本发明还提供了一种基于Jmeter的自动化性能测试系统,采用如上所述任意一项基于Jmeter的自动化性能测试方法来实现Jmeter的自动化性能测试。
本发明无需多次输入执行命令,无需多次重写脚本,无需将测试结果拷贝到安装了jmeter GUI的电脑中。可节约大量时间,提升工作效率,提升工作准确率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明方法具体流程图;
图2是本发明实施例Jmeter测试结果图;
图3是本发明实施例最终性能测试结果图。
具体实施方式
为了对发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
目前一般的系统用户的请求会通过nginx或SLB分发到内网中,内网中执行程序后,会将结果返回给用户。且一般的系统会按流量计费。也就是说,在评价这类系统的性能指标时,要将网络限制因素去掉。本发明的一种基于Jmeter的自动化性能测试方法,压测机服务器、API服务器及数据库均在由代理服务器提供网络连接的同一个内网中,所述压测机服务器与API服务器通过API接口进行连接,所述数据库提供API接口所需要调用的数据,压测机服务器上加载Jmeter性能测试工具,参考图1,所述方法包含以下步骤:
S1:启动Jmeter性能测试工具,设置压测机服务器发送请求的并发数、代理服务器的IP地址及端口号及每个请求的发送循环数;如并发数设置为${__P(threadCount,)},循环数用${__P(cycle,)}代替。
S2:设置好步骤S1中的参数后运行Jmeter进行测试,将Jmeter测试结果保存在Jtl文件中;本发明实施例中执行测试用例时,可以用以下类似的命令执行,如:jmeter-JthreadCount=100-Jcycle=50-n-t*.jmx-l abc.jtl。1并发数为100个,每个并发循环数为50次,运行性能测试脚本*.jmx,结果保存在abc.jtl中。
S3:分析Jtl文件,编写统计结果代码,形成统计脚本,运行统计脚本,得到最终的统计结果,形成最终性能测试报告。
在本发明的一种基于Jmeter的自动化性能测试方法中,还包括编写Shell脚本来将步骤S1中的压测机服务器发送请求的并发数、代理服务器的IP地址及端口号、每个请求的发送循环数及Jmeter测试结果保存目录进行设置和参数化,将所述Shell脚本导入Jmeter并运行,以执行多个测试接口,多组压测机并发,多个不同IP地址或端口的测试。
在本发明的一种基于Jmeter的自动化性能测试方法中,所述Shell脚本通过C或Python编写。
在本发明的一种基于Jmeter的自动化性能测试方法中,根据步骤S3中所述Jmeter测试结果参考图2:第一列数据为时间戳,第二列代表响应时间,根据公式:每秒请求数=(总请求数/总运行时间)得到每秒请求数。
在本发明的一种基于Jmeter的自动化性能测试方法中,步骤S3中得到的最终性能测试结果参考图3,在不同的样本数和并发量下,分别进行测试,得到平均响应时间、响应时间中值、最小响应时间、最大响应时间、90%响应时间、95%响应时间、每秒查询速度、每秒从服务器接收的数据量、每秒从服务器发出的数据量、吞吐量及错误率。
优选的,本发明还提供了一种基于Jmeter的自动化性能测试系统,采用如上所述任意一项基于Jmeter的自动化性能测试方法来实现Jmeter的自动化性能测试。
本系统无需多次输入执行命令,无需多次重写脚本,无需将测试结果拷贝到安装了jmeter GUI的电脑中。可节约大量时间,提升工作效率,提升工作准确率。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (6)
1.一种基于Jmeter的自动化性能测试方法,其特征在于,压测机服务器、API服务器及数据库均在由代理服务器提供网络连接的同一个内网中,所述压测机服务器与API服务器通过API接口进行连接,所述数据库提供API接口所需要调用的数据,压测机服务器上加载Jmeter性能测试工具,所述方法包含以下步骤:
S1:启动Jmeter性能测试工具,设置压测机服务器发送请求的并发数、代理服务器的IP地址及端口号及每个请求的发送循环数;
S2:设置好步骤S1中的参数后运行Jmeter进行测试,将Jmeter测试结果保存在Jtl文件中;
S3:分析Jtl文件,编写统计结果代码,形成统计脚本,运行统计脚本,得到最终的统计结果,形成最终性能测试报告。
2.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,还包括编写Shell脚本来将步骤S1中的压测机服务器发送请求的并发数、代理服务器的IP地址及端口号、每个请求的发送循环数及Jmeter测试结果保存目录进行设置和参数化,将所述Shell脚本导入Jmeter并运行,以执行多个测试接口,多组压测机并发,多个不同IP地址或端口的测试。
3.根据权利要求2所述一种基于Jmeter的自动化性能测试方法,其特征在于,所述Shell脚本通过C或Python编写。
4.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,根据步骤S3中所述Jmeter测试结果:第一列数据为时间戳,第二列代表响应时间,根据公式:每秒请求数=(总请求数/总运行时间)得到每秒请求数。
5.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,步骤S3中得到的最终性能测试结果包含:平均响应时间、响应时间中值、最小响应时间、最大响应时间、90%响应时间、95%响应时间、每秒查询速度、每秒从服务器接收的数据量、每秒从服务器发出的数据量、吞吐量及错误率。
6.一种基于Jmeter的自动化性能测试系统,其特征在于,采用权利要求1-5所述任意一项基于Jmeter的自动化性能测试方法来实现Jmeter的自动化性能测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810350848.5A CN108540349B (zh) | 2018-04-18 | 2018-04-18 | 一种基于Jmeter的自动化性能测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810350848.5A CN108540349B (zh) | 2018-04-18 | 2018-04-18 | 一种基于Jmeter的自动化性能测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108540349A true CN108540349A (zh) | 2018-09-14 |
CN108540349B CN108540349B (zh) | 2021-04-23 |
Family
ID=63477638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810350848.5A Active CN108540349B (zh) | 2018-04-18 | 2018-04-18 | 一种基于Jmeter的自动化性能测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108540349B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753438A (zh) * | 2019-01-14 | 2019-05-14 | 上海挚极信息科技有限公司 | 基于jmeter的性能测试平台及方法 |
CN110597721A (zh) * | 2019-09-11 | 2019-12-20 | 四川长虹电器股份有限公司 | 一种基于压力测试脚本的自动化接口压力测试的方法 |
CN112559360A (zh) * | 2020-12-22 | 2021-03-26 | 盛银消费金融有限公司 | 一种基于代码方法级的压力测试方法 |
CN113704031A (zh) * | 2021-08-06 | 2021-11-26 | 北京罗克维尔斯科技有限公司 | 系统压力测试方法、装置、介质及设备 |
CN117194155A (zh) * | 2023-09-05 | 2023-12-08 | 北京安锐卓越信息技术股份有限公司 | 一种自动化性能压测方法、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9117028B2 (en) * | 2011-12-15 | 2015-08-25 | The Boeing Company | Automated framework for dynamically creating test scripts for software testing |
CN106201862A (zh) * | 2015-05-25 | 2016-12-07 | 阿里巴巴集团控股有限公司 | web服务压力测试方法及装置 |
CN106383786A (zh) * | 2016-09-27 | 2017-02-08 | 北京金山安全软件有限公司 | 一种接口压力性能测试方法、装置及电子设备 |
CN107704568A (zh) * | 2017-09-29 | 2018-02-16 | 马上消费金融股份有限公司 | 一种测试数据添加的方法及装置 |
CN107832207A (zh) * | 2017-10-16 | 2018-03-23 | 深圳市牛鼎丰科技有限公司 | 接口性能测试方法、装置、存储介质和计算机设备 |
-
2018
- 2018-04-18 CN CN201810350848.5A patent/CN108540349B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9117028B2 (en) * | 2011-12-15 | 2015-08-25 | The Boeing Company | Automated framework for dynamically creating test scripts for software testing |
CN106201862A (zh) * | 2015-05-25 | 2016-12-07 | 阿里巴巴集团控股有限公司 | web服务压力测试方法及装置 |
CN106383786A (zh) * | 2016-09-27 | 2017-02-08 | 北京金山安全软件有限公司 | 一种接口压力性能测试方法、装置及电子设备 |
CN107704568A (zh) * | 2017-09-29 | 2018-02-16 | 马上消费金融股份有限公司 | 一种测试数据添加的方法及装置 |
CN107832207A (zh) * | 2017-10-16 | 2018-03-23 | 深圳市牛鼎丰科技有限公司 | 接口性能测试方法、装置、存储介质和计算机设备 |
Non-Patent Citations (5)
Title |
---|
TESTERHOME: "基于 jmeter 和 shell 的接口性能自动化 · TesterHome", 《HTTPS://TESTERHOME.COM/TOPICS/4264》 * |
乔惜: "jmeter命令行参数 - 乔_惜 - 博客园", 《HTTPS://WWW.CNBLOGS.COM/JESSICAXU/P/7578213.HTML》 * |
佚名: "jmeter如何参数化?Jmeter参数化设置的5种方法", 《HTTPS://WWW.JB51.NET/SOFTJC/583347.HTML》 * |
异彩飞天: "Python调Jmeter执行参数化jmx脚本 - 异彩飞天 - 博客园", 《HTTPS://WWW.CNBLOGS.COM/YICAIFEITIAN/P/7159305.HTML》 * |
江新: "基于JMeter的MS_Web应用系统的性能测试研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753438A (zh) * | 2019-01-14 | 2019-05-14 | 上海挚极信息科技有限公司 | 基于jmeter的性能测试平台及方法 |
CN110597721A (zh) * | 2019-09-11 | 2019-12-20 | 四川长虹电器股份有限公司 | 一种基于压力测试脚本的自动化接口压力测试的方法 |
CN112559360A (zh) * | 2020-12-22 | 2021-03-26 | 盛银消费金融有限公司 | 一种基于代码方法级的压力测试方法 |
CN113704031A (zh) * | 2021-08-06 | 2021-11-26 | 北京罗克维尔斯科技有限公司 | 系统压力测试方法、装置、介质及设备 |
CN113704031B (zh) * | 2021-08-06 | 2023-10-10 | 北京罗克维尔斯科技有限公司 | 系统压力测试方法、装置、介质及设备 |
CN117194155A (zh) * | 2023-09-05 | 2023-12-08 | 北京安锐卓越信息技术股份有限公司 | 一种自动化性能压测方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108540349B (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108540349A (zh) | 一种基于Jmeter的自动化性能测试方法及系统 | |
US8037457B2 (en) | Method and system for generating and displaying function call tracker charts | |
US7734775B2 (en) | Method of semi-automatic data collection, data analysis, and model generation for the performance analysis of enterprise applications | |
US5701471A (en) | System and method for testing multiple database management systems | |
US6567767B1 (en) | Terminal server simulated client performance measurement tool | |
US9009680B2 (en) | Selecting instrumentation points for an application | |
WO2020151483A1 (zh) | 物联网平台压力测试系统、方法、装置及服务器 | |
US20080127108A1 (en) | Common performance trace mechanism | |
Röhl et al. | LIKWID Monitoring Stack: A flexible framework enabling job specific performance monitoring for the masses | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN106021079A (zh) | 一种基于用户频繁访问序列模型的Web应用性能测试方法 | |
CN101576846A (zh) | 软件的性能检测方法 | |
CN107133161B (zh) | 一种生成客户端性能测试脚本方法及装置 | |
CN112115058A (zh) | 测试方法及装置、测试用例生成方法及装置、测试系统 | |
Wu et al. | Modeling of distributed file systems for practical performance analysis | |
CN104572428A (zh) | 基于windows操作系统下的复杂控件测试方法 | |
CN113553267A (zh) | 应用性能测试方法、设备、介质及计算机程序产品 | |
Mi et al. | Analysis of application performance and its change via representative application signatures | |
JP3937341B2 (ja) | 計算機システム性能測定分析用のトランザクションプロファイルの生成システム、その生成方法及びプログラム | |
Dao et al. | Live debugging of distributed systems | |
KR101611433B1 (ko) | 성능 측정 방법, 이를 수행하는 성능 측정 장치 및 이를 저장하는 기록매체 | |
CN111290937A (zh) | 一种基于混合云的可扩展的移动应用自动化测试平台 | |
CN114297042A (zh) | 接口的压力性能测试方法、装置、设备及存储介质 | |
CN111949504A (zh) | 一种压力测试方法、装置及介质 | |
CN111813665A (zh) | 一种基于python的大数据平台接口数据测试方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |