CN111488264A - 一种针对接口性能测试集群的部署调度方法 - Google Patents

一种针对接口性能测试集群的部署调度方法 Download PDF

Info

Publication number
CN111488264A
CN111488264A CN202010296041.5A CN202010296041A CN111488264A CN 111488264 A CN111488264 A CN 111488264A CN 202010296041 A CN202010296041 A CN 202010296041A CN 111488264 A CN111488264 A CN 111488264A
Authority
CN
China
Prior art keywords
instance
pressure
pressure measurement
test
performance 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.)
Pending
Application number
CN202010296041.5A
Other languages
English (en)
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.)
Hangzhou Quwei Science & Technology Co ltd
Original Assignee
Hangzhou Quwei Science & 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 Hangzhou Quwei Science & Technology Co ltd filed Critical Hangzhou Quwei Science & Technology Co ltd
Priority to CN202010296041.5A priority Critical patent/CN111488264A/zh
Publication of CN111488264A publication Critical patent/CN111488264A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Investigating Strength Of Materials By Application Of Mechanical Stress (AREA)

Abstract

本发明公开了一种针对接口性能测试集群的部署调度方法,具体包括如下步骤:101)设置配置步骤、102)创建实例步骤、103)搭建压测集群环境步骤、104)测压结果显示步骤;本发明提供能自动化部署测试工具、上传资源文件,快速构建超大规模性能压测集群环境的一种针对接口性能测试集群的部署调度方法。

Description

一种针对接口性能测试集群的部署调度方法
技术领域
本发明涉及压测技术领域,更具体的说,它涉及一种针对接口性能测试集群的部署调度方法。
背景技术
目前,Apache JMeter作为主流的压力测试(即功能测试、性能测试)工具之一,它的优点本文不再赘述,但它也存在着一些问题,例如:压测后生成的jtl文件数据量过大会导致无法生成jmeter原生的html结果报告,所以当测试时间过长或者总线程过多时,往往没办法拿到关键性的结果报告。
而且为了满足各种各样压力测试需求,往往在使用jmeter的过程中会结合云平台提供的集群服务。但是选择手动创建云平台的实例时,如果固定时长租用实例用于性能测试,会大大升高单次性能测试成本;如果每次重新创建实例并使用后释放掉,会花费太多的时间用于压测集群环境的搭建。
发明内容
本发明克服了现有技术的不足,提供基于Apache pulsar的全球数据同步系统。
本发明的技术方案如下:
一种针对接口性能测试集群的部署调度方法,具体包括如下步骤:
101)设置配置步骤:设置业务性能测试的配置,启动测试工程;
102)创建实例步骤:根据步骤101)中的配置,调用云平台接口自动创建所需的实例,等待实例创建结束后,再通过实例的id进行实例信息查询,得到新创建实例的ip地址List;其中,如果复用以往实例,则直接配置ip地址List;
如果没有master的ip地址,则将得到的ip地址List的第一元素作为master压测机,其余作为slave压测机来批量发起接口请求;
103)搭建压测集群环境步骤:通过文件加密传输协议sftp,向所有slave实例上传性能测试的资源文件;再通过安全外壳协议ssh,连接slave实例远程执行已设置好的命令,搭建压测集群环境;
104)测压结果显示步骤:在master上搭建压测环境,并调度slaver执行分布式压测,获取测压结果;测压结果通过时序数据库influxDB和数据可视化工具Grafana进行实时报告展示,替代原生报告,只回收日志文件。
进一步的,步骤101)的配置是测试工程里指定的配置参数,其包括压测脚本文件路径、压测机数量、压测机自动释放时间和其它需要设置的压测场景的参数。
进一步的,步骤102)中的master指接收和传输命令的主对象,slave指接收和传输命令的辅助从对象;
第一元素指的是ip地址组成的列表的第一个ip地址;压测机指的是在性能测试中,反复执行调用请求,给被测服务器创造负载条件的机器。
本发明相比现有技术优点在于:
本发明通过调用云平台接口,自动创建所需的性能测试集群;并与相应实例的回收和创建。可灵活配置创建集群的实例数量,或者复用之前集群再次压测,以大大节约相应资源。本发明能自动化部署测试工具、上传资源文件,快速构建超大规模性能压测集群环境;其中通过在压测机上的控制台里执行本工程预设好的命令,来快速构建压测环境,如果有其他的压测环境配置需求,也可以将命令预设在工程中。本方案统一调度实例进行压测,自动化回收日志;同时具备实时显示性能压测指标的能力。
附图说明
图1为本发明的结构框架图;
图2为本发明的流程图;
图3为本发明的实施例中用于性能测试的文件界面;
图4为本发明的实施例中可执行的测试例子代码;
图5为本发明的实施例中结果展示图。
具体实施方式
下面结合附图和具体实施方式对本发明进一步说明。
如图1至图5所示,101)设置配置步骤:设置业务性能测试的配置,启动测试工程;配置是测试工程里指定的配置参数,其包括压测脚本文件路径、压测机数量、压测机自动释放时间和其它需要设置的压测场景的参数。具体而言,需要设置的参数取决于具体的压测场景,一般来说,简单的压测只需设置压测脚本文件路径、压测机数量、压测机自动释放时间等参数即可。
102)创建实例步骤:根据步骤101)中的配置,调用云平台接口自动创建所需的实例,等待实例创建结束后,再通过实例的id进行实例信息查询,得到新创建实例的ip地址List;其中,如果复用以往实例,则直接配置ip地址List。如果没有master的ip地址,则将得到的ip地址List的第一元素作为master压测机,其余作为slave压测机来批量发起接口请求。
其中的master指接收和传输命令的主对象,slave指接收和传输命令的辅助从对象;第一元素指的是ip地址组成的列表的第一个ip地址;压测机指的是在性能测试中,反复执行调用请求,给被测服务器创造负载条件的机器。
具体的,可以使用云平台提供的开发接口查询实例信息,比如阿里云提供DescribeInstances方法来查询一台或多台ECS实例的详细信息,具体可参考阿里云文档。判断是否需要新创建IP,需要考虑原先的机器数量和测试环境是否符合新的性能测试需求,如果能够满足,可以复用原先的机器来节省成本。
103)搭建压测集群环境步骤:通过文件加密传输协议sftp,向所有slave实例上传性能测试的资源文件;再通过安全外壳协议ssh,连接slave实例远程执行已设置好的命令,搭建压测集群环境。
104)测压结果显示步骤:在master上搭建压测环境,并调度slaver执行分布式压测,获取测压结果;测压结果通过时序数据库influxDB和数据可视化工具Grafana进行实时报告展示,替代原生报告,只回收日志文件。
具体可采用两种方式,一种是回收原生报告以及日志文件,但是如果数据量太大,就不推荐使用这种方式。其中,数据量大小需要工程的执行者自行判断,没有做自动辨识的功能,所以推荐还是使用第二种方式来获性能测试报告。数据量的大小取决于接口调用所产生的数据量,性能测试的持续时间和线程数的多少都会直接影响数据量的大小;第二种就是influxDB+Grafana进行实时报告展示,替代原生报告,只回收日志文件。
综上具体部署实施方式如下,性能测试人员编写好用于性能测试的jmx文件,这一步和直接用压力测试工具jmeter压测无异。如图3所示,就是是一个jmx文件demo展示。
打开集成开发环境IDE,在项目里编写好可执行的测试案例case。如图4所示是一个简单的测试case,具体含义是:实例化了一个执行压测的对象,指定了jmx文件路径,设置压测集群大小,指定jmeter命令行-J参数进行传参,执行压测。这里使用的传参方法runSetJ(这里是封装了jmeter命令行的-J参数的传参方式,确实是jmeter现有的传参方法,封装后只是为了能在多次执行性能测试时,减少对相关参数(如:线程数)的修改),会将参数通过jmeter的-J参数传入jmeter的local环境,但是需要在使用的地方用-P参数接受,例如图中的threads变量就可以用${__P(threads,10)}接收,其中10为默认值。
启动用例执行,通过调用阿里云的开放接口,根据配置创建所需的实例集群,取出接口返回的所有实例id组成的JSONArray。在这一步可以使用不同的云平台进行集群创建,只需在如下代码中更改云平台名称,并集成云平台开放接口:
cloudPlatformFactory.initCloudPlatformClient("aliyun");
强制等待60s(阿里云创建实例最长时间,为了等待实例创建完成,该部分其实可以通过不断查询实例状态来确定实例是否就绪。(tips:当时阿里云机器的running状态并不代表已经就绪,所以还是选择强制等待60s)),通过所有实例id的JSONArray调用阿里云开放接口查询实例启动状态,若未处于running状态,等待10s后重试;若处于running状态,则获取返回结果中实例的ip地址信息。
将ip地址组成List,并将第一个ip对应的实例作为master压测机,其余为slave压测机。通过JSch连接到所有实例,开始通过JschSftpUtil上传测试资源文件和jmx文件,通过JSch框架的sftp方式来实现上传。
通过JschExecUtil在(实例上执行预设的命令),包括下载安装jmeter、移动资源文件、修改jmeter.properties等,进行slave压测机的环境搭建,搭建完成后则启动jmeter-server开始监控master压测机的调度信息。
同样通过执行预设的命令,配置好master的压测环境与调度信息,然后在master上用命令行启动jmeter进行接口压测,并返回Grafana实时报告查看地址,可查看到如图5所示的直接测压信息,直到jmeter测试结束,回收jmeter报告以及日志文件,压测结束。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

Claims (3)

1.一种针对接口性能测试集群的部署调度方法,其特征在于,具体包括如下步骤:
101)设置配置步骤:设置业务性能测试的配置,启动测试工程;
102)创建实例步骤:根据步骤101)中的配置,调用云平台接口自动创建所需的实例,等待实例创建结束后,再通过实例的id进行实例信息查询,得到新创建实例的ip地址List;其中,如果复用以往实例,则直接配置ip地址List;
如果没有master的ip地址,则将得到的ip地址List的第一元素作为master压测机,其余作为slave压测机来批量发起接口请求;
103)搭建压测集群环境步骤:通过文件加密传输协议sftp,向所有slave实例上传性能测试的资源文件;再通过安全外壳协议ssh,连接slave实例远程执行已设置好的命令,搭建压测集群环境;
104)测压结果显示步骤:在master上搭建压测环境,并调度slaver执行分布式压测,获取测压结果;测压结果通过时序数据库influxDB和数据可视化工具Grafana进行实时报告展示,替代原生报告,只回收日志文件。
2.根据权利要求1所述的一种针对接口性能测试集群的部署调度方法,其特征在于,步骤101)的配置是测试工程里指定的配置参数,其包括压测脚本文件路径、压测机数量、压测机自动释放时间和其它需要设置的压测场景的参数。
3.根据权利要求1所述的一种针对接口性能测试集群的部署调度方法,其特征在于,步骤102)中的master指接收和传输命令的主对象,slave指接收和传输命令的辅助从对象;
第一元素指的是ip地址组成的列表的第一个ip地址;压测机指的是在性能测试中,反复执行调用请求,给被测服务器创造负载条件的机器。
CN202010296041.5A 2020-04-15 2020-04-15 一种针对接口性能测试集群的部署调度方法 Pending CN111488264A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010296041.5A CN111488264A (zh) 2020-04-15 2020-04-15 一种针对接口性能测试集群的部署调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010296041.5A CN111488264A (zh) 2020-04-15 2020-04-15 一种针对接口性能测试集群的部署调度方法

Publications (1)

Publication Number Publication Date
CN111488264A true CN111488264A (zh) 2020-08-04

Family

ID=71797634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010296041.5A Pending CN111488264A (zh) 2020-04-15 2020-04-15 一种针对接口性能测试集群的部署调度方法

Country Status (1)

Country Link
CN (1) CN111488264A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799930A (zh) * 2021-01-29 2021-05-14 华夏城视网络电视股份有限公司 一种分布式压力测试方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502435A (zh) * 2019-07-26 2019-11-26 广东睿江云计算股份有限公司 基于Jmeter的自动化性能测试方法及其系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502435A (zh) * 2019-07-26 2019-11-26 广东睿江云计算股份有限公司 基于Jmeter的自动化性能测试方法及其系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
网友: ""jmeter - 使用master-slave模式进行压测"", 《HTTPS://BLOG.CSDN.NET/KING4BUPT/ARTICLE/DETAILS/105387531》 *
网友: ""JMeter 实时监控仪表板配置 (Grafana + InfluxDB)"", 《HTTPS://BLOG.CSDN.NET/OQQJOHN1234567890/ARTICLE/DETAILS/86716853》 *
网友: ""SSH与SSL"", 《HTTPS://WWW.CNBLOGS.COM/AJIANBEYOURSELF/P/4220244.HTML#_LABEL2》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799930A (zh) * 2021-01-29 2021-05-14 华夏城视网络电视股份有限公司 一种分布式压力测试方法及系统

Similar Documents

Publication Publication Date Title
CN108038013B (zh) 分布式性能测试方法及装置与计算机可读存储介质
CN107463362B (zh) 基于多个Jenkins的持续部署的方法和系统
CN106970880B (zh) 一种分布式自动化软件测试方法及系统
CN106708740B (zh) 脚本测试方法及装置
CN107302476B (zh) 一种测试异步交互系统的自动化测试方法与系统
CN109324975B (zh) 一种基于移动云测平台的持续集成方法
CN110659198A (zh) 应用程序的测试用例执行方法、装置和软件测试系统
CN109977012B (zh) 系统的联调测试方法、装置、设备及计算机可读存储介质
CN110865840B (zh) 一种应用管理方法、装置、服务器及存储介质
CN111459740A (zh) 对固态硬盘进行主从盘串行测试方法、装置和计算机设备
CN111813420B (zh) 一种对OpenStack集群进行自动化性能测试的方法
CN111651365B (zh) 接口自动化测试方法及装置
CN113778486A (zh) 一种代码流水线的容器化处理方法、装置、介质及设备
CN111488264A (zh) 一种针对接口性能测试集群的部署调度方法
CN113760774A (zh) 一种ota仿真测试方法、平台及系统
CN113672502A (zh) 程序多系统测试方法及其相应的装置、设备、介质
CN111767218B (zh) 一种用于持续集成的自动化测试方法、设备及存储介质
CN112148616A (zh) 一种性能测试管理平台
CN115993977A (zh) 一种应用部署的方法及装置
CN115587028A (zh) 接口自动化测试方法、系统、介质及终端
CN111581042B (zh) 一种集群部署方法、部署平台及待部署服务器
CN111858315B (zh) 一种基于版本管理的软件调试方法、装置、设备和介质
CN112765007B (zh) 一种集成测试方法、装置及存储介质
CN111506490A (zh) 应用服务接口自动测试方法、装置及存储介质
CN113076243B (zh) 一种优化图像识别自动化测试成本的方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200804

RJ01 Rejection of invention patent application after publication