APP下载

移动通信网络节点性能的自动化测试平台的搭建与应用

2019-03-22江淑明仇润鹤

科技与创新 2019年5期
关键词:板子软件测试节点

江淑明,仇润鹤



移动通信网络节点性能的自动化测试平台的搭建与应用

江淑明,仇润鹤

(东华大学信息科技与技术学院,上海 201620;数字化纺织服装技术教育部工程研究中心,上海 201620)

随着通信软件版本更新迭代的速度越来越快,为了保证产品的质量和研发速度,需要能用于网络节点性能测试的自动化测试平台。搭建了一种移动通信网络节点性能的自动化测试平台,给出了被测试通信网络系统框架中的各个模块和自动化测试工具,并以软件升级测试为例,介绍了整个平台的具体自动化测试步骤和测试数据结果的分析,证明整个的自动化测试平台能够顺利使用,并能够在实际的应用中大大提高研发效率。

移动通信;网络节点;通信软件;自动化测试

随着通讯系统的复杂程度的不断增加,软件系统的复杂程度也在不断增加,尤其是在当前移动通讯设备娱乐功能逐渐增多的前提下,通信软件的质量要求也越来越高,而软件测试是软件开发中不可或缺的部分,软件测试是软件质量控制和质量管理的关键环节,因此,软件的测试工作也提升到了一个非常重要的地位。通信的产品和软件服务一般覆盖面都会比较广,如果测试质量和精度不够高,上线后出现问题的影响将会是非常巨大的。因此,高精度和高质量的测试是我们所需要的。但现在版本更新迭代的越来越快,项目交付压力越来越大,单纯地手动测试已经不能满足现在所有的需求。因此,自动化测试应运而生,它具有快捷、方便、可重复、覆盖率高等许多优点,能够大大地提高软件产品研发效率,节省时间,争取用最短的时间进入市场。

显而易见,利用专门的自动化测试工具进行有针对性的测试,提高测试效率是非常可行的办法。国际上流行的测试工具代表有Compuware(美国康博)公司的DevPartner软件、Rational公司的Purify系列。而对于电信网络节点的性能测试主要可以概括为三种不同的类型,分别是软硬件管理维护测试,鲁棒性测试和容量测试。其中,软硬件管理维护测试主要用来测试软件版本各种不同层次的升级过程中各种性能指标参数是否稳定。

鲁棒性测试是指人为的破坏或者重启某个节点或者板子后查看各项指标的恢复情况是否正常。容量测试则是指阶梯型的增加模拟用户数直到最大负荷观察增加的过程中各种性能指标是否一直属于正常。为了实现节点性能测试的自动化,实际项目使用D-JCAT。自动化测试工具D-JCAT是一个Maven工程项目,由cats和D-jcat两个子项目构成,都是用Java语言开发,在使用的时候,只需要在本地打开Eclipse导入性能测试所需版本相对应的Maven工程就可以使用,配置简单,操作界面友好。

1 自动化测试平台的搭建

1.1 测试平台

测试平台主要由GSS服务器、Dallas、核心测试节点设备SGSN-MME、多台交换机、路由控制器组成,如图1所示。其中,GSS是一个UNIX服务器,主要用来配置核心测试节点与核心测试节点之间交流,这种交流主要体现在文件服务上。因此,可以粗略地认为,GSS服务器就是一个为核心测试节点SGSN-MME提供文件服务的服务器。

电信网络一般覆盖面比较广,测试也必须要考虑到不同的真实场景。所以,其中的一个测试工具Dallas就是在这样的需求下产生的。简单来说,它是一个分布式的负载测试工具,帮助测试人员模拟真实的用户场景。以便能够根据不同性能的测试需求使用不同的负载需要。具体来说,Dallas能够从三个层面进行模拟:①它能够模拟所测节点周边的网元节点;②它不仅能够模拟节点,还能够充当函数式接口去产生对应节点发出的信令;③它还能模拟真实的用户,而且用户数是可以手动设置的,可以小到一个用户,大到上千万都可以根据需要模拟出来。

图1 测试平台的框架

核心测试节点设备,即图1拓扑结构中的SGSN-MME,它的硬件内部结构如图2所示。主要有28个槽位,每2个槽位中插入一块板子。插入的板子类型分为4种,即FSB、NCB、GPB和SMXB,分别充当不同的角色。其中GPB是普通的GEP5板子,没有内存,充当AP(应用处理器)和DP(负载设备处理器)的角色。FSB是4种类型板子中唯一具有内存的板子,所以用来存储文件和备份,为所有的板子共享。

NCB是节点控制板子,主要负责路由、监视、O&M和软件分发。SMXB作为交换板构成不同板子之间沟通的桥梁。GSS和Dallas都是为测试核心节点SGSN-MME所开发的工具或服务器。它们通过串口和交换机与SGSN-MME测试节点连接之后,整个需要被测试的系统,也就是测试框架就搭建完成。

图2 测试节点硬件内部结构图

1.2 自动化测试工具

在配置好被测试的系统之后,就可以在自动化测试工具上对所需要测试的节点进行性能自动化测试了。自动化测试工具D-JCAT的模块组成如图3所示。整个测试工具分为3个部分:最底层的JCAT提供了一系列公共处理接口的Java API,也集成了log4j日志输出框架和TestNG测试框架,为整个自动化测试平台提供架构支撑;D-JCAT Framework则是基于JCAT的进一步开发,实现了JCAT重定义的接口,并且各个不同的测试节点有不同的具体实现。

除此之外,D-JCAT还提供了生成节点配置的执行脚本Confix,以及提供case运行监听器的Listener等功能;最上层是CATS Repository。它是在D-JCAT上面进行的二次开发,它没有具体的方法实现,实现的功能都是调用D-JCAT,主要包括唯一识别每个case的XML文件、XML文件唯一映射的Feature Files以及调用底层代码的Test Step。在此情况下,一个自动化case的运行过程就如这样,从上往下一层一层地调用即可。

图3 自动化测试工具D-JCAT模块组成

2 移动通信系统性能自动化测试实例

2.1 测试目的

以软件升级测试为例,来叙述整个的实际测试流程。在这个通信软件产品快速迭代的时代,甚至可以认为软件每天都在不停升级更新,因此,软件测试也就显得尤为重要,而为了提高开发效率,自动化测的重要性就显现出来了。系统需要具备什么样的特性,才算是好的或坏的性能,应该如何进行度量等等,这些都需要对性能测试进行分析与研究。简而言之,软件升级测试的目的在于利用测试工具来模拟真实的升级场景,查看和分析升级包安装配置完成,Dallas模拟用户和流量都在一个稳定的水平后,相应的测试节点AP和DP处理器负载是否在正常可以接受的范围内,是否会因为版本的更新出现新的错误或告警等问题。总之,在新的软件版本正式交付给用户之前,要保证设备软件能够升级成功并且升级之后整个移动通信网络能够保证正常、稳定的运行,给用户提供更优质的体验,这就是软件升级性能测试的意义所在。

2.2 测试脚本及参数配置

在进行正式的软件升级测试之前,需要对核心测试节点SGSN-MME进行初始化配置。主要包括IP地址的配置、节点能够附着的用户容量值配置以及2G、3G、4G用户比例配置等。配置用到的是命名为sgsn_mmefull.sh的一个Shell脚本,直接运行该脚本,等待其执行完成,节点初始化配置成功,之后进行正常的升级流程了。主要的参数如表1所示,这些参数在Eclipse的VM arguments由测试人员给定,然后传递给脚本或程序运行。

2.3 自动化测试流程

在正式开始运行一个软件升级自动化测试时,首先需要一个可用的被测试节点,该节点名称通过脚本参数stp传递给D-JCAT。同时,被传递的还包括准备升级到的软件版本baseline参数。设定规则如图4所示。其他更多的参数则是写在一个“system.properties”的文件中,通过Java中的File类去读取和操作数据。

表1 脚本参数及其描述

脚本参数名称脚本参数描述 Baseline准备升级到的软件版本 Baseline.NonSmooth1最初安装的软件版本 Dallas.versionDallas安装版本 stp被测试的节点

综上所述,在测试工具D-JCAT中每个测试不同性能的案例都有一个独立的XML文件来识别。运行某个具体的案例只需要在已经导入Maven工程的Eclipse上点击“Run Configurations”之后选择你要测试的案例对应的XML文件运行即可。对于软件升级测试来说,选择的是“NonSmoothSu1_LoadNormal_MkX_1mag_Lwg1Itu_EricssonGlobalA_None.xml”这个XML文件。

从XML文件开始运行之后,测试内部的层级调用过程如下:Feature Files 是用Gherkin语言写的要运行一个测试案例具体的实施步骤,并且通过@注解的方式来与XML文件关联,从而运行正确的Feature File步骤。Gherkin语言定义的每个步骤都有CATS中的Java代码来实现,CATS又调用D-JCAT中的代码来实现性能测试案例的运行。在此情况下,一个case就在Eclipse中自动运行起来。在JCAT中封装了log4j日志输出框架,在D-JCAT中又根据具体的测试节点进行了适配封装,在整个case运行的过程中一直打印并且存储log信息在一个以当前时间命名的本地路径下。最后运行完成后,由测试人员查看相应的log和数据来分析测试结果。

图4 VM主要参数

2.4 测试结果数据分析

在整个的测试流程中,最直接判断一个测试是否通过的方法是通过Eclipse中的console窗口中运行是否出现ERROR。如果没有出现ERROR,则升级步骤中没有出现问题。测试后关注的主要参数如表2所示。一个正常的软件升级case完成后,所有的指标都应该与规定的标准相匹配。在此情况下,一个自动化case才是完全通过的。

表2 测试结果评价参数

测试结果参数参数描述 AP CPU usage测试节点AP CPU的使用量,一般70左右为正常 DP CPU usage测试节点DP CPU的使用量,一般45左右为正常 Alarm测试过程中出现的告警信息 测试结果参数参数描述

实际项目中自动化运行升级case时,AP, DP, Alarm参数的实际情况如图5、图6、图7所示。在使用自动化工具D-JCAT进行测试时,只需要等它跑完所有测试步骤后,它自动将不同的参数记录在不同的日志文件里面,后续在Linux服务器上敲相应的命令就可以查看不同的参数结果,得出结论。例如,得到Alarm参数,只需要在输入“gshlist_alarms”即可。这样可以大大提升测试效率,可以同时跑起来多个case,分别去检查结果就可以了。

从图5、图6、图7所得到的实际项目运行中AP,DP,Alarm参数与表2中参数描述对比可知,以上三项测试结果评价参数都在合理的范围内,也没出现Alarm。所以,自动化测试软件升级case成功。

3 结束语

自动化测试与手动测试相比,可以避免人工测试的大量人力投入,减少重复过程,节省时间、费用和工作量,提高测试效率和效果,对于企业具有重要的现实意义。

本文搭建了移动通信节点的性能自动化测试平台,并最终实现了自动化测试。其中,介绍了整个被测试系统的各个模块的功能和组成,并且将他们搭建成一个完成的系统。介绍了自动化测试工具,讲述了它层级的分工以及调用过程。以软件升级case为例,介绍了整体的流程和测试输出结果分析,最终使该自动化测试顺利运行,达到了预期的效果。

图5 AP cpu使用量

图6 DP cpu使用量

图7 查看测试中出现的Alarm

[1]王晓华.软件测试技术应用研究[J].国防科技工业,2012(03):54-55.

[2]王子昊.移动第四代通信技术的研究进展[D].西安:空军工程大学,2017.

[3]王蓁蓁.软件测试理论初步框架[J].计算机科学,2014(03).

[4]张巍.CDMA2000自动化工具平台研究与实现[D].西安:西北工业大学,2016.

[5]罗鹏.3G自动化测试平台的设计与实现[D].成都:西南交通大学,2006.

[6]张旭.浅谈软件测试用工具的设计与实现[J].科技创新与应用,2012(06):32-33.

[7]林峰.手机软件自动测试系统的设计与开发[D].厦门:厦门大学,2009.

[8]黄容.基于TTCN-3的CDMA自动化测试平台的研发[D].西安:西安电子科技大学,2014.

[9]张运中.TD-LTE终端自动化测试软件研究[J].电信网技术,2013(12):14-16.

[10]赖歆.浅谈信息化系统中的性能测试[D].信息通信,2018(08).

2095-6835(2019)05-0051-03

TP311.53

A

10.15913/j.cnki.kjycx.2019.05.051

江淑明(1994—),男,东华大学信息科学与技术学院电子与通信工程研究生。

〔编辑:张思楠〕

猜你喜欢

板子软件测试节点
软件测试方向人才培养“1+X”融合研究
基于图连通支配集的子图匹配优化算法
大数据背景下软件测试技术的发展
一种基于链路稳定性的最小MPR选择算法
结合概率路由的机会网络自私节点检测算法
采用贪婪启发式的异构WSNs 部分覆盖算法*
打“板子”开“方子”,受处分人员“回头看”
关于 Web 应用系统的软件测试的研究
问责的“板子”为何要打响
问责的“板子”怎么打?