TestNG cho phép bạn chạy các phương pháp thử nghiệm, các lớp thử nghiệm và các trường hợp thử nghiệm song song bên trong dự án của bạn. Bằng cách thực hiện thực thi song song, chúng ta có thể giảm 'thời gian thực thi' khi các thử nghiệm được bắt đầu và thực hiện đồng thời trong các luồng khác nhau.
Ở đây chúng ta sẽ thấy cách chạy nhiều lớp (hay còn gọi là các bộ khác nhau) bằng TestNG.
Bước 1) Tạo tệp TestNG.xml để thực hiện kiểm tra
Để làm điều đó, hãy làm theo các bước dưới đây.
- Tạo một dự án mới trong nhật thực
- Tạo hai gói trong các dự án (đặt tên chúng là com.suite1 và com.suite2)
- Tạo một lớp trong mỗi gói (đặt tên chúng là Flipkart.java và Snapdeal.java) và sao chép mã dưới đây trong các lớp tương ứng
- Tạo một tệp mới trong dự án của bạn và đặt tên là testng.xml (Đảm bảo rằng bạn đã cài đặt plugin thử nghiệm cho eclipse, hướng dẫn có sẵn tại đây). Testng.xml chứa tất cả cấu hình (tên lớp, tên thử nghiệm và tên bộ.
Flipkart.java
gói com.suite1;nhập java.util.concurrent.TimeUnit;nhập org.openqa.selenium.Alert;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.WebElement;nhập org.openqa.selenium.firefox.FirefoxDriver;nhập org.openqa.selenium.interaction.Actions;nhập org.testng.annotations.AfterClass;nhập org.testng.annotations.BeforeClass;nhập org.testng.annotations.Test;lớp công khai Flipkart {Trình điều khiển WebDriver = mới FirefoxDriver ();Tên người dùng chuỗi = ""; // Thay đổi thành tên người dùng và mật khẩu của bạnMật khẩu chuỗi = "";// Phương pháp này là để điều hướng URL của flipkart@BeforeClasspublic void init () {driver.manage (). window (). Maxim ();driver.manage (). timeouts (). implicitWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// Để đăng nhập flipkart@Kiểm trađăng nhập public void () {driver.findElement (By.partialLinkText ("Đăng nhập")). click ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (tên người dùng);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (mật khẩu);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). click ();}// Tìm kiếm sản phẩm@Kiểm trapublic void searchAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (By.cssSelector ("search-bar-submit.fk-font-13.fk-font-bold")).nhấp chuột();// chọn mục đầu tiên trong kết quả tìm kiếmString css = ".gd-row.browse-grid-row: nth-of-type (1)> div: nth-child (1)> div> div: nth-child (2)> div> a";driver.findElement (By.cssSelector (css)). click ();}@Kiểm trapublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).nhấp chuột();driver.findElement (By.cssSelector (". remove.fk-inline-block")). click ();Alert a = driver.switchTo (). Alert ();a.accept ();}@Kiểm trapublic void đăng xuất () {Actions s = Hành động mới (trình điều khiển);WebElement user = driver.findElement (By.partialLinkText (tên người dùng));s.moveToElement (người dùng) .build (). performance ();driver.findElement (By.linkText ("Đăng xuất")). click ();}@Sau giờ họcpublic void thoát () {trình điều khiển.close ();}}
SnapDeal.java
gói com.suite2;nhập java.util.concurrent.TimeUnit;nhập org.openqa.selenium.Alert;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.WebElement;nhập org.openqa.selenium.firefox.FirefoxDriver;nhập org.openqa.selenium.interaction.Actions;nhập org.testng.annotations.AfterClass;nhập org.testng.annotations.BeforeClass;nhập org.testng.annotations.Test;lớp công khai SnapDeal {Trình điều khiển WebDriver = mới FirefoxDriver ();Tên người dùng chuỗi = ""; // Thay đổi thành tên người dùng và mật khẩu của bạnMật khẩu chuỗi = "";Chuỗi pinCode = "";// Phương pháp này là để điều hướng URL snapdeal@BeforeClasspublic void init () {driver.manage (). window (). Maxim ();driver.manage (). timeouts (). implicitWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// Để đăng nhập flipkart@Kiểm trađăng nhập public void () {driver.findElement (By.xpath ("// button [text () = 'Login']")). click ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).nhấp chuột();driver.findElement (By.id ("j_username")). sendKeys (tên người dùng);driver.findElement (By.id ("j_password_login")). sendKeys (mật khẩu);driver.findElement (By.id ("signin_submit")). click ();driver.switchTo (). defaultContent ();}// Tìm kiếm sản phẩm@Kiểm trapublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). click ();// chọn mục đầu tiên trong kết quả tìm kiếmString css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). click ();}@Kiểm trapublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [chứa (text (), 'Silver')]")). click ();driver.findElement (By.id ("pincode-check")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). click ();driver.findElement (By.cssSelector ("i [title = 'Delete Item']")). click ();Alert a = driver.switchTo (). Alert ();a.accept ();}@Kiểm trapublic void đăng xuất () {driver.findElement (By.linkText ("BẮT ĐẦU MUA SẮM NGAY")). click ();Actions s = Hành động mới (trình điều khiển);WebElement user = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (người dùng) .build (). performance ();driver.findElement (By.linkText ("Đăng xuất")). click ();}@Sau giờ họcpublic void thoát () {trình điều khiển.close ();}}
TestNg.xml
Cấu trúc dự án cuối cùng trông giống như bên dưới,
Bước 2) Thực hiện song song trong TestNG
Sau khi tạo tệp xml như hình trên, bước tiếp theo, chúng ta sẽ thực hiện kiểm tra song song. Dưới đây là mã.
1) đếm luồng : Điều này được sử dụng để thực thi song song, dựa trên tập lệnh số. Nó sẽ thực hiện theo thứ tự song song hoặc tuần tự.
2) verbose : Nó được sử dụng để ghi lại các chi tiết thực thi trong bảng điều khiển. Giá trị phải là 1-10. Chi tiết nhật ký trong cửa sổ bảng điều khiển sẽ chi tiết và rõ ràng hơn khi bạn tăng giá trị của thuộc tính verbose trong tệp cấu hình testng.xml.
3) name : Tên của bộ. Đây là "Gmail Suite"
4) Song song : Để chạy các tập lệnh song song, giá trị có thể là các bài kiểm tra / lớp / phương thức / bộ. Giá trị mặc định không có
Nhấp chuột phải vào testng.xml và chọn chạy dưới dạng thử nghiệm, sau khi thành công, bạn sẽ thấy tất cả kết quả
Khi bạn thực thi đoạn mã trên, bạn sẽ nhận được kết quả sau.
Đầu ra:
1) tên của bộ được cung cấp trong testng.xml
2) tên của bài kiểm tra được đưa ra trong testng.xml
3) tên của lớp được cung cấp trong testng.xml
4) tên phương thức được chú thích bằng @Test trong tệp .java
Tương tự như vậy, nó cũng sẽ thực thi bộ thử nghiệm cho giao dịch nhanh.
Phần kết luận:
Ở đây chúng ta đã thấy trong ví dụ trên, cách sử dụng Testng để thực hiện kiểm tra song song. TestNG cung cấp một tùy chọn để thực hiện song song nhiều bài kiểm tra trong một tệp cấu hình duy nhất (XML).