SOA 组合业务服务的自动化测试:第 3 部分

94 篇文章 1 订阅
78 篇文章 0 订阅
本系列文章的 第一部分 介绍了如何自动安装部署 SOA 的测试环境; 第二部分 介绍了 SOA 组件的自动化部署。本部分将着重介绍将 SOA Build 自动部署完成之后,如何进行 SOA 的自动化测试。

介绍

对于 SOA 的功能测试我们要分三层的测试:第一层是用 RFT(Rational Functional Tester)进行 UI 界面层的测试;第二层和第三层是用 Junit 进行 Business Process 层和 Service 层的测试。性能测试方面,用 RPT(Rational Performance Tester)进行 UI 界面层的测试,而 RPT for SOA 用 Business Process 层和 Service 层的性能测试





回页首


UI 界面层的自动化测试用例

(1)用 RFT 来录制的 UI 层的测试用例脚本。

使用 RFT 开发自动化测试脚本的过程大致是:录制对象映射,使用对象映射对 GUI 对象进行操作从而完成自动化测试。


图 3.1 RFT 流程图

(2)使用 RFT UI 测试框架来编写测试脚本。

有了这套框架可以为你的自动化测试项目提供以下帮助:

  • 加速脚本编写;
  • 快速调试以及易于维护;
  • 代码重用;
  • 很好的组织脚本文件;
  • 帮助协作;
  • 从他人经验得到益处;

这套框架由以下三个部分组成:通过 Appobjects,Tasks 以及 Testcases 来实现三层架构;ibm 工具包;以及配套的最佳实践。

Appobjects 用于存储关于应用程序 GUI 元素的信息。在 appobjects 里面你将写一些 getter 方法,这些 getter 方法返回对象给调用者,这些对象将用于查询和操作 GUI 元素。一般,这些 getter 方法将在 tasks 层调用。

Tasks 用于写一些可重用的方法,这些方法将对应用程序执行一些操作。如果需要操作和查询复杂的特定于某应用程序的控件,也可以写在 tasks 的方法中。Tasks 包里的方法将被 testcases 调用。

Testcases 便是最终的测试用例。它们将操作应用程序、验证其状态以及记录下结果。

(3)使用 RPT ( Rational Performance Tester) 来录制自动化测试用例脚本。

Rational Performance Tester(简称 RPT)是 IBM 基于 Eclipse 平台及开源的测试及监控框架 Hyades,开发出来的最新性能测试解决方案,总体架构如图一所示。它可以有效地帮助测试人员和性能工程师验证系统的性能,识别和解决各种性能问题。它适用于性能测试人员和性能优化人员,用于开发团队在部署基于 HTTP 和 HTTPs 通信协议的 Web 应用程序前,验证其可扩展性、性能和可靠性。





回页首


Business Process 和 Service 层自动化测试用例

在 Business Process 和 Service 层,业务接口通常以 SCA 或 Web Service 的接口暴露出来。在功能测试阶段,有很多编写测试用例的工具,这里我们使用 JUnit 来编写测试用例脚本。JUnit 是一个易用的,灵活的,开源的,测试平台。就像所有其他项目一样,它有很多优点,但也有不足之处。通过使用无需人工干预的 JUnit 自动测试平台,我们很容易累积起大量的 JUnit 测试程序从而保证以往的错误不会重现。另外,JUnit 便于和编译单元(如,Ant)以及 IDE 单元(如,Eclipse)集成。JUnit 中有两个基本对象,TestCase 和 TestSuite。TestCase 通过提供一组方法来实现一系列测试。例如,setup() 方法用来在每项测试开始前建立测试所需的测试环境,而 teardown() 方法用来在测试后销毁该环境。TestSuite 是由几个 TestCase 或其他的 TestSuite 构成的。你可以很容易的构成一个树形测试,每个测试都由持有另外一些测试的 TestSuite 来构成。被加入到 TestSuite 中的测试在一个线程上依次被执行。

在性能测试阶段,我们使用 RPT for SOA(Rational Performance Tester for SOA)来编写调用服务的脚本。

RPT for SOA Extension 根据 WSDL 进行语法解析,生成参数输入界面。测试人员可输入测试数据,RPT Recorder 会捕获到进行 Web Service 通信的协议内容,并记录到脚本中(如图 3.2)。


图 3.2 RPT for SOA 界面图





回页首


自动化测试用例执行脚本介绍

本文的第二部分介绍了测试 build 的自动卸载和安装部署。本部分介绍在新的 build 自动安装部署完成后,自动执行测试用例并将测试结果发给相关人员。

若要实现测试用例的自动执行,需要在第二部分中的 buildToTest.py 文件中添加四个重要任务:

  1. 判断 Build 是否安装成功

    系统获取服务器 profile 下的 /config/cells/localhostNode03Cell/applications 中已安装的 ear 文件,判断是否所有应该安装的 ear 文件都在其中,并且判断这些文件的 Date Modified 时间是否是当天。若从该文件夹下查询到所有的 ear 文件,说明新 Build 已成功安装。

  2. 执行测试用例并且获取测试结果

    在测试用例完成后,编写一个 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()

  3. 发送邮件

    系统调用 sendEmail.bat 将测试结果发送给相关人员。

    os.putenv('bvt_ir','OK')
    sendEmail = os.system(os.path.join(top_dir, "BuildScript-CMI-Service", "sendEmail.bat"))
    |--10--------20--------30--------40--------50--------60--------70--------80--------9|
    |-------- XML error: The previous line is longer than the max of 90 characters ---------|

    sendEmail.bat:

    call C:/Apache/apache-ant-1.6.2/bin/ant.bat -Dbvt.ir=%bvt_ir% -logfile sendEmail.log 
    -buildfile C:/BuildScript-CMIV1R3/BuildScript-CMI-Service/otherTargets.xml send-mail

  4. 若 Build 并未安装成功,则发送错误信息邮件给相关人员。
    call C:/Apache/apache-ant-1.6.2/bin/ant.bat -logfile sendErrorEmail.log -buildfile
    C:/BuildScript-new/ICMS-CBS_Merge-Service/otherTargets.xml send-error-mail

    otherTargets.xml 中定义了 send-mail 和 send-error-mail 的格式和内容



本文转自IBM Developerworks中国

      请点击此处查看全文


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值