天天看點

行為驅動:Cucumber + Selenium + Java(五)

在上一篇中,我們介紹了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測試報告。