Intellij IDEA + Maven + Cucumber 項目 (三):簡單解釋RunCukesTest.java


1、RunCukesTest

1.1 用於啟動測試

上面運行測試的方式,這里也可以用其他啟動方式來運行。如在類RunCukesTest.java中,右鍵點擊Run RunCukesTest
 

1.2 RunCukesTest.java內容

 

[java]  view plain  copy
 
  1. @RunWith(Cucumber.class)  
  2. @CucumberOptions(  
  3.         features = {"src/test/resources/feature/"},  
  4.         format = {"pretty", "html:target/cucumber", "json:target/cucumber.json"},  
  5.         glue = {"com.cucumber"}  
  6. )  
  7. public class RunCukesTest {  
  8. }  
上述代碼的淺解

 

@RunWith(Cucumber.class) 這是一個運行器 ,指用Cucumber來運行測試

@ CucumberOptions中的features,用於指定我們項目中要運行的feature的目錄

@ CucumberOptions中的format,用於指定我們項目中要運行時生成的報告,並指定之后可以在target目錄中找到對應的測試報告

@ CucumberOptions中的glue,用於指定項目運行時查找實現step定義文件的目錄

 

 

2、BaiduSearchStepfs

2.1  對第一個feature的理解

該類是用代碼來實現feature中的具體定義步驟。Feature文件中,是通過一些關鍵字來定義各個步驟,如以下一些,實際過程中還包括更多的關鍵字,先看下Feature中的內容:

• Feature  隨着項目的進行會發現,所有的feature文件都是以該關鍵字開始。一般用來簡單的描述寫該feature實現什么功能。並在其下一行可以做更詳細的說明

例子:

     Feature:百度搜索

                   打開百度進行搜索

• Background  該關鍵字目前沒用到,但是很重要。后面有機會會詳細學習下

• Scenario    該關鍵字是用來定義具體要測試的功能點,比如常見的登錄功能等

例子:

     Scenario : 百度搜索selenium

• Given  是steps實現的一種,即是一個步驟,它是scenario中我們環境等所需要的條件.

例子:

    Given Go to the url "http://www.baidu.com/"  

• When 也是steps,表示scenario中我們執行測試例子中的某個動作等

例子:

    When  I find baidu logo

• And (or but) 和Given\When\Then的功能類似,如進行When,然后其他后續做某個操作時,用到該關鍵字

例子:

    And  Type the search text "selenium"

• Then 該關鍵字一般表示測試的預期結果,可進行斷言等

2.2  BaiduSearchStepfs.java內容

Cucumber運行時,會根據feature文件中定義的step,來查找對應的具體實現

看BaiduSearchStepfs.java文件中的方法:
[java]  view plain  copy
 
  1. @Given("^Go to the url \"([^\"]*)\"$")                                   //1  
  2.     public void go_to_the_url(String site) throws Exception {            //2  
  3.         driver = new ChromeDriver();                                     //3  
  4.         driver.manage().window().maximize();                             //4  
  5.         driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); //5  
  6.         driver.get(site);                                                //6  
  7.     }  
第1行
@Given("^Go to the url \"([^\"]*)\"$") 
用來對應feature文件中的step Given Go to the url "http://www.baidu.com/"。
這里傳了一個字符串參數,用正則表達式來匹配對應的字符串
要注意,括號里面的內容,正常是以”^”開頭、”$”結尾

第2~6行則是該步驟具體的實現內容,這里是用selenium Webdriver來實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM