Cucumber - Tùy chọn dòng lệnh

Dưa chuột có thể được sử dụng để kiểm tra hầu hết mọi hệ thống máy tính. Cho đến nay, chúng ta đã thấy cách chạy thử nghiệm bằng Eclipse IDE. Có một cách nữa để chúng ta có thể chạy thử nghiệm Cucumber đó là thông qua giao diện dòng lệnh. Vậy lợi ích của việc làm đó là gì?

Chạy bất kỳ khung thử nghiệm nào từ Terminal đều có lợi thế riêng, chẳng hạn như ghi đè các cấu hình chạy được đề cập trong mã.

Để thực hiện kiểm tra Cucumber với dấu nhắc lệnh, hãy sử dụng các bước sau sau khi cấu hình hệ thống.

Step 1- Tạo một Maven Test Project có tên commandLine.

  • Đ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 CucumberTest.

    • Định vị pom.xml tập tin.

    • 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ẽ - Sẽ mất vài phút.

Step 2 - Tạo một gói có tên “phác thảo” trong src / test / java

Step 3 - Tạo một tập tin tính năng có tên là “commandLine.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ư “commandLine.feature”

  • Viết văn bản bên dưới trong tệp và lưu nó.

    Feature - Đề cương kịch bản

    Scenario Outline - Chức năng đăng nhập cho một trang mạng xã hội.

    Cho phép người dùng điều hướng đến Facebook

    Khi tôi nhập Tên người dùng là "<tên người dùng>" và Mật khẩu là "<mật khẩu>"

    Sau đó đăng nhập sẽ không thành công

Ví dụ

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

Note- Ở đây, chú thích ví dụ mô tả phạm vi đầu vào sẽ được cung cấp khi thực thi kịch bản. Kịch bản kiểm tra sẽ được thực hiện cho mỗi đầu vào được cung cấp. Vì vậy, trong ví dụ đã cho, kịch bản thử nghiệm sẽ được thực hiện ba lần.

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à commandLine.java

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

package Outline;
 
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; i
import cucumber.annotation.en.When; 

public class stepdefinition { 
   WebDriver driver = null; 
	
   @Given("^user navigates to facebook$") 
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$") 
   public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
      driver.findElement(By.id("email")).sendKeys(arg1);
      driver.findElement(By.id("pass")).sendKeys(arg2);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^login should be unsuccessful$") 
   public void validateRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   } 
}

Note- Trong mã, chúng ta phải xác định một hàm có hai đối số đầu vào: một tên người dùng và một đối số khác sẽ dành cho mật khẩu. Vì vậy, đối với mỗi tập hợp đầu vào được cung cấp trong thẻ ví dụ, tập hợp GIVEN, WHEN và THEN sẽ được thực thi.

Step 5 - Tạo tệp lớp á hậu.

  • 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ư, runTest.java

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

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

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

public class runTest { }
  • Mở dấu nhắc lệnh.

  • Đi tới thư mục chứa gói “commandLine” này. e: \ Workspace \ LoginTest \ src> cd test \ java

  • Chạy kiểm tra lệnh mvn: Bạn sẽ thấy rằng tất cả các kịch bản, được mô tả trong tệp tính năng đã được thực thi (nếu không có bất kỳ lỗi nào). Cuối cùng, ở phía dưới, bạn sẽ tìm thấy thông tin sau.

Kết quả

This describes the total test run, along with failure if any.

Lệnh trước đó chạy mọi thứ như đã đề cập trong lớp JUnit Runner. Tuy nhiên, nếu chúng ta muốn ghi đè các cấu hình được đề cập trong Runner, sau đây là một số ví dụ để làm điều đó.

  • Bây giờ chạy lệnh mvn test - Dcucumber.options = "- help" trên dấu nhắc lệnh. Chạy điều này sẽ in tất cả các tùy chọn có sẵn.

  • Để chỉ chạy các thẻ cụ thể, hãy chạy lệnh mvn test -Dcucumber.options = "- tags @SmokeTest" trên dấu nhắc lệnh. Nó sẽ chỉ chạy các thẻ được đánh dấu bằng @SmokeTest.

  • Để thay đổi định dạng kết quả, hãy chạy lệnh E: \ Workspace \ LoginTest> mvn test -Dcucumber.options = "- plugin junit: target / Cucumber-junit-report.xml" trên dấu nhắc lệnh. Nó sẽ thay đổi báo cáo định dạng cho trình tạo báo cáo JUnit.