如何基于SeLion实现一个web的自动化测试过程呢?下面会通过代码详细实现。
一:需要安装的软件:
1)Java JDK 1.7
2) Eclipse + testNg (关于在eclipse中配置testNg请参考testNg官网)
3) Maven (可以单独下载安装,请参考maven官网进行安装并配置)
4) Firefox 浏览器 version <= 32 (其他浏览器也可以,本文以firefox讲解)
二:创建Sample工程,有两种方式实现。
1)通过eclipse中直接创建Maven项目 (该过程简单不详细说)
2)直接通过Maven命令创建 命令如下:(红色部分可以自己修改)
mvn archetype:generate -DgroupId=com.mycompany.test -DartifactId=Sample \ -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
执行该命令后会生成如下的目录结构:
Sample/├── pom.xml├── src/main/java/com/mycompany/test│ ├── App.java├── src/test/java/com/mycompany/test│ ├── AppTest.java
三:更新pom.xml文件,加入依赖包,代码如下:(关于pom.xml文件的语法请查看maven官网,有详细解释)
4.0.0 com.mycompany.test Sample jar 1.0-SNAPSHOT Sample http://maven.apache.org sonatype-nexus-snapshots https://oss.sonatype.org/content/repositories/snapshots sonatype-nexus-snapshots https://oss.sonatype.org/content/repositories/snapshots com.paypal.selion SeLion 1.0.0-SNAPSHOT org.apache.maven.plugins maven-surefire-plugin 2.17 ${suiteXmlFile}
更改完成后,执行下面的命令,maven就会自动下载所需要的依赖包到本地,第一次因为需要下载的包较多,会需要较长的时间,等第一次下载好了,以后运行就会快了
mvn dependency:resolve
四:创建@WebTest测试代码如下:
package com.mycompany.test;import org.testng.annotations.Test;import com.paypal.selion.annotations.WebTest;import com.paypal.selion.platform.grid.Grid;import com.paypal.selion.platform.html.Button;import com.paypal.selion.platform.html.TextField;import com.paypal.selion.platform.utilities.WebDriverWaitUtils;import com.paypal.selion.reports.runtime.WebReporter;public class Demo { //testNg标记 @Test //SeLion标记 用于指示该测试是web测试 @WebTest public void DemoTest1() throws InterruptedException { // 打开百度首页 Grid.driver().get("http://www.baidu.com/"); // 定义搜索框 TextField field = new TextField("id=kw"); // 等待网页夹在完成并且搜索框出现 WebDriverWaitUtils.waitUntilElementIsPresent(field.getLocator()); // 搜索selion关键字 field.type("SeLion"); //点击 百度一下 按钮 Button button = new Button("id=su"); button.click(); //自动截图并输出到log中去 WebReporter.log("Baidu Demo", true, true); }}
通过上面测试百度首页的代码可以看到SeLion为我们封装了webdriver, TextField, Button, 等待对象出现,自动截图并且输入到log等功能。对于一个这样一个简单的baidu首页测试,如果我们完全自己封装实现这些功能,会用大量的代码去实现,由此可见在SeLion中,已经替我们完成了自动化测试需要用到的功能,我们只需要简单调用就能实现,大大提高我们开发代码的效率。
五:创建testNg的xml文件,我们在{project}/src/test/resources路径下创建SampleSuite.xml的文件并加入下面代码:
六:完成上面的过程后,我们可以直接该测试查看测试过程和结果:
1) 直接在eclipse中右键用testNg执行该xml文件
2) 使用如下Maven命令去执行
mvn clean test -DsuiteXmlFile=src/test/resources/SampleSuite.xml
执行后,我们就会看到启动firefox浏览器,打开百度首页输入selion关键字搜索,执行完成后,会自动生成test-output的文件夹,里面会看到一份带截图的漂亮的html统计report。到此一个完成的测试过程就完成了。