1.本发明涉及软件系统测试技术领域,具体涉及一种应用于压测的前后置任务处理方法。
背景技术:
2.在软件测试中:压力测试(stresstest),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。链路压力测试是基于实际生产业务场景和系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,并持续调优的过程。目前,业务场景越发复杂化,在整个业务链中,不同应用服务之间关联性越来越密切,可谓是牵一发而动全身。但是在压力测试之前,如果cpu的使用率超过5%、内存使用率超过70%就不具备压测的条件,但一般的压力测试时是无法分辨的是否具备压力测试条件,此时如果执行压力测试就会造成测试结果不准的问题,同时如果压力测试结束后如果残留过多的日志数据,会对下一次压测造成影响;对复杂的业务系统进行全链路压测时会涉及多个部门之间的协作,如果靠人为判断或者执行数据清理,则会有高昂的协作成本,进而降低压测效率。
技术实现要素:
3.本发明的目的在于,提供一种应用于压测的前后置任务处理方法。本发明可以在压力测试之前自动判断压测环境是否满足预期或者在压测前对业务进行配置,在压测结束后自动清理压测过程中产生的垃圾文件和数据,保证不因环境问题影响压测数据的准确性,在提升效率的同时又可以提高压测质量。
4.为解决上述技术问题,本发明提供的技术方案如下:应用于压测的前后置任务处理方法,具体包括以下步骤:
5.s1、在被测服务端或者压力机进程挂载agent程序,agent程序用于执行压测平台下发的脚本;
6.s2、在执行压测任务之前,压测平台通过网关服务向被测服务端或者压力机下发前置任务脚本至agent程序,agent程序执行前置任务脚本;
7.s3、将agent程序的执行前置任务脚本的结果返回至压测平台,压测平台根据预先配置判断被测服务端或者压力机的执行结果是否通过;
8.s4、若判断执行结果不通过,立刻停止压测任务;若判断执行结果通过,则进行下一步压测程序;
9.s5、压测程序完成后,压测平台通过网关服务向被测服务端或者压力机下发后置任务脚本至agent程序,agent程序执行后置任务,后置任务结束完成压测任务。
10.上述的应用于压测的前后置任务处理方法,所述的前置任务脚本用于判断服务器状态、硬件配置、应用配置、中间件配置和数据状态是否满足压测要求,不满足压测要求则
终止压测人、
11.前述的应用于压测的前后置任务处理方法,所述的前置任务脚本还包括用于减少日志输出的执行业务配置和用于减少系统的连接关闭等待时间以及最大连接数的执行服务器配置。
12.前述的应用于压测的前后置任务处理方法,所述前置任务的脚本下发流程是由压测平台通过网关服务异步调用压力机或者被测服务的agent程序下发脚本,压测平台和网关服务之间的调用方式为rpc,网关服务和agent程序之间的调用方式为http,具体包括如下步骤:
13.脚本执行:脚本内容为shell脚本,执行程序通过新建子进程直接同步执行shell脚本,在60秒内必须完成执行否则强制中断执行;
14.执行结果上报流程:agent程序先把执行结果传到网关服务,再由网关服务通过消息中间件传给压测平台;
15.执行结果判定:执行结果包含预期字符串则判定通过、对执行结果执行正则表达式结果非空则判定通过、压测平台在60秒内未收到结果自动判定调用超时。
16.前述的应用于压测的前后置任务处理方法,所述后置任务脚本是为下一次压测把压测环境恢复到初始状态,包括如下进程:
17.过程数据清理:删除压测过程中产生的日志文件、数据库数据和缓存数据;
18.业务配置恢复:通过接口调用被测服务把业务配置重置到初始状态;
19.数据收集:在压测过程中通过文件不断记录收集服务端返回的数据,作为下一次压测的输入数据,在压测结束时需要把数据文件传输到文件服务器。
20.与现有技术相比,本发明通过在被测服务端和压力机程序上挂载agent程序,在压测平台向被测服务端或压力机发送压测请求前下发前置脚本和压测结束后下发后置脚本到agent程序,采用上述步骤可以在压测前统一收集可能会影响压测数据准确性的因素,通过前置任务自动排除掉,在压测流程中加入该环节有利于标准化压测流程,提高压测质量;以及由于大型复杂且经过微服务化改造后的系统,组织一次压测的协作成本非常高昂,压测过程中需要不断协调相关人员清理数据或者恢复配置,会更进一步推高沟通协作成本降低效率而且还容易出现遗漏或者执行错误,但是本发明采用后置任务脚本可以自动化且低成本地解决上述问题。由此本发明在进行压测时可以自动判断压测环境是否具备执行压测条件以及压测执行完毕自动执行配置,用于进行压测完毕后的数据清理,在提高压测效率降低成本的同时,又可以保证数据的准确性。
附图说明
21.图1是本发明的流程示意图。
具体实施方式
22.下面结合实施例和附图对本发明作进一步的说明,但并不作为对本发明限制的依据。
23.实施例:应用于压测的前后置任务处理方法,如图1所示,并按下述步骤进行:
24.s1、在被测服务端或者压力机进程挂载agent程序(agent是一种在分布式系统或
者协作系统中,能够持续自主地发挥作用的计算实体,简称为“智能体”。),agent程序用于执行压测平台下发的脚本;
25.s2、在执行压测任务之前,压测平台通过网关服务向被测服务端或者压力机下发前置任务脚本至agent程序,agent程序执行前置任务脚本;所述的前置任务脚本用于判断服务器状态(例如:cpu使用率、可用内存、磁盘剩余空间等)、硬件配置(例如:cpu核数、总内存大小、硬盘规格、网卡规格等)、应用配置(例如:应用内存配置、线程池大小配置等)、中间件配置(例如:缓存大小、缓存是否采用持久化等)和数据状态(例如:数据库数据量、索引配置和数据分布情况等)是否满足条件,不满足条件会导致测试结果失真;执行业务配置(例如:为了降低大流量压测对真实业务的影响需要减少某些业务的日志输出)、执行服务器配置(例如:减少系统的连接关闭等待时间、最大连接数等)。
26.所述前置任务的脚本下发流程是由压测平台通过网关服务异步调用压力机或者被测服务的agent程序下发脚本,压测平台和网关服务之间的调用方式为rpc,网关服务和agent程序之间的调用方式为http,具体包括如下步骤:
27.脚本执行:脚本内容为shell脚本,执行程序通过新建子进程直接同步执行shell脚本,在60秒内必须完成执行否则强制中断执行;
28.执行结果上报流程:agent程序先把执行结果传到网关服务,再由网关服务通过消息中间件传给压测平台;
29.执行结果判定:执行结果包含预期字符串则判定通过、对执行结果执行正则表达式结果非空则判定通过、压测平台在60秒内未收到结果自动判定调用超时。
30.s3、将agent程序的执行前置任务脚本的结果返回至压测平台,压测平台根据预先配置判断被测服务端或者压力机的执行结果是否通过;
31.s4、若判断执行结果不通过,立刻停止压测任务;若判断执行结果通过,则进行下一步压测程序;
32.s5、压测程序完成后,压测平台通过网关服务向被测服务端或者压力机下发后置任务脚本至agent程序,agent程序执行后置任务,后置任务结束完成压测任务。
33.所述后置任务脚本是为下一次压测把压测环境恢复到初始状态,包括如下进程:
34.过程数据清理:删除压测过程中产生的日志文件、数据库数据和缓存数据;
35.业务配置恢复:通过接口调用被测服务把业务配置重置到初始状态;
36.数据收集:在压测过程中通过文件不断记录收集服务端返回的数据,作为下一次压测的输入数据,在压测结束时需要把数据文件传输到文件服务器。
37.本实施例中,压测平台在收到结果后自动对结果进行判定,对单个结果的判断方式为是否包含预期字符串和对执行结果执行正则表达式结果是否非空;多个agent程序同时执行同一个任务程序时,只有每个agent程序返回的结果判定都是成功才能判定本次执行结果为成功。
38.综上,本发明可以在压力测试之前自动判断压测环境是否满足预期或者在压测前对业务进行配置,在压测结束后自动清理压测过程中产生的垃圾文件和数据,保证不因环境问题影响压测数据的准确性,在提升效率的同时又可以提高压测质量。
技术特征:
1.应用于压测的前后置任务处理方法,其特征在于:具体包括以下步骤:s1、在被测服务端或者压力机进程挂载agent程序,agent程序用于执行压测平台下发的脚本;s2、在执行压测任务之前,压测平台通过网关服务向被测服务端或者压力机下发前置任务脚本至agent程序,agent程序执行前置任务脚本;s3、将agent程序的执行前置任务脚本的结果返回至压测平台,压测平台根据预先配置判断被测服务端或者压力机的执行结果是否通过;s4、若判断执行结果不通过,立刻停止压测任务;若判断执行结果通过,则进行下一步压测程序;s5、压测程序完成后,压测平台通过网关服务向被测服务端或者压力机下发后置任务脚本至agent程序,agent程序执行后置任务,后置任务结束完成压测任务。2.根据权利要求1所述的应用于压测的前后置任务处理方法,其特征在于:所述的前置任务脚本用于判断服务器状态、硬件配置、应用配置、中间件配置和数据状态是否满足压测要求,不满足压测要求则终止压测任务。3.根据权利要求2所述的应用于压测的前后置任务处理方法,其特征在于:所述的前置任务脚本还包括用于减少日志输出的执行业务配置和用于减少系统的连接关闭等待时间以及最大连接数的执行服务器配置。4.根据权利要求1所述的应用于压测的前后置任务处理方法,其特征在于:所述前置任务的脚本下发流程是由压测平台通过网关服务异步调用压力机或者被测服务的agent程序下发脚本,压测平台和网关服务之间的调用方式为rpc,网关服务和agent程序之间的调用方式为http,具体包括如下步骤:脚本执行:脚本内容为shell脚本,执行程序通过新建子进程直接同步执行shell脚本,在60秒内必须完成执行否则强制中断执行;执行结果上报流程:agent程序先把执行结果传到网关服务,再由网关服务通过消息中间件传给压测平台;执行结果判定:执行结果包含预期字符串则判定通过、对执行结果执行正则表达式结果非空则判定通过、压测平台在60秒内未收到结果自动判定调用超时。5.根据权利要求1所述的应用于压测的前后置任务处理方法,其特征在于:所述后置任务脚本是为下一次压测把压测环境恢复到初始状态,包括如下进程:过程数据清理:删除压测过程中产生的日志文件、数据库数据和缓存数据;业务配置恢复:通过接口调用被测服务把业务配置重置到初始状态;数据收集:在压测过程中通过文件不断记录收集服务端返回的数据,作为下一次压测的输入数据,在压测结束时需要把数据文件传输到文件服务器。
技术总结
本发明公开了一种应用于压测的前后置任务处理方法,包括在被测服务端或者压力机进程挂载agent程序;压测平台通过网关服务向被测服务端或者压力机下发前置任务脚本至agent程序,agent程序执行前置任务脚本;将agent程序的执行前置任务脚本的结果返回至压测平台,压测平台根据预先配置判断被测服务端或者压力机的执行结果是否通过;压测程序完成后,压测平台通过网关服务向被测服务端或者压力机下发后置任务脚本至agent程序,agent程序执行后置任务。本发明可以在压力测试之前判断压测环境是否满足预期或者在压测前对业务进行配置,在压测结束后自动清理压测过程中产生的垃圾文件和数据,保证不因环境问题影响压测数据的准确性,在提升效率的同时又可以提高压测质量。量。量。
技术研发人员:余尔波
受保护的技术使用者:杭州笨马网络技术有限公司
技术研发日:2021.12.08
技术公布日:2022/3/8