BusinessProcess和Service层自动化测试用例
在BusinessProcess和Service层,业务接口通常以SCA或WebService的接口暴露出来。在功能测试阶段,有很多编写测试用例的工具,这里我们使用JUnit来编写测试用例脚本。JUnit是一个易用的,灵活的,开源的,测试平台。就像所有其他项目一样,它有很多优点,但也有不足之处。通过使用无需人工干预的JUnit自动测试平台,我们很容易累积起大量的JUnit测试程序从而保证以往的错误不会重现。另外,JUnit便于和编译单元(如,Ant)以及IDE单元(如,Eclipse)集成。JUnit中有两个基本对象,TestCase和TestSuite。TestCase通过提供一组方法来实现一系列测试。例如,setup()方法用来在每项测试开始前建立测试所需的测试环境,而teardown()方法用来在测试后销毁该环境。TestSuite是由几个TestCase或其他的TestSuite构成的。你可以很容易的构成一个树形测试,每个测试都由持有另外一些测试的TestSuite来构成。被加入到TestSuite中的测试在一个线程上依次被执行。
在性能测试阶段,我们使用RPTforSOA(RationalPerformanceTesterforSOA)来编写调用服务的脚本。
RPTforSOAExtension根据WSDL进行语法解析,生成参数输入界面。测试人员可输入测试数据,RPTRecorder会捕获到进行WebService通信的协议内容,并记录到脚本中(如图3.2)。
图3.2RPTforSOA界面图
自动化测试用例执行脚本介绍
本文的第二部分介绍了测试 build 的自动卸载和安装部署。本部分介绍在新的 build 自动安装部署完成后,自动执行测试用例并将测试结果发给相关人员。
若要实现测试用例的自动执行,需要在第二部分中的 buildToTest.py 文件中添加四个重要任务:
判断 Build 是否安装成功
系统获取服务器 profile 下的 \config\cells\localhostNode03Cell\applications 中已安装的 ear 文件,判断是否所有应该安装的 ear 文件都在其中,并且判断这些文件的 Date Modified 时间是否是当天。若从该文件夹下查询到所有的 ear 文件,说明新 Build 已成功安装。
执行测试用例并且获取测试结果
在测试用例完成后,编写一个 Servlet 调用本 Junit 编写的测试用例。系统通过
sock=urllib.urlopen("http://localhost:9082/cbs.service.test.web/CBSServiceTestRunner?
|--10--------20--------30--------40--------50--------60--------70--------80--------9|
|-------- XML error:?The previous line is longer than the max of 90 characters ---------|
suite=com.ibm.cbs.service.test.suite.CBSServiceSuite&xsl=cactus-report.xsl")
测试用例被执行并且将结果按照 cactus-report.xsl 的格式组织。获取测试结果后,系统将结果写入 ServletTestRunner.xml 文件中。
htmlSource = sock.read()
sock.close()
resultfile=open(top_dir+'/BuildScript-CMI-Service/ftp/'+currentTime+
'/ServletTestRunner.xml', 'w')
resultfile.write(htmlSource)
resultfile.close()