最近公司提倡快速測試,之前ui界面自動化實在是不穩定且執行很慢,總會出現很多莫名奇妙的問題……
快速測試前提,是web響應裏面只含json格式(其實xml格式也行)數據,達到html與數據分離,
這樣就提供很大便利,數據校驗很容易,也更加精確,持續集成更快速,更精確定位問題。
大家熱情很高,用到的工具很多,
選好工具成功一大半,工具多了也發愁
下面就標題介紹下Cucumber的使用基礎
1. 安裝Cucumber請點擊,http://blog.csdn.net/musen518/article/details/45363911
2. Cucumber案例結構
a、定義features,案例集,用於描述多個場景(案例),主要由測試人員編寫維護
b、定義steps,步驟定義,實現真實測試action,可以是測試人員或開發人員編寫維護
3. features文件,
下面截圖包含兩個案例(場景=案例)
i. 場景一,帶參數且多個數據驅動測試
ii. 場景二,不帶參數,只能測試一條數據
Feature: testsuite
Scenario Outline: 登錄成功測試(有多個參數)
Given 輸入用戶名: <用戶名>
And 輸入密碼: <密碼>
When 點擊登錄
Then 登錄成功
Examples:
| 用戶名 | 密碼 |
| name1 | pwd1 |
| name2 | pwd2 |
Scenario: 登錄失敗測試(無參數)
Given 輸入用戶名: name3
And 輸入密碼: pwd3
When 點擊登錄
T
4. steps定義
a) Given註解,正則表達式,用於匹配feature文件內容,實現步驟和獲取參數
b) When註解,動作事件步驟,表示動作行爲
c) Then註解,斷言
d) 更多註解可以去,Cucumber官網文檔:https://cukes.info/docs/
</pre><pre name="code" class="java">package test;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class TestCaseSteps {
@Given("^輸入用戶名: (\\w+)$")
public void 輸入用戶名(String 用戶名) {
System.out.println(用戶名);
}
@Given("^輸入密碼: (\\w+)$")
public void 輸入密碼(String 密碼) {
System.out.println(密碼);
}
@When("^點擊登錄$")
public void 點擊登陸() {
System.out.println("登陸中……");
}
@Then("^登錄成功$")
public void 登錄成功() {
System.out.println("登錄成功");
}
@Then("^登錄失敗$")
public void 登錄失敗() throws Exception {
throw new Exception("登錄失敗");
}
}
4. 執行案例
a) 通過eclipse插件執行,必須安裝Eclipse cucumber插件
選擇feature文件,點擊右鍵Run as,選擇Cucumber feature\
b) 通過junit執行,需要加載依賴,這種方式無需安裝Cucumbereclipse插件(testng類似)
i. cucumber-junit-1.2.2.jar
ii. hamcrest-core-1.3.jar
iii. junit-4.12.jar