Dưa chuột - Bảng dữ liệu
Trong khi làm việc về tự động hóa, chúng tôi có thể gặp phải nhiều tình huống khác nhau. Mỗi kịch bản mang một ý nghĩa và nhu cầu khác nhau.
Ngay từ đầu, chúng tôi đã lấy một ví dụ về chức năng đăng nhập cho một trang mạng xã hội, nơi chúng tôi chỉ có hai tham số đầu vào được thông qua. Hãy nghĩ về một số khả năng khác. Còn chức năng “Đăng ký người dùng mới” thì sao? Thông thường, thông số đầu vào có thể là gì khi đăng ký người dùng mới cho một trang mạng xã hội? Một cái gì đó như sau -
- Tên tài khoản
- Địa chỉ email
- Password
- Nhập lại mật khẩu
- Birthdate
- Gender
- Số điện thoại
Feature - Đăng ký người dùng mới.
Xác minh rằng đăng ký người dùng mới không thành công sau khi chuyển các đầu vào không chính xác.
Vì tôi đang ở trên một trang đăng ký người dùng mới.
Khi tôi nhập tên người dùng và địa chỉ e-mail làm địa chỉ email và mật khẩu, và nhập lại mật khẩu là và Ngày sinh là và Giới tính là và số điện thoại thì việc đăng ký người dùng sẽ không thành công.
Thoạt nhìn có vẻ hơi lộn xộn. Vì vậy, có cách nào tốt hơn để quản lý khối lượng đầu vào như vậy không? Câu trả lời có thể là "Bảng dữ liệu". Bảng dữ liệu là một tập hợp dữ liệu đầu vào được cung cấp cho một thẻ. Thẻ này có thể là GIVEN, WHEN hoặc THEN.
Hãy viết kịch bản trên với sự trợ giúp của bảng dữ liệu và nó sẽ giống như sau:
Vì tôi đang ở trang đăng ký người dùng mới
Khi tôi nhập dữ liệu hợp lệ trên trang
| Fields | Values |
| First Name | Tom |
| Last Name | Kenny |
| Email Address | [email protected] |
| Re-enter Email Address | [email protected] |
| Password | Password1 |
| Birthdate | 01 |
Sau đó, đăng ký người dùng sẽ thành công.
Thí dụ
Hãy tự động hóa một ví dụ về bảng dữ liệu.
Step 1 - Tạo một Maven Test Project có tên là “DataTableTest”.
Đi tới Tệp → Mới → Khác → Maven → Dự án Maven → Tiếp theo.
Cung cấp group Id (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 artifact Id (Id tạo tác là tên của bình 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ị 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 dataTable Dưới src/test/java
Step 3 - Tạo tập tin Tính năng.
Tạo một tệp tính năng, có tên là dataTable.feature bên trong gói dataTable (xem phác thảo kịch bản phần để biết các bước chi tiết hơn).
Viết đoạn văn bản sau.
Feature - Bảng dữ liệu
Xác minh rằng đăng ký người dùng mới không thành công sau khi chuyển các đầu vào không chính xác.
Scenario:
Vì tôi đang ở trang đăng ký người dùng mới
Khi tôi nhập dữ liệu không hợp lệ trên trang
| Fields | Values |
| First Name | Tom |
| Last Name | Kenny |
| Email Address | [email protected] |
| Re-enter Email Address | [email protected] |
| Password | Password1 |
| Birthdate | 01 |
Sau đó, đăng ký người dùng sẽ không thành công
Lưu các tập tin.
Step 4 - Tạo tệp định nghĩa bước.
Tạo tệp định nghĩa bước có tên là 'dataTable.java' bên trong gói dataTable (xem phác thảo kịch bản phần để biết các bước chi tiết hơn).
Viết đoạn mã sau.
package dataTable;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then;
import cucumber.annotation.en.When;
import cucumber.table.DataTable;
public class stepdefinition {
WebDriver driver = null;
@Given("^I am on new user registration page$")
public void goToFacebook() {
//Intiate web browser instance. driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When("^I enter invalid data on the page$")
public void enterData(DataTable table){
//Initialize data table
List<list> data = table.raw();
System.out.println(data.get(1).get(1));
//Enter data
driver.findElement(By.name("firstname")).sendKeys(data.get(1).get(1));
driver.findElement(By.name("lastname")).sendKeys(data.get(2).get(1));
driver.findElement(By.name("reg_email__")).sendKeys(data.get(3).get(1));
driver.findElement(By.name("reg_email_confirmation__")).
sendKeys(data.get(4).get(1));
driver.findElement(By.name("reg_passwd__")).sendKeys(data.get(5).get(1));
Select dropdownB = new Select(driver.findElement(By.name("birthday_day")));
dropdownB.selectByValue("15");
Select dropdownM = new Select(driver.findElement(By.name("birthday_month")));
dropdownM.selectByValue("6");
Select dropdownY = new Select(driver.findElement(By.name("birthday_year")));
dropdownY.selectByValue("1990");
driver.findElement(By.className("_58mt")).click();
// Click submit button driver.findElement(By.name("websubmit")).click();
}
@Then("^User registration should be unsuccessful$")
public void User_registration_should_be_unsuccessful() {
if(driver.getCurrentUrl().equalsIgnoreCase("https://www.facebook.com/")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
}
Lưu các tập tin.
Step 5 - Tạo tệp lớp á hậu.
Tạo lớp chạy có tên là runTest.java bên trong gói.
Viết đoạn mã sau.
package dataTable;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class runTest { }
Lưu các tập tin.
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, Chạy dưới dạng.
Chọn thử nghiệm JUnit.
Bạn có thể quan sát những điều sau khi thực hiện thành công.
Trang web Facebook được tải.
Dữ liệu sẽ được nhập trên trang đăng ký.
Nút gửi sẽ được nhấp vào.
Chúng ta sẽ thấy rằng trang chủ sẽ không được hiển thị và "Test Pass" sẽ được viết trên bảng điều khiển.