一. 目的与区别
我曾在2010年在国内知名搜索引擎服务商公司
工作,主要负责网页前端
自动化测试工具的开发,我们当时的做法已经其实和现在网页自动化测试方法基本一致,即在watir和watir-webdriver上开发一套自己的封装层,但当时没有引入cucumber做BDD, 而是让其他测试人员直接编写RUBY脚本,require我们制做的封装层,其实理论上讲,只是没有打包成gem,也没有进行测试。 在此过程中遇到的最大的困难就是将我们的封装层部署到每个测试人员的计算机中,并可以指导每个测试人员编写ruby脚本。因此,以上所提及的point都是针对大型网站服务商的测试工具开发的基本薄弱点,也是为中型公司和大型公司开发测试工具的不同点。
为大型公司开发测试工具必须要引入AGILE的方法,才能使整个测试工具从开发到使用是可控的。但本文不着重讲AGILE的方法,主要讲的内容是如何BUILD你最初的整体MAVEN架构,如何利用MAVEN去开发和发布自己的gem或是ruby home.
二. 整体思路
主要有两种方法,
其一是比较传统的打包成gem,发送给所有的测试人员,让其安装本地gem,前提条件是每个测试人员都必须安装同样版本的ruby 或者jruby,这一点来说并不好控制,因此,该方法优点就是方便快捷,但缺点就是没有办法管理基础层的版本。
其二是将整个ruby home打包成zip发布,因为ruby的目录程序是不需要安装的,拷贝到任何一台计算机都可以直接使用,只需要设置一下ruby home即可,而且还可以使用ide去进行开发,这样的方法是我主要推荐的,所有的版本都在测试工具开发人员的掌握之中,不会因为ruby的版本变化,或者ruby中安装的其他的gem的影响,而导致整个测试框架的不稳定或者完全崩溃
三. maven项目的目录结构
-RobinJ (Project name)
-- org.robinj.robinj-gem
-- org.robinj.jrubyhome
-- org.robinj.test
-- org.robinj.test.chrome
-- org.robinj.test.firefox
-- org.robinj.test.ie
四. 模块介绍
<span style="font-size:18px;"><execution> <id>import jruby complete and own gems</id> <phase>process-resources</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>org.jruby</groupId> <artifactId>jruby-complete</artifactId> <version>${jruby.version}</version> <type>jar</type> <overWrite>true</overWrite> <outputDirectory>${basedir}/tmp</outputDirectory> </artifactItem> <artifactItem> <groupId>org.robinj</groupId> <artifactId>robinj-gem</artifactId> <version>${project.parent.version}</version> <type>gem</type> <outputDirectory>${basedir}</outputDirectory> </artifactItem> </artifactItems> </configuration> </execution></span> |