朱红++仇润鹤
文章编号:2095-6835(2016)07-0012-03
摘 要:随着移动通信业务测试需求的增加,为保证通信产品的质量和研发速度,利用Jenkins搭建了企业持续集成自动化测试平台,用于移动通信业务的自动化测试。介绍了持续集成自动化测试平台的总体框架和各模块构成,并以GSM基本语音和数据业务测试为例,给出了平台测试流程和测试输出结果,最终使持续集成与自动化测试在项目中顺利应用。此平台在实际项目的应用中取得了显著效果,提高了测试工作的效率。
关键词:Jenkins;移动通信;通信业务;自动化测试平台
中图分类号:TP311.52 文献标识码:A DOI:10.15913/j.cnki.kjycx.2016.07.012
随着通信行业的不断发展和用户业务的不断增加,移动通信业务由传统的单一语音业务转向多元化业务。通信设备产品在进入市场之前都要进行一系列的测试,而且软件版本更新前后有大量的测试需求重叠,因此,通过搭建自动化测试平台完成通信设备软件的测试非常有必要。
针对现有多元化移动通信业务的测试,包括语音业务和数据业务等,除了一些通用的测试工具外,很多公司都有内部的自动化测试工具。很多测试工具都是基于TTCN-3(测试及测试控制表示法)开发的,比如TREX、BroadBit、TAU Teste、OpenTTCN3等。TTCN-3是由ETSI(欧洲电信标准化组织)制定和推行的测试专用语言,是全球各大通信设备厂商的主流测试语言。而项目组移动通信业务的自动化测试则引入了持续集成(continuous integration,简称“CI”)系统。
目前,全球80%以上的软件项目采用的是持续集成。持续集成是一种软件开发实践,每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快发现集成错误。谷歌作为当前科技领头羊,率先在内部推行并使用了持续集成模式。在其内部的持续集成系统中,数以亿计的构建动作会发起几百万次的自动化测试,开辟了快速开发领域的测试新模式。
Jenkins作为开源集成测试软件的典型代表,可以用来搭建企业持续集成自动化测试项目平台,对移动通信业务进行自动化测试。
1 基于Jenkins搭建CI自动化测试平台
1.1 CI自动化测试平台框架
移动通信业务的CI自动化测试平台框架如图1所示。该测试平台主要包括Jenkins、CIS-RC(Continuous Integration Server Remote Control)、Control Unit和L1(Layer 1)物理层测试平台。
Jenkins和CIS-RC安装在Windows PC上,而Control Unit、Linalfs、KSIM等测试工具则安装在Linux PC上,相关移动通信业务的自动化测试也均是在Linux PC上完成的。Windows PC和Linux PC之间通过TCP连接,进行工具调用、结果传输等。
Jenkins是一个配置简单、使用方便的持续集成服务器,在CI自动化测试平台中起着指挥的作用。通过执行命令,Jenkins可以调用一些工具,比如CIS-RC和L1 Wait And Check Result File。在Jenkins上,相关人员可以根据不同的测试平台构建不同的项目来触发各类移动通信业务的自动化测试。
CIS-RC在CI自动化测试平台中相当于客户端。Jenkins要想调用CIS-RC,可以通过两个参数,分别是XML文件名称和XSD文件名称。XML文件和XSD文件中包含了一些设置和命令,其中,XML文件包含了关于Control Unit、脚本序列(script sequence,简称“ssq”)和结果文件的相关信息,而XSD文件则描述了Control Unit与CIS-RC之间的连接。
Control Unit相当于TCP服务器,同时控制着L1物理层测试工具,包括KSIM、Linalfs等。移动通信业务测试是在L1测试平台上进行的,Control Unit会对测试过程和结果进行评估,我们可以在log窗口和单独的统计窗口中观察自动化测试相关的log信息和测试结果。
1.2 L1物理层测试平台
L1物理层测试平台是基于RRH(Remote Radio Head,射频拉远头)建立的。Linalfs和KSIM等移动通信业务测试工具在平台上执行脚本命令,并在工具测试界面上返回测试结果。测试工具均采用脚本的方式运行,脚本语言为自定义关键字的形式,无需动态编译,可以直接运行。这样不仅节省了测试时间,而且还便于测试用例的构造。
RRH是用于移动宽带网络基站中的新技术设备,可以提升既有讯号的传输效率,并在更容易建置的网络架构下扩大其网络覆盖率。RRH技术的特点是可以将基站分成无线基带控制(Radio Server)和射频拉远两部分。使用RRH技术可以灵活、有效地根据不同环境构建各种构造的网络。
除了RRH,L1测试平台还包括SUMX、RF回环盒、衰减器、合路器和电缆等。这些部件通过一定的连接方式共同构成了L1物理层测试平台,如图2所示。
2 移动通信业务自动化测试实例
2.1 测试目的
移动通信业务的测试包含了语音业务测试和数据业务测试等。以GSM基本业务测试为例,在初始化不同GSM载波、Abis接口和PA数的情况下,对物理层GSM基本业务进行了自动化测试,以检测接收机的质量,例如接收信号的能力、抗各种干扰的能力以及抗各种无线环境的能力等。
GSM语音业务包含全速率语音业务和半速率语音业务。采用FR和HR编码的语音业务,在不同编码方案、时隙和信道配置下,验证系统是否支持FR和HR编码的移动用户主叫业务功能和被叫业务功能。测试通过表示呼叫成功,主被叫语音正常。
GSM数据业务也包含全速率数据业务和半速率数据业务。在不同编码方案、时隙和信道配置下,测试短消息业务,验证系统是否支持移动用户发送和接收短消息业务。测试通过表示在空闲和通话状态下,MSA短消息发送成功,MSB能正确接收和显示短消息。
2.2 测试脚本
GSM业务信道(TCH)携载编码语音或用户数据,有两类TCH,分别是全速率业务信道(TCH/F)和半速率业务信道(TCH/H)。在进行具体业务测试之前,需要对GSM载波、Abis接口和PA数进行初始化配置。其初始化配置脚本如表1所示,GSM基本语音业务和数据业务的测试脚本如表2所示。
RTS:时隙[0…7]
EN:ENC信道配置=12->[TSC=0,ACT=1,DTX=0,T/NT=0,SA=1,TC=0]
DE: DEC信道配置=11->[TSC=0,ACT=1,VGCS=0,T/NT=0,SA=0,A/N=1]
2.3 测试流程
在CI自动化测试平台上进行GSM基本业务自动化测试时,将初始化脚本、语音,数据业务测试脚本和测试过程中需要用的所有其他脚本和参数均按执行顺序集成到SSQ脚本序列中,然后在SSQ脚本序列执行过程中再去调用具体的scr脚本。
在初始化1个和2个GSM载波、Abis接口为1的情况下,将GSM语音业务和数据业务在不同编码方案、时隙和信道配置下的所有测试集成到一个Jenkins job中,新建一个job,并进行相关配置,如图3所示。
为避免一个job执行的测试脚本命令过多,一般将完整业务的自动化测试分为多个job来执行,比如将初始化1个和2个GSM载波、Abis接口为1作为一个job,将初始化1个和2个GSM载波、Abis接口为2作为一个job。以此类推,在初始化所有GSM载波、Abis接口和PA数的情况下将完整业务的自动化测试分为6个job来执行。相关人员只需要在job配置项中选择上一个执行以及下一个执行的job,即可按顺序执行6个job。
新建并配置完成Job后,在第一个job处点击“Build Now”开始自动化测试。在点击“Build Now”之前,要确保CIS-RC和Control Unit已经开始运行。
Jenkins执行job首先调用CIS-RC,CIS-RC读取相应job的XML文件,并参照XSD文件对其进行验证,然后新建一个针对测试环境下应用Control Unit的TCP连接向Control Unit发送XML命令,Control Unit根据接收到的XML命令打开测试工具Linalfs、Ksim等,并执行相关的SSQ脚本序列,最后待测试结束后将测试结果返回CIS-RC和Jenkins中。
Control Unit执行SSQ脚本序列的过程如图4所示。我们可以从Control Unit的log窗口看到整个测试的执行过程,从Linalfs和Ksim界面看到正在执行的语音或数据业务的case,从Running Test界面看到当前正在执行的scr脚本和整个测试进程。
2.4 测试结果
在GSM基本业务测试过程中,一个case的结果是否通过主要看Linalfs测试结果界面上显示的接收机的质量和帧误率,然后参考表3作出评判。在测试语音业务时,测试通过表示呼叫成功,主被叫语音正常。在测试数据业务时,测试通过表示在空闲和通话状态下,MSA短消息发送成功,MSB能正确接收和显示短消息。
结果文件中,“Status=OK”表示所有语音和数据业务case均通过测试。除了XML结果文件,可以在Jenkins界面的Console Output上直接看到测试结果,如图5所示。Console Output显示为绿球,并且“Finished:SUCCESS”也表示测试通过,即在初始化所有GSM载波、Abis接口和PA数的情况下,GSM语音业务和数据业务在不同编码方案、时隙和信道配置下均能正常工作。
3 结束语
软件持续集成和自动化测试的引入在一定程度上解决了通信产品在软件系统开发过程中的测试难题,避免了手动测试的大量人力投入,提高了测试的质量和研发速度,具有重要的现实意义。
本文基于Jenkins搭建了企业持续集成自动化测试平台,并将所有流程都集成到Jenkins持续集成平台上,实现了移动通信业务的自动化测试。其中,还具体介绍了CI自动化测试平台的总体框架以及各模块功能的构成和模块之间的关系,并以GSM基本业务测试为例,介绍了整体的测试流程和测试输出结果,最终使持续集成与自动化测试在项目中得以顺利应用,达到了项目组预期的效果。
参考文献
[1]刘昶.LTE语音测试解决方案[J].电信网技术,2013(03).
[2]董宏成,张宁,李小文.基于TTCN-3的RRM小区重选过程一致性测试[J].电信科学,2013(4).
[3]陈刚,羌铃铃.持续集成在项目中的分析与研究[J].电脑编程技巧与维护,2011,24.
[4]邢晓伟.持续集成在软件开发过程中的应用[J].金陵科技学院学报,2014,04.
[5]James W,Jason A,Jeff C.Google软件测试之道[M].黄利,李中杰,薛明,译.北京:人民邮电出版社,2012.
[6]崔岩,姜良军.基于GSM系统的TCH指配流程及优化研究[J].山东通信技术,2014(1).
〔编辑:王霞〕