Dưa chuột - Chú thích

Annotationlà một văn bản được xác định trước, mang một ý nghĩa cụ thể. Nó cho phép trình biên dịch / thông dịch viên biết, những gì nên làm khi thực thi. Cucumber có một số chú thích sau:

  • Given -

    • Nó mô tả điều kiện tiên quyết để kiểm tra được thực hiện.

    • Ví dụ - GIVEN Tôi là người dùng Facebook

  • When -

    • Nó xác định điểm kích hoạt cho bất kỳ thực thi kịch bản thử nghiệm nào.

    • Ví dụ - KHI tôi nhập "<tên người dùng>"

  • Then -

    • Sau đó, giữ kết quả mong đợi để thử nghiệm được thực hiện.

    • Ví dụ - THEN đăng nhập sẽ thành công.

  • And -

    • Nó cung cấp điều kiện AND logic giữa hai câu lệnh bất kỳ. AND có thể được sử dụng cùng với câu lệnh GIVEN, WHEN và THEN.

    • Ví dụ - KHI tôi nhập "<tên người dùng>" VÀ tôi nhập "<mật khẩu>" của mình

  • But -

    • Nó biểu thị điều kiện OR logic giữa hai câu lệnh bất kỳ. OR có thể được sử dụng cùng với câu lệnh GIVEN, WHEN và THEN.

    • Ví dụ - THEN đăng nhập sẽ thành công. NHƯNG không được thiếu trang chủ.

  • Scenario -

    • Thông tin chi tiết về tình huống trong bài kiểm tra cần được ghi lại sau từ khóa “Kịch bản:”

    • Ví dụ -

      Tình huống:

      GIVEN Tôi là người dùng Facebook

      KHI tôi nhập

      VÀ tôi nhập

      SAU ĐÓ đăng nhập sẽ thành công.

      NHƯNG không được thiếu trang chủ.

  • Scenario Outline - (Sẽ được đề cập sau)

  • Examples - (Sẽ được đề cập sau)

  • Background -

    • Nền thường có hướng dẫn về những gì cần thiết lập trước khi chạy mỗi kịch bản. Tuy nhiên, nó được thực thi sau hook “Before” (sẽ được đề cập sau). Vì vậy, điều này là lý tưởng để được sử dụng cho mã khi chúng ta muốn thiết lập trình duyệt web hoặc chúng ta muốn thiết lập kết nối cơ sở dữ liệu.

      • Ví dụ -

        Lý lịch:

        Vào trang chủ Facebook.

Tình huống mẫu

Hãy tự động hóa một kịch bản để hiểu các chú thích tốt hơn.

Step 1

Tạo một dự án thử nghiệm Maven có tên là AnnotationTest.

  • Đi tới Tệp → Mới → Khác → Maven → Dự án Maven → Tiếp theo.

  • Cung cấp Id nhóm (Id nhóm sẽ xác định dự án của bạn duy nhất trên tất cả các dự án).

  • Cung cấp Id cấu phần (Id cấu phần là tên của lọ không có phiên bản. Bạn có thể chọn bất kỳ tên nào ở dạng chữ thường).

  • Nhấp vào Kết thúc.

  • Mở pom.xml −

    • Đi tới trình khám phá gói ở phía bên trái của Eclipse.

    • Mở rộng dự án AnnotationTest.

    • Định vị tệp pom.xml.

    • Nhấp chuột phải và chọn tùy chọn, Mở bằng “Trình chỉnh sửa văn bản”.

  • Thêm phụ thuộc cho Selenium - Điều này sẽ cho biết Maven, những tệp jar Selenium nào sẽ được tải xuống từ kho lưu trữ trung tâm đến kho lưu trữ cục bộ.

    • Mở pom.xml đang ở chế độ chỉnh sửa, tạo thẻ phụ thuộc (<dependencies> </dependencies>), bên trong thẻ dự án.

    • Bên trong thẻ phụ thuộc, hãy tạo thẻ phụ thuộc (<dependency> </dependency>).

    • Cung cấp thông tin sau trong thẻ phụ thuộc.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Thêm phụ thuộc cho Cucumber-Java - Điều này sẽ cho biết Maven, những tệp Cucumber nào sẽ được tải xuống từ kho lưu trữ trung tâm đến kho lưu trữ cục bộ.

    • Tạo thêm một thẻ phụ thuộc.

    • Cung cấp thông tin sau trong thẻ phụ thuộc.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Thêm phụ thuộc cho Cucumber-JUnit - Điều này sẽ cho biết Maven, những tệp Cucumber JUnit nào sẽ được tải xuống từ kho lưu trữ trung tâm đến kho lưu trữ cục bộ.

    • Tạo thêm một thẻ phụ thuộc.

    • Cung cấp thông tin sau trong thẻ phụ thuộc.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Thêm phụ thuộc cho JUnit - Điều này sẽ cho biết Maven, những tệp JUnit nào sẽ được tải xuống từ kho lưu trữ trung tâm đến kho lưu trữ cục bộ.

    • Tạo thêm một thẻ phụ thuộc.

    • Cung cấp thông tin sau trong thẻ phụ thuộc.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Xác minh mã nhị phân.

    • Khi pom.xml được chỉnh sửa thành công, hãy lưu nó.

    • Đi tới Dự án → Sạch sẽ - Quá trình này sẽ mất vài phút.

Step 2

Tạo một gói có tên Annotation bên dưới src/test/java

  • Chọn dự án mới tạo.

  • Nhấp chuột phải và chọn 'Mới'.

  • Chọn tùy chọn là 'Gói'.

  • Đặt tên nó là 'Chú thích'.

  • Lưu nó.

Step 3

Tạo một tệp tính năng có tên annotation.feature.

  • Chọn và nhấp chuột phải vào đường viền gói.

  • Nhấp vào tệp 'Mới'.

  • Đặt tên cho tệp như outline.feature.

  • Viết văn bản sau vào tệp và lưu nó.

Feature: annotation 
#This is how background can be used to eliminate duplicate steps 

Background: 
   User navigates to Facebook Given 
   I am on Facebook login page 

#Scenario with AND 
Scenario: 
   When I enter username as "TOM"
   And I enter password as "JERRY" 
   Then Login should fail 

#Scenario with BUT 
Scenario: 
   When I enter username as "TOM" 
   And I enter password as "JERRY" 
   Then Login should fail 
   But Relogin option should be available

Step 4

Tạo tệp định nghĩa bước.

  • Chọn và nhấp chuột phải vào đường viền gói.

  • Nhấp vào tệp 'Mới'.

  • Đặt tên tệp là annotation.java

  • Viết văn bản sau vào tệp và lưu nó.

package Annotation; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class annotation { 
   WebDriver driver = null; 
   @Given("^I am on Facebook login page$") 
	
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   }
	
   @When("^I enter username as \"(.*)\"$") 
   public void enterUsername(String arg1) {   
      driver.findElement(By.id("email")).sendKeys(arg1); 
   }
	
   @When ("^I enter password as \"(.*)\"$") 
   public void enterPassword(String arg1) {
      driver.findElement(By.id("pass")).sendKeys(arg1);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^Login should fail$") 
   public void checkFail() {  
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test1 Pass"); 
      } else { 
         System.out.println("Test1 Failed"); 
      } 
      driver.close(); 
   }
	
   @Then("^Relogin option should be available$") 
   public void checkRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test2 Pass"); 
      } else { 
         System.out.println("Test2 Failed"); 
      } 
      driver.close(); 
   }
}

Step 5

Tạo tệp lớp người chạy.

  • Chọn và nhấp chuột phải vào đường viền gói.

  • Nhấp vào tệp 'Mới'.

  • Đặt tên cho tệp, chẳng hạn như runTest.java

  • Viết văn bản sau vào tệp và lưu nó.

package Annotation; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}) 

public class runTest { }

Step 6

Chạy thử nghiệm bằng cách sử dụng tùy chọn -

  • Chọn tệp runTest.java từ trình khám phá gói.

  • Nhấp chuột phải và chọn tùy chọn ‘Run as’

  • Chọn thử nghiệm JUnit.

Bạn sẽ quan sát thấy những điều sau đây khi bạn chạy tệp lớp này:

  • Facebook mở trong một phiên bản trình duyệt web Firefox mới.

  • TOM sẽ được chuyển như một đầu vào cho trường tên người dùng.

  • JERRY sẽ được chuyển làm đầu vào cho trường mật khẩu.

  • Đăng nhập sẽ được nhấp vào.

  • Thông báo sẽ được hiển thị trên trình duyệt về việc đăng nhập không thành công.

  • Trong bảng điều khiển, bạn sẽ thấy "Test Pass" được in

  • Kết quả bước 1. đến 5. Sẽ được thực thi lại cho tên người dùng là "" và mật khẩu là "".