51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师论坛测试积点免费获取渠道攻略什么样的人才需要实战项目?横扫BAT,Python全栈测试开发技能大全
【113期】:Web安全测试你来问我来答!中国软件测试行业现状调查报告新鲜出炉! 【杂志】做测试行业不偏科的尖子生! 自学软件测试那点事
查看: 5328|回复: 13

分布式自动化测试框架Automatjion Center设计介绍

[复制链接]

该用户从未签到

发表于 2010-11-29 09:20:20 | 显示全部楼层 |阅读模式
1.
AC介绍1.1. AC架构示意

ACTest Job Object Model(测试任务模型)为核心,以Test Job File(测试任务文件)为输入,根据Job type启动不同类型的测试引擎,执行测试任务,最后输出一份基于html的自动化测试报告。如图:


1-1 Automation Center结构示意图

AC目前支持五种主流测试引擎,AntJavaSelniumQTPJunit,这意味着,AC的用户可以将这些不同类型的测试脚本统一集成到AC中进行管理,调度和执行,最后形成一份自动化测试报告。

同时,JobEngine是基于Javainterface接口技术开发,因此,AC的用户也可以根据自己的需求对JobEngine进行扩展,开发不同Engine,比如RobotEnginesilkEngine等等。

1.2 Test Job Object Model(测试任务模型)

TestJobObject ModelAC的运行核心,它是一个树形结构,每个TestJob下包含多个属性和对象,结构图如下:


1-2 TestJobObject 架构图

1.
TestJob的模型构建

一个TestJob有如下属性信息:

nameTestJob的名称

descriptionTestJob的描述信息

dependsTestJob的依赖信息。比如在TestJob Adepends定义为Test Job B,则AC会首先运行B,并根据B的成败,判断是否执行A

driver_type:
TestJob的引擎类型,AC会根据此字段启动对应类型的JobEngine

一个TestJob还可以包含以下一个或多个附属对象:

<JobInput>:测试任务输入信息,在本Test Job开始执行之时,AC会检查其所有JobInput是否已经准备好。

<JobOutput>测试任务输出信息,在本Test Job结束执行之后,AC会检查其所有的JobOutput 是否都已经按照定义输出。

<PropFile>环境文件,遵循Java Properties定义规范,和测试环境相关的信息,比如被测服务器地址,测试帐号及口令等等。

<ConfFile>AC配置文件,遵循java Proeprties定义规范,和任务设置相关的信息,比如测试超时时间,重复运行次数等等。

<TestData>测试数据,支持xslxml两种数据格式。AC会在Test Job执行的时候加载测试数据,供Test Case使用。

<Lib>QTP TestJob专用,AC在启动QTPjob时,会加载相应的lib文件

<ClassPath>: Java TestJob专用,AC在运行java job时,会调用classloader将所引用到的jar包装载至jvm中。

另外,TestJob同时还是一个递归的自定义结构,这意味着一个Test Job下可以递归包含若干个子Test Job,这种TestJob又称作抽象JobAC在运行抽象Job时,会首先递归运行其下的所有子TestJob,然后分析这些TestJob的结果状态,最终确定抽象Job的运行结果状态。

抽象Job和实体Job在定义时唯一不同之处是,实体Job的属性会指定driver_type引擎类型,而抽象Job则没有driver_type属性或者为空。AC通过driver_type的值来决定是否应该启动相应的JobEngine

2.
TestJob文件示例

使用xml文件来定义TestJob,以下是一个TestJobFile.xml示例:

<TestJob name=”机票预定系统测试” description="测试机票系统安装,登录,预定等功能" depends="">

<PropFile name="$ENV" location="serverInfo.xml"/>

<ConfFile name="$CONFIG" location="config.xml"/>


<Javaname="getTestCaseFromCVS" description="
使用java程序从cvs中获得相应的测试代码"
depends="" driver_type="JAVA">


<ClassPath location=”javacase/jar/cvsLoader.jar”/>


<JobOutput name="$TESTVERSION"/>


<Run path="cvsLoader.getFiles ">


</Run>


</Java>


<VBS name="VBS_Install_Client" description="
使用VBScript脚本完成机票系统客户端的安装"
depends="getTestCaseFromCVS" driver_type="VBScript">


<Lib location=”common\lib\lib_install.vbs”/>


<Run path="testcase\vbs\install_client.vbs"></Run>


</VBS>

<QTP name="QTP_bookFlight" description="调用QTP脚本完成机票的预定"
depends=" VBS_Install_Client" driver_type="QTP”>


<JobOutput name="$FlightNo"/>

<JobOutput name="$CustomerName"/>


<Lib location=”common\lib\lib_utilityvbs”/>


<Run path="testcase\qtp\qtp_bookFlight"></Run>


</QTP>

<Selenium name="Selenium_queryFlighOnWeb" description="调用Selenium脚本通过web查询订单的信息是否正确"
depends="QTP_bookFlight" driver_type="SELENIUM”>

<ClassPath location=”seleniumcase/web/selcase.jar”/>

<JobInput name="$FlightNo"/>

<JobInput name="$CustomerName"/>


<Run path="selcase.checkWeb"></Run>


</Selenium>

</TestJob>

以上TestJob文件描述了一个机票系统的完整的自动化测试流程,总计包含4个不同类型的TestJob,分别为getTestCaseFromCVSVBS_Install_ClientQTP_bookFlightSelenium_queryFlighOnWeb
TestJobdepends定义揭示了AC的运行过程:

1AC会首先运行名为getTestCaseFromCVSjava测试案例,getTestCaseFromCVS从代码管理系统cvs中下载测试案例代码到本地。为后续的案例运行准备好执行环境。

(2) VBS_Install_ClientVbscript脚本负责在本机windows上安装订机票客户端。

3QTP脚本QTP_bookFlight下了一张机票订单,并将订单号和乘客名输出。

4)订单号和乘客名成为Selenium_queryFlighOnWeb的输入参数,Selenium脚本则完成web页面订单的查询和验证。


Automation Center完全免费,并逐步在www.cesoo.info发布开源,详情了解http://www.cesoo.info/bbs/viewtopic.php?f=3&t=21&sid=307e5bc2cb7e49c60b43d7882e98abe7

回复

使用道具 举报

该用户从未签到

发表于 2010-11-30 11:13:39 | 显示全部楼层
很不错,支持下!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-12-1 10:50:31 | 显示全部楼层
up
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-12-1 15:58:00 | 显示全部楼层
我也支持下
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-12-2 22:22:22 | 显示全部楼层
谢谢支持。
Automation Center已经release 1.0版本,免费,无任何license,欢迎到本站博客下载使用。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-12-11 11:53:36 | 显示全部楼层
XStudio 这个工具可以参考一下:
http://www.xqual.com/open_source/launchers.html

支持大量的自动化测试工具调度
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-12-11 14:12:15 | 显示全部楼层
谢谢楼上,看了一下,那个东东有意思,主要支持slenenium相关的test case,遗憾的是对qtp不支持。
对趋势的判断都是一致的,那就是目前业界的自动化测试越来越灵活和复杂,依靠单一的测试工具不会形成完整的解决方案。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2020-3-15 09:57
  • 签到天数: 131 天

    连续签到: 1 天

    [LV.7]测试师长

    发表于 2011-1-4 22:14:42 | 显示全部楼层
    很好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2011-1-7 14:41:20 | 显示全部楼层
    回复 8# msnshow


        斑竹来串门做客,谢谢关注!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-2-10 09:28:24 | 显示全部楼层
    看过楼主的书,蛮好的,我是负责系统自动化测试的,主要针对的是CLI,和软件自动化测试,有异曲同工之妙,在框架的建立上有所差异,有机会希望探讨下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2011-2-10 21:18:46 | 显示全部楼层
    回复 10# 散步的SUN


        谢谢这位朋友,保持联系。我的邮箱是:sunshinelius@gmail.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-5-5 10:09:12 | 显示全部楼层
    LZ能把这个框架最新程序发一下吗?我下了一个好像版本是1.0哦,谢谢了,呵呵,我的邮箱是mangowang85@163.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-5-3 16:22:51 | 显示全部楼层
    网站上好慢啊 能不能贴到这上面来?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2012-5-6 22:54:59 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2020-7-4 00:22 , Processed in 0.074356 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2020 Comsenz Inc.

    快速回复 返回顶部 返回列表