CN108540349B - 一种基于Jmeter的自动化性能测试方法及系统 - Google Patents

一种基于Jmeter的自动化性能测试方法及系统 Download PDF

Info

Publication number
CN108540349B
CN108540349B CN201810350848.5A CN201810350848A CN108540349B CN 108540349 B CN108540349 B CN 108540349B CN 201810350848 A CN201810350848 A CN 201810350848A CN 108540349 B CN108540349 B CN 108540349B
Authority
CN
China
Prior art keywords
jmeter
server
performance testing
response time
test
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.)
Active
Application number
CN201810350848.5A
Other languages
English (en)
Other versions
CN108540349A (zh
Inventor
张园
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Jiyi Network Technology Co ltd
Original Assignee
Wuhan Jiyi Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Jiyi Network Technology Co ltd filed Critical Wuhan Jiyi Network Technology Co ltd
Priority to CN201810350848.5A priority Critical patent/CN108540349B/zh
Publication of CN108540349A publication Critical patent/CN108540349A/zh
Application granted granted Critical
Publication of CN108540349B publication Critical patent/CN108540349B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring 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的自动化性能测试方法及系统
技术领域
本发明涉及自动化测试领域,尤其涉及一种基于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 (2)

1.一种基于Jmeter的自动化性能测试方法,其特征在于,压测机服务器、API服务器及数据库均在由代理服务器提供网络连接的同一个内网中,所述压测机服务器与API服务器通过API接口进行连接,所述数据库提供API接口所需要调用的数据,压测机服务器上加载Jmeter性能测试工具,所述方法包含以下步骤:
S1:启动Jmeter性能测试工具,设置压测机服务器发送请求的并发数、代理服务器的IP地址及端口号及每个请求的发送循环数;
S2:设置好步骤S1中的参数后运行Jmeter进行测试,将Jmeter测试结果保存在Jtl文件中;
S3:分析Jtl文件,编写统计结果代码,形成统计脚本,运行统计脚本,得到最终的统计结果,形成最终性能测试报告;还包括编写Shell脚本来将步骤S1中的压测机服务器发送请求的并发数、代理服务器的IP地址及端口号、每个请求的发送循环数及Jmeter测试结果保存目录进行设置和参数化,将所述Shell脚本导入Jmeter并运行,以执行多个测试接口,多组压测机并发,多个不同IP地址或端口的测试;
所述Shell脚本通过C或Python编写;
根据步骤S3中所述Jmeter测试结果:第一列数据为时间戳,第二列代表响应时间,根据公式:每秒请求数=(总请求数/总运行时间)得到每秒请求数;
步骤S3中得到的最终性能测试结果包含:平均响应时间、响应时间中值、最小响应时间、最大响应时间、90%响应时间、95%响应时间、每秒查询速度、每秒从服务器接收的数据量、每秒从服务器发出的数据量、吞吐量及错误率。
2.一种基于Jmeter的自动化性能测试系统,其特征在于,采用权利要求1所述任意一项基于Jmeter的自动化性能测试方法来实现Jmeter的自动化性能测试。
CN201810350848.5A 2018-04-18 2018-04-18 一种基于Jmeter的自动化性能测试方法及系统 Active CN108540349B (zh)

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 CN108540349A (zh) 2018-09-14
CN108540349B true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
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 盛银消费金融有限公司 一种基于代码方法级的压力测试方法
CN113704031B (zh) * 2021-08-06 2023-10-10 北京罗克维尔斯科技有限公司 系统压力测试方法、装置、介质及设备
CN117194155A (zh) * 2023-09-05 2023-12-08 北京安锐卓越信息技术股份有限公司 一种自动化性能压测方法、装置及介质

Citations (5)

* Cited by examiner, † Cited by third party
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 深圳市牛鼎丰科技有限公司 接口性能测试方法、装置、存储介质和计算机设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
jmeter命令行参数 - 乔_惜 - 博客园;乔惜;《https://www.cnblogs.com/jessicaxu/p/7578213.html》;20170923;正文第1-2页 *
jmeter如何参数化?Jmeter参数化设置的5种方法;佚名;《https://www.jb51.net/softjc/583347.html》;20171024;全文 *
Python调Jmeter执行参数化jmx脚本 - 异彩飞天 - 博客园;异彩飞天;《https://www.cnblogs.com/yicaifeitian/p/7159305.html》;20170713;全文 *
基于 jmeter 和 shell 的接口性能自动化 · TesterHome;TesterHome;《https://testerhome.com/topics/4264》;20160301;正文3-6页 *
基于JMeter的MS_Web应用系统的性能测试研究;江新;《中国优秀硕士学位论文全文数据库》;20111215;正文第四、五章 *

Also Published As

Publication number Publication date
CN108540349A (zh) 2018-09-14

Similar Documents

Publication Publication Date Title
CN108540349B (zh) 一种基于Jmeter的自动化性能测试方法及系统
US10552301B2 (en) Completing functional testing
US20200293436A1 (en) Validation of mobile device workflows
US8037457B2 (en) Method and system for generating and displaying function call tracker charts
CN106294094B (zh) 游戏服务器的测试方法、客户端、服务器及系统
US20070083630A1 (en) System and method for performance testing framework
US20070079291A1 (en) System and method for dynamic analysis window for accurate result analysis for performance test
US20070079289A1 (en) System and method for quick range finder for performance test
US20070079290A1 (en) System and method for dimensional explorer for performance test
CN111427765B (zh) 自动开启基于jmeter实现的接口性能测试方法和系统
US20070083793A1 (en) System and method for optimizing explorer for performance test
CN110750458A (zh) 大数据平台测试方法、装置、可读存储介质及电子设备
CN109542712A (zh) 服务器压力测试方法、装置、计算机设备和存储介质
US20200310952A1 (en) Comparable user interface object identifications
Panigrahi et al. An approach to prioritize the regression test cases of object-oriented programs
CN114138670A (zh) 基于接口自动化测试与功能、性能、安全测试融合的方法
US20070083634A1 (en) System and method for goal-based dispatcher for performance test
CN111176981B (zh) Android应用网络相关行为测试方法
CN113126993A (zh) 应用于车辆检测软件的自动化测试方法及其系统
CN111666200A (zh) 一种pc软件冷启动耗时的测试方法及终端
CN111813665A (zh) 一种基于python的大数据平台接口数据测试方法和系统
US20070083633A1 (en) System and method for high-level run summarization for performance test
US8898636B1 (en) Method and apparatus for testing an application running in a virtual machine
CN117992359B (zh) 服务化软件的观测方法、装置和电子设备
US20070083632A1 (en) System and method for pluggable goal navigator for performance test

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