TestNG là một khuôn khổ Thử nghiệm bao gồm các loại thiết kế thử nghiệm khác nhau như đơn vị, chức năng, đầu cuối, giao diện người dùng và thử nghiệm tích hợp.
Bạn có thể chạy một hoặc nhiều gói (gói ở đây có nghĩa là đóng gói một nhóm lớp theo định dạng giám đốc thích hợp) bằng cách tạo XML và chạy nó thông qua maven.
Trong hướng dẫn này, bạn sẽ học-
- Nhóm TestNG với Ví dụ
- Đặt đường dẫn maven và Java trong biến môi trường (dành cho người dùng windows)
- Giới thiệu về XML và cách tạo tệp XML
- Một cơ chế khác thay vì Phân nhóm là “loại trừ” hoặc “bao gồm” trong XML thử nghiệm
- Cách chạy mã bằng tệp XML (video demo)
Nhóm TestNG với Ví dụ
Chúng tôi sử dụng các nhóm trong Testng khi,
- Chúng tôi không muốn xác định các phương pháp kiểm tra một cách riêng biệt trong các lớp khác nhau (tùy thuộc vào chức năng) và
- Đồng thời muốn bỏ qua (không thực thi) một số trường hợp kiểm thử như thể chúng không tồn tại trong mã.
- Vì vậy, để thực hiện điều này, chúng ta phải Nhóm chúng lại. Điều này được thực hiện bằng cách sử dụng cơ chế "bao gồm" và "loại trừ" được hỗ trợ trong testNG.
Trong ví dụ dưới đây, chúng tôi đã chỉ ra cú pháp của cách sử dụng các nhóm trong tệp XML.
@Test (groups = {"bonding", "strong_ties"})
Ở đây chúng tôi đang sử dụng 2 tên nhóm tức là "liên kết" và "strong_ties" (đây là những tên hợp lý có thể được thay đổi theo ý muốn của bạn).
Thẻ
Tùy chỉnh XML của bạn để chọn nhóm được đề cập từ các lớp thử nghiệm. Dưới đây được đề cập là cú pháp của cách khai báo các nhóm trong tệp XML, ví dụ:
Vì vậy, chúng ta hãy giả sử rằng có 10 phương pháp kiểm tra trong một lớp.
Trong số họ,
- 6 phương pháp được gắn thẻ trong nhóm "liên kết" và
- 4 người trong nhóm "strong_ties"
Tiếp theo, chúng ta sẽ thiết lập đường dẫn maven / Java và sử dụng IDE Eclipse để chứng minh việc sử dụng các nhóm sử dụng tệp XML trong dự án maven dựa trên Java.
Đặt đường dẫn maven và Java trong biến môi trường (dành cho người dùng windows)
Vui lòng tham khảo https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Giới thiệu về XML và cách tạo tệp XML
- Tệp XML (Ngôn ngữ Đánh dấu Có thể Mở rộng) trong khuôn khổ Maven chứa thông tin của một hoặc nhiều bài kiểm tra và được xác định bởi thẻ
. - Thông tin kiểm tra trong XML được đại diện bởi thẻ
và có thể chứa một hoặc nhiều lớp TestNG. - Một lớp Java có chứa chú thích @Test ở trên các phương thức kiểm tra được định nghĩa là các phương thức TestNG.
Nhiều thẻ được sử dụng theo một trình tự để tạo một bài kiểm traNG xml đang hoạt động như
- Đầu tiên là thẻ
, giữ một tên logic xác định thông tin đầy đủ để testNG được báo cáo để tạo báo cáo thực thi. - Thứ hai là
, lưu ý rằng đó là tên hợp lý chứa thông tin của báo cáo thực thi thử nghiệm như đạt, không đạt, bỏ qua các trường hợp thử nghiệm và các thông tin khác như tổng thời gian thực hiện và thông tin nhóm - Thứ ba là
, com.group.guru99 là gói được sử dụng và tên Lớp kiểm tra là TC_Class1.
xml version = "1.0" encoding = "UTF-8"?>
Chúng tôi sẽ sử dụng XML này cho video sắp tới.
Một cơ chế khác thay vì Nhóm là "loại trừ" hoặc "bao gồm" trong XML thử nghiệm
Giả sử bạn đang tìm cách sử dụng cơ chế nhóm phức tạp thì testNG XML tạo điều kiện cho chức năng loại trừ / bao gồm một thử nghiệm.
Thẻ loại trừ: Cú pháp cho thẻ loại trừThẻ bao gồm : Cú pháp cho thẻ bao gồm
Lưu ý: Chúng tôi có thể bao gồm / loại trừ nhiều trường hợp thử nghiệm cùng một lúc và nó cũng hoạt động với Groups.
Cách chạy mã bằng tệp XML (video demo)
Giải thích về Mã Java và XML với nhóm, loại trừ và bao gồm thẻ trong XML.
- Tình huống : Khởi chạy trang web Ngân hàng demo Guru99, xác minh một số điều trên trang đăng nhập sau đó nhập thông tin đăng nhập và xác minh lại một số điều mới trên ứng dụng khi đăng nhập.
Lưu ý : Mỗi bước mà bạn viết mã phải được khai báo trong các phương thức riêng biệt, nhưng khi được thực thi, nó sẽ thực thi các phương thức kiểm tra tùy thuộc vào các mục nhập trong tệp XML.
Phương pháp 1 : Khởi tạo Trình duyệt và khởi chạy URL (tc01LaunchURL ())
Phương pháp 2 : Xác minh Tiêu đề Trang Đăng nhập (tc02VerifyLaunchPage ())
Phương pháp 3 : Nhập userName và Password vào biểu mẫu đăng nhập (tc03EnterCredentials ())
Phương pháp 4 : Xác minh sự hiện diện của ID người quản lý trên Trang tổng quan người dùng (tc04VerifyLoggedInPage ())
Phương pháp 5 : Xác minh thêm một số liên kết trên User DashBoard (tc05VerifyHyperlinks ())
Mã cho kịch bản của chúng tôi:
gói com.group.guru99;nhập java.util.concurrent.TimeUnit;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.firefox.FirefoxDriver;nhập khẩu org.testng.Assert;nhập org.testng.annotations.Test;lớp công khai TC_Class1 {public static final WebDriver webDriver = new FirefoxDriver () ;;Chuỗi khởi chạyPageHeading = "// h3 [text () = 'Ngân hàng Guru99']";final String userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [contains (text (), 'Manger Id')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Trường hợp thử nghiệm này sẽ khởi tạo webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). Maximum ();webDriver.manage (). timeouts (). implicitWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Sẽ kiểm tra sự hiện diện của Tiêu đề trên Trang đăng nhập* /@Test (groups = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (khởi chạyPageHeading)). IsDisplayed (),"Tiêu đề Trang chủ không được hiển thị");System.out.println ("Tiêu đề Trang chủ được hiển thị");}/ *** Trường hợp kiểm tra này sẽ nhập Tên người dùng, mật khẩu và sau đó sẽ nhấp vào* nút đăng nhập* /@Test (groups = {"bonding", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (password_element)). sendKeys (password_value);webDriver.findElement (By.xpath (signIn_element)). click ();}/ *** Trường hợp thử nghiệm này sẽ xác minh sự hiện diện ID của người quản lý trên DashBoard* /@Test (groups = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"Nhãn ID người quản lý không được hiển thị");System.out.println ("Nhãn Manger Id được hiển thị");}/ *** Trường hợp thử nghiệm này sẽ kiểm tra sự hiện diện của liên kết Khách hàng mới* Và liên kết FundTransfer trong Pannel bên trái* /@Test (groups = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Siêu liên kết khách hàng mới không được hiển thị");System.out.println ("Siêu liên kết khách hàng mới được hiển thị");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Siêu liên kết Chuyển tiền không được hiển thị");System.out.println ("Siêu liên kết Chuyển tiền được hiển thị");}}
Xin lưu ý: Thông tin đăng nhập chỉ có hiệu lực trong 20 ngày, vì vậy nếu bạn đang cố chạy mã trên máy cục bộ của mình, bạn có thể gặp phải lỗi thông tin đăng nhập không hợp lệ. Vui lòng tìm các bước dưới đây để tạo thông tin đăng nhập của bạn:
- Khởi chạy http://www.demo.guru99.com
- Nhập id email của bạn vào hộp.
- Nhấp vào enter và xem chi tiết đăng nhập của bạn trên màn hình.
Giải thích mã:
Như đã đề cập ở trên, chúng tôi đã tạo 5 trường hợp thử nghiệm để thực hiện từng hành động trong các phương thức độc lập.
Bạn có thể thấy rằng đối với mọi phương thức, chúng tôi đã liên kết một tham số nhóm giữ một số giá trị trong đó.
Về cơ bản, đây là tên của các nhóm khác biệt, tức là "strong_ties" & "bonding".
- Phương thức Thứ nhất và Thứ ba được gắn thẻ "bonding", "strong_ties" có nghĩa là nếu XML được cập nhật trong bất kỳ nhóm nào, thì Test Case này sẽ chạy.
- Phương thức thứ hai chỉ được gắn thẻ vào nhóm "liên kết", điều đó có nghĩa là nếu XML được cập nhật với nhóm liên kết. Chỉ trong trường hợp đó, trường hợp thử nghiệm này sẽ chạy.
- Trường hợp thử nghiệm thứ tư được gắn thẻ vào nhóm strong_ties, có nghĩa là trường hợp thử nghiệm này sẽ chỉ chạy nếu XML được cập nhật với tên nhóm strong_ties.
- Trường hợp thử nghiệm cuối cùng nhưng không kém phần thứ năm được đính kèm với nhóm liên kết, có nghĩa là trường hợp thử nghiệm này sẽ chỉ chạy nếu XML được cập nhật với tên nhóm liên kết.
Vì vậy, tổng thể, chúng tôi có 4 kịch bản;
- Chúng tôi muốn chạy tất cả các trường hợp thử nghiệm không phân biệt tên nhóm. Trong trường hợp này, chúng tôi sẽ xóa thẻ Nhóm khỏi chạy XML.
- Chúng tôi muốn chạy thử nghiệm một vài trường hợp thử nghiệm chỉ liên quan đến một trong hai nhóm tức là strong_ties hoặc liên kết
- Xin vui lòng tham khảo:
- Trong video này, tham số Nhóm được nhận xét từ việc chạy XML. Do đó, bạn sẽ thấy tất cả các trường hợp thử nghiệm đã được thực thi.
- Tiếp tục với video, bây giờ chúng tôi đã bao gồm tên nhóm trong XML, bạn chỉ có thể thấy các trường hợp thử nghiệm cụ thể cho nhóm đó đang chạy.
- Chúng tôi đang sử dụng cơ chế Loại trừ để loại trừ trường hợp thử nghiệm:
- Xin vui lòng tham khảo
- Bạn thấy rằng chúng tôi đã sử dụng loại trừ một số trường hợp thử nghiệm (tc02) bằng cách viết tên của chúng khi chạy XML. Trong kết quả cuối cùng các trường hợp thử nghiệm được đề cập đã không chạy.
- Cuối cùng, chúng tôi đang sử dụng cơ chế kiểm tra bao gồm để bao gồm các trường hợp thử nghiệm (tc01LaunchURL, tc03EnterCredentials và tc05VerifyHyperlinks)
- Xin vui lòng tham khảo
- Trong video này, bạn sẽ thấy rằng các trường hợp thử nghiệm được đề cập trong XML chỉ đang chạy trong quá trình thực thi thử nghiệm.
Vui lòng tải xuống mã từ URL được đề cập, nó sẽ chứa tất cả các loại testXML:
Tải xuống mã trên
Phần kết luận
Ở đây chúng ta đã học được một cách tương đối mới để chạy các trường hợp kiểm thử bằng cách sử dụng XML trong dự án Maven.
Chúng tôi bắt đầu bằng cách cung cấp giới thiệu ngắn gọn về testNG và tiếp tục với đặc điểm kỹ thuật đầy đủ của các Nhóm, loại trừ và bao gồm.