坦白讲,初学者往往都是从编写脚本开始的,搭建框架就略显复杂了。那么今天送你一套Web UI自动化测试框架:Cucumber+Selenium+Java+Maven+TestNg,帮助初学者迈出自动化测试之路的第一步。
本文分为两部分:
第一部分:Step By Step 教你配置环境;
第二部分:对该Framework进行简单讲解。
敬请移驾去我的github上下载Project:https://github.com/JulyShi/cucumber-java-web
第一部分:配置环境
配置环境分为四步走:
Step 1:安装JDK,配置JAVA_HOME
Step 2:安装Maven,配置M2_HOME
Step 3:安装IntelliJ IDEA 或Eclipse
Step 4:下载并导入Project
Step 1:安装JDK,并配置JAVA_HOME
以下举个Windowe的栗子,从oracle官网下载适合自己操作系统的JDK版本.
默认安装安装JDK
配置JAVA_HOME
在命令行工具执行下属命令,检查是否安装成功。
& java -version
& java
Step 2:安装Maven,配置M2_HOME
下载Maven
配置M2_HOME,并用如下命令检测是否配置成功
$ mvn -v
Step 3:安装IntelliJ IDEA 或Eclipse
这里推荐使用IntelliJ IDEA哦。官网地址:https://www.jetbrains.com/idea/
Step 4:下载并导入Project
从我的github上下载Project:cucumber-java-web。
下载地址:https://github.com/JulyShi/cucumber-java-web
(可以下载压缩包,也可以在命令行工具中,用 $ git clone命令进行下载。)
导入Project
选择刚刚下载的Project:cucumber-java-web,选择“Maven”,并点击“Next”。
点击“Next”。
点击“Next”。
设置Java路径。
点击“Finish”,Project导入成功
配置Maven路径。
至此,环境全部配置好了。Maven Clean和Maven Install来安装依赖。
BUILD SUCCESS说明依赖安装成功,Project里已经添加好了一个简单的Scenario,用Maven test 来验证下吧。
第二部分:框架讲解
1. 目录结构
src/main/java: Source code
src/test/java: java code
- helpers/DataHelper.java:获取Excel中的测试数据
- helpersLog.java:用Log4j来记录log
- pageobjects/BaiDuHomePage.java: 百度首页的Page object
- pageobjects/BaseClass.java: 初始化WebDriver,并存放PageObjects的公共方法
- step_definitions/BaiDu_StepDefinitions.java: Step definitions. 用来解释feature中的Scenario
- step_definitions/Hooks.java: 将@Before和@After标记的方法hooks中,包含Scenario执行的先决条件,以及执行完毕后杀死进程
- step_definitions/RunCukesTest.java: 开始cucumber scenarios,以及其它cucumber options
src/test/resources: feature文件
features/test.feature: 包含所有scenarios的features
testDate/*:存放测试数据
2. Pom.xml
我已经将框架所有的依赖全部配置在了Pom文件中,这样在Maven Install时会自动下载安装这些依赖。
cucumber-java
cucumber-testing
cucumber-junit
selenium-java
junit, log4j, apache-poi, xmlapis, xerces
maven-surefire plugin
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cucumber-selenium-java-Web</groupId>
<artifactId>cucumber-java-web</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>
<name>cucumber-web</name>
<properties>
<project.build.sourchEncoding>UTF-8</project.build.sourchEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
<dependencies>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-testng</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.44.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.11-beta3</version>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.18</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
别浪费时间了,快来关注【七姑娘日记】吧