测试工具一键式参数提取工具的研究与实现
Posted 非功能之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试工具一键式参数提取工具的研究与实现相关的知识,希望对你有一定的参考价值。
1 引言
非功能测试的主要对象为以应用版本及其所依赖的基础环境,基础环境中包含了各类基础环境以及版本延伸出的配置参数。生产环境与测试环境的参数配置的细微差别都可能导致性能产生较大的差异,非功能测试是以生产为导向的,只有完整地还原生产环境,在此基础上进行的测试才是真实有意义的。系统中的参数成千上万,哪些是影响我们性能的关键参数呢,这些参数应该如何设置,如何快速的提取参数呢?下文将一一介绍。
传统的参数检查方法不仅耗时长,各类命令复杂且迥异,导致参数检查工作效率较低。一键式的参数提取及检查工具的出现,不仅提高了参数提取的效率,而且提高了参数检查准确率。
参数提取工具主要实现了以下功能:
1、提供了一个可视化的界面协助参数抽取及检查工作
2、建立了一套影响性能的参数知识库
3、支持参数的一键式导入,参数范围的定制化设计
4、支持抽取参数的导出功能,形成格式化的文档
下文将介绍主要的功能模块。
1.1 定制化的参数模板
定制化模板的实现过程,主要是将各种各样的参数进行分门别类,整理成固定的格式,以便对类别进行统一的管理,从而减少对单个参数的工作投入。现有的测试环境中,主要用到的操作系统有:Linux、AIX、HP-UX,中间件有Weblogic、TUXEDO,数据库主要是Oracle。以上各类的命令各有不同,但每个系统的参数都是相似的,如Linux系统的参数提取基本为:cat/etc/sysctl.conf |grep 对应参数名,AIX系统的参数提取基本为:kctune |grep 对应参数名。
因而,在定制化的模板中。首先,定义了一系列para_list标签,para_list标签为类的标签,para_list标签的id主要有:LINUX、AIX、HP-UX、network、TUXEDO、weblogic、Oracle。
然后在每个para_list标签中,定义该类系统的所有参数,如下图所示,id为参数编号,para_name为参数名称,标签中的内容为参数的提取指令。
图1 参数及提取指令模板
1.2 一键式参数提取
在定制化的模板实现后,可根据项目的实际情况对参数进行增减以及修改,然而,由于该工具是基于SSHHelper的包进行设计的,不同于直接在机器的客户端上操作,有些指令无法注册在SSHHelper工具上,因而无法执行。针对以上的情况,分别对于各系统不同的原因进行了改造,以便于后续对参数进行一键式无需人工干预的提取。例如:
1、针对AIX系统,kctune命令无法直接执行,需要在/usr/sbin/中执行,因而,需要对这类命令设置单独的标签,以增加命令的执行路径。
2、针对Oracle数据库,由于Oracle相关的命令通过SSHHelper无法使环境变量生效,像echo这类无需进入sqlplus执行的命令,需要先执行. ~/.profile;命令,然后再执行所需指令才可以正常提取。
3、对于Oracle数据库相关参数,且需要进入sqlplus 后执行的,".~/.profile;" + "echo '" + command + "'|sqlplus / assysdba";执行如上指令,才可以正常提取。
1.3 一键式参数导出
一键式参数导出,指的是将所提取的参数,导出后以文件的形式保存。在程序中,定义好所需的列,以及参数取值的来源后,以一定的格式,将参数保存,如下图所示:
图2参数导出结果模板
2 总结
通过该工具的实现,有效的实现了各类参数的快速提取,在提高准确性、规范性的同时,同时极大地提升了参数提取的效率。
以上是关于测试工具一键式参数提取工具的研究与实现的主要内容,如果未能解决你的问题,请参考以下文章
Docker环境下使用docker-compose一键式搭建RocketMQ(4.5.0版本)集群及其管理工具
Docker环境下使用docker-compose一键式搭建RocketMQ(4.5.0版本)集群及其管理工具(外网版)