一种基于Jmeter的自动化性能测试方法及系统技术方案

技术编号:18950805 阅读:17 留言:0更新日期:2018-09-15 13:20
本发明专利技术提供了一种基于Jmeter的自动化性能测试方法及系统,所述方法采用在Jmeter测试工具中设置并发量、端口号、IP地址及循环数,运行Jmeter得到测试结果,同时编写统计结果脚本,分析Jmeter测试结果,获得最终的性能测试结果;同时本发明专利技术还通过编写Shell脚本将并发量、端口号、IP地址、循环数及Jmeter测试结果和保存目录进行参数化,来实现多个接口,多组并发,多个不同IP地址或端口的测试;本发明专利技术无需多次输入执行命令,无需多次重写脚本,无需将测试结果拷贝到安装了jmeter GUI的电脑中,可节约大量时间,提升工作效率,提升工作准确率。

An automatic performance testing method and system based on Jmeter

The invention provides an automatic performance testing method and system based on Jmeter. The method adopts setting concurrent quantity, port number, IP address and loop number in Jmeter testing tool, running Jmeter to get test results, writing statistical result script, analyzing Jmeter test results, and obtaining final performance testing results. At the same time, the invention also parameterizes the concurrent quantity, port number, IP address, loop number, Jmeter test result and save directory by writing shell script, realizes the test of multiple interfaces, multiple groups of concurrent, multiple different IP addresses or ports; the invention does not need to input execution commands many times, does not need to rewrite scripts many times, and does not have Copying the test results to a computer with a JMeter GUI saves a lot of time, improves efficiency and accuracy.

【技术实现步骤摘要】
一种基于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的自动化性能测试。本专利技术无需多次输入执行命令,无需多次重写脚本,无需将测试结果拷贝到安装了jmeterGUI的电脑中。可节约大量时间,提升工作效率,提升工作准确率。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图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-labc.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的自动化性能测试。本系统无需多次输入执行命令,无需多次重写脚本,无需将测试结果拷贝到安装了jmeterGUI的电脑中。可节约大量时间,提升工作效率,提升工作准确率。上面结合附图对本专利技术的实施例进行了描述,但是本专利技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本专利技术的启示下,在不脱离本专利技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本本文档来自技高网...

【技术保护点】
1.一种基于Jmeter的自动化性能测试方法,其特征在于,压测机服务器、API服务器及数据库均在由代理服务器提供网络连接的同一个内网中,所述压测机服务器与API服务器通过API接口进行连接,所述数据库提供API接口所需要调用的数据,压测机服务器上加载Jmeter性能测试工具,所述方法包含以下步骤:S1:启动Jmeter性能测试工具,设置压测机服务器发送请求的并发数、代理服务器的IP地址及端口号及每个请求的发送循环数;S2:设置好步骤S1中的参数后运行Jmeter进行测试,将Jmeter测试结果保存在Jtl文件中;S3:分析Jtl文件,编写统计结果代码,形成统计脚本,运行统计脚本,得到最终的统计结果,形成最终性能测试报告。

【技术特征摘要】
1.一种基于Jmeter的自动化性能测试方法,其特征在于,压测机服务器、API服务器及数据库均在由代理服务器提供网络连接的同一个内网中,所述压测机服务器与API服务器通过API接口进行连接,所述数据库提供API接口所需要调用的数据,压测机服务器上加载Jmeter性能测试工具,所述方法包含以下步骤:S1:启动Jmeter性能测试工具,设置压测机服务器发送请求的并发数、代理服务器的IP地址及端口号及每个请求的发送循环数;S2:设置好步骤S1中的参数后运行Jmeter进行测试,将Jmeter测试结果保存在Jtl文件中;S3:分析Jtl文件,编写统计结果代码,形成统计脚本,运行统计脚本,得到最终的统计结果,形成最终性能测试报告。2.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,还包括编写Shell脚本来将步骤S1中的压测机服务器发送请求的并发数、代理服务器的IP地址及端口号、每个请求的发送循环数及Jmeter测试结果保存目录进行设置和参数化,将所述Sh...

【专利技术属性】
技术研发人员:张园
申请(专利权)人:武汉极意网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1