您的位置:软件测试 > 开源软件测试 > 开源配置管理工具 > HUDSON
Hudson + WebDriver 组织自动化测试
作者:网络转载 发布时间:[ 2013/12/31 15:03:50 ] 推荐标签:Hudson 测试

Hudson是一个比较流行都持续集成工具。用Hudson来驱动自动化测试的好处有以下这些:

· 类似crontab的自动任务管理

· 丰富的插件支持

· 支持分布式任务

· 容易部署

其实整个过程很简单,把Hudson跑起来,新建一个Job,配置一下Ant任务好了。这里只分享一下我遇到的一些坑。

是否使用Source Code Management获取新的测试代码?

如果每次测试都拉新的代码,好处是保证测试代码是新的。但是也会带来一些问题,测试代码本身也是代码,怎么保证新的测试代码没有问题呢?我个人认为,如果团队比较小,可以直接拉新的代码;如果团队大,需要控制。

如果不用SCM插件,怎么样更新自动化测试代码?

我想到的一种办法是,在Hudson里面建立一个构建自动化测试代码的Job,这个Job的产物是自动化测试的包,譬如说如果用WebDriver或者Selenium,把测试代码build成一个或者若干个jar包,然后建立一个latest的软链接指向新的jar包;在运行自动化测试的Job里面做好配置,运行测试的目标jar包指向latest.jarOK了。

TestNG的结果如何跟Hudson整合

Hudson插件很多,可以用testng-plugin来完成这个任务。配置比较简单,在Ant脚本里面配置好TestNG的result output,然后在Hudson里面把测试报告的模式填好。我直接填的TestNG的默认结果文件“testng-results.xml”。build.xml节点配置的一个例子:

<target name="live_check" depends="compile,remove_last_result">

     <testng outputdir="${testng.output.dir}" classpathref="classes" delegateCommandSystemProperties="true" useDefaultListeners="true">
         <xmlfileset dir="${base.dir}" includes="${live.check.config}"/>
      </testng>
    <move file="${testng.output.dir}/${test.result.file}" todir="${ci.workspace}"/>
</target>

首先在testng节点指定outputdir属性,然后测试运行完成以后把结果文件移动到Hudson的workspace

怎么样把Ant的参数传递给TestNG

很多时候我们会希望通过ant把一些参数传递给testng.xml,从而使得测试更加灵活。例如传递不用的base_url可以测试不同的站点。还有配置不同的浏览器。虽然之前这篇文章已经介绍了如何把Ant的参数传递给TestNG,但是那个方法有个缺点,如果在测试方法A里面调用了测试方法B,测试方法B是不能拿到Ant传进去的参数的。我的办法比较土,是首先写好一个testng_base.xml的模板文件,把一些可能经常改变的数值替换成参数,然后用Ant的replace任务做字符串替换。

<target name="replace_testng_xml">
     <replace file="${base.dir}/${testng.file}" token="@@base_url@@" value="${base_url}"/>
     <replace file="${base.dir}/${testng.file}" token="@@browser@@" value="${webdriver.browser}"/>
</target>

软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd