本申请涉及精准隔离压测日志,尤其是涉及基于自动化测试虚拟机技术精准隔离压测日志的方法。
背景技术:
1、现有的web压力测试方案中,通常需要同时使用多台测试机器模拟多用户操作,测试完成后再收集数据和分析日志,传统的方式是人工测试环境和压测环境分离的,压测时不能有干扰,一旦受到干扰,没有准确的数据说明干扰的量级;当用户在生产环境做小规模压测时,由于压测时产生的日志文件没有明显的标识,导致压测完后的日志不能方便地清理。
技术实现思路
1、为了解决上述提出的问题,本申请提供基于自动化测试虚拟机技术精准隔离压测日志的方法。
2、本申请提供的基于自动化测试虚拟机技术精准隔离压测日志的方法采用如下的技术方案:
3、基于自动化测试虚拟机技术精准隔离压测日志的方法,包括以下步骤:
4、步骤1:准备测试脚本;
5、步骤2:主自动化测试虚拟机开始执行压力测试工作;
6、步骤3:从自动化测试虚拟机将工作唯一标识符初始化到其内部的执行器中;
7、步骤4:从自动化测试虚拟机开始运行压力测试任务。
8、优选的,所述测试脚本中:
9、s1:在jmeter脚本中为http协议中的user-agent定义一个特殊的标识用来接收工作唯一标识符;
10、s2:jmeter脚本书写方法:在httpheadermanager中定义user-agent为${__p(atvm.jobid,default-jobid)};
11、压力测试工作:压力测试工作由压力测试任务,压力测试执行单元,被测服务器构成。压力测试工作中定义了工作唯一标识符,例子如下:
12、jobid="24bd698fcc354b6e9045c9bb099c25a5"。
13、优选的,所述主自动化测试虚拟机负责压力测试工作的调度,当其开始执行压力测试工作后,从压力测试工作的定义中解析出工作唯一标识符并传递给从自动化测试虚拟机。
14、优选的,所述从自动化测试虚拟机开始运行压力测试任务,其执行器将工作唯一标识符通过命令行参数传入到作为测试驱动的jmeter中。jmeter执行该测试脚本时,将${__p(atvm.jobid,default-jobid)}替换为传入的工作唯一标识符。如此一来,从自动化测试虚拟机发出的http请求将工作唯一标识符作为useragent;
15、s1:从自动化测试虚拟机通过命令行调用脚本:
16、jmeter-ntdemo-local.jmx
17、-datvm.jobid=24bd698fcc354b6e9045c9bb099c25a5;
18、s2:日志示例:172.168.10.65--[20/jan/2023:07:46:04+0000]"get/index.htmlhttp/1.1"200615"api.waredone.com"
19、"24bd698fcc354b6e9045c9bb099c25a5""-";
20、从自动化测试虚拟机:负责压力测试任务的执行,这些自动化测试虚拟机定义在压力测试工作的执行单元中。
21、综上所述,本申请包括以下有益技术效果:
22、1.与自动化测试虚拟机技术结合,通过http协议中的user-agent参数和工作唯一标示符相关联,将工作唯一标示符写入被测服务器的访问日志的方法。
23、2.与自动化测试虚拟机技术结合,若干个自动化测试虚拟机在一次压力测试工作中产生的压力数据能够精确地在被测服务器端进行统计和分析。
24、3.user-agent参数是http协议中非常重要的一个参数,很多的web服务器都默认将其输出到访问日志中,或者可以通过配置输出到访问日志中。本发明通过设置http协议中的user-agent参数的值为工作唯一标示符,即可精准地定位日志并分析和清理。
1.基于自动化测试虚拟机技术精准隔离压测日志的方法,其特征在于:该方法具体包括以下步骤:
2.根据权利要求1所述的基于自动化测试虚拟机技术精准隔离压测日志的方法,其特征在于:所述测试脚本中:
3.根据权利要求1所述的基于自动化测试虚拟机技术精准隔离压测日志的方法,其特征在于:所述主自动化测试虚拟机负责压力测试工作的调度,当其开始执行压力测试工作后,从压力测试工作的定义中解析出工作唯一标识符并传递给从自动化测试虚拟机。
4.根据权利要求1所述的基于自动化测试虚拟机技术精准隔离压测日志的方法,其特征在于:所述从自动化测试虚拟机开始运行压力测试任务,其执行器将工作唯一标识符通过命令行参数传入到作为测试驱动的jmeter中,jmeter执行该测试脚本时,将${__p(atvm.jobid,default-jobid)}替换为传入的工作唯一标识符,因此从自动化测试虚拟机发出的http请求将工作唯一标识符作为useragent;