在上一篇中,我們介紹了Selenium + Cucumber + Java架構下的測試用例參數化/資料驅動,這一篇我們來使用maven去搭建cucumber架構以及實作測試報告。
5.1 為什麼要用maven
我們在第一篇裡是用手工下載下傳jar包的形式去配置的我們的cucumber架構,這是出于學習的目的。實際上,真實項目中一般會使用maven去做環境搭建,也會更友善。
Apache Maven, 是一個軟體(特别是Java軟體)項目管理及自動建構工具,基于項目對象模型(POM)概念,Maven利用一個中央資訊片段能夠管理一個項目的建構,報告和文檔等步驟。
一般來說,建構工具有以下功能:
1)編譯源代碼
2)拷貝資源
3)編譯和運作測試腳本
4)項目打包
5)項目部署
7)清除
Maven使用一個pom.xml檔案來實作以上功能,檔案裡面主要包含以下内容:
1)項目的描述
2)名稱,版本,源碼路徑,依賴關系
3)插件
4)建構配置簡介
5)預設使用XML
5.2 安裝maven
安裝maven和安裝java jdk或者Jmeter差不多,都是下載下傳檔案,解壓到一個路徑,然後配置環境變量,最後在cmd輸入檢視版本号,來檢查是否安裝成功。
網上有很多maven安裝的教程,這裡不再贅述。
Maven下載下傳位址:http://maven.apache.org/download.cgi
5.3 使用maven配置cucumber項目
在eclipse中建立一個maven項目CucumberMVNProject,打開項目自帶的pom.xml檔案,加入以下依賴資訊:
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-core</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>org.picocontainer</groupId>
<artifactId>picocontainer</artifactId>
<version>2.14</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-picocontainer</artifactId>
<version>1.2.5</version>
</dependency>
修改完畢後儲存,就可以看到eclipse會在背景開始去自動下載下傳并添加以上所有項目依賴的jar包。
5.4 測試和報告
配置好項目後,就可以按照我們之前篇幅的介紹去開始自動化代碼編寫了,編寫過程與前幾篇沒有差別。
注意在runner類中,cucumberOptions,我們加入如下選項:
format = {"pretty", "html:target/cucumber", "json:target/cucumber.json"}
執行完測試,在項目的target檔案下面,為我們生成html和json兩種格式的測試報告。
html格式的預設報告形式如下:
如果我們結合擴充報告功能,還可以生成格式更為美觀,功能更為強大的報告:
結合jenkins的cucumber report插件:
可以說,強大的報告功能是使用cucumber這個架構一個重要的優勢,特别是對于項目管理和客戶而言,征服他們有時候就需要這麼一張美觀好懂的報告。
留言回複666,下一篇我們就介紹如何實作功能更為強大的cucumber測試報告。