TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] PAGE \* MERGEFORMAT 1 TESTNG TRONG SELENIUM 1. TestNG là gì ? Khi bạn đã thực hiện tìm kiếm các phần tử, nhập/xuất và thêm các thông tin, tương tác với chúng, vậy làm cách nào để chúng ta kiểm tra các thao tác chúng ta làm là đúng và chính xác ? TestNG là một framework test, thực hiện quản lý các test suite/test case, đồng thời quy hoạch và quyết định thứ tự thực thi, hỗ trợ xây dựng báo cáo sau khi thực thi. Các đặc điểm của TestNG: ❖ TestNG được viết bằng Java. ❖ TestNG sẽ config suites và tests thông qua file XML, thường được đặt tên là testng.xml. ❖ TestNG sẽ cho phép bạn config để nhặt ra những packages / Classes / Methods mà bạn muốn hoặc không muốn thực thi, hỗ trợ quy hoạch test Methods ở các Classes khác nhau thành các group độc lập cùng các config riêng. ❖ Cho phép cấu hình parameters vào các test Methods để linh hoạt hơn việc fix cứng các param trong code (Tham khảo khi xây dựng Framework). ❖ TestNG phát triển public API dành cho tuỳ chỉnh (Add thêm functions hoặc extensions).
TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] PAGE \* MERGEFORMAT 1 Cài đặt/Cấu hình: Add dependency cho pom file (Copy dependency tại https://mvnrepository.com/artifact/org.testng/testng): <!-- https://mvnrepository.com/artifact/org.testng/testng --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.4.0</version> </dependency> TestNG life cycle: Xây dựng testsuit để thực thi: SimpleSuite.xml 2. Annotation @Test Annotation đánh dấu method hoặc class là kịch bản thực thi trong TestNG. Chúng ta có thể thêm annotation này vào method cụ thể hoặc cả class (nếu bạn thêm cho class thì nó sẽ thực thi toàn bộ các public method có trong class đó)
TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] PAGE \* MERGEFORMAT 1 Các thuộc tính (Attribute) cơ bản của Annotation @Test: ❖ alwaysRun: mặc định là false, nó sẽ thực thi kịch bản của bạn cả khi các method phụ thuộc fail, và ignore nếu nó không có dependency method (phụ thuộc) ❖ enabled: mặc định là true, sử dụng để cho phép thực thi hoặc không với kịch bản của bạn ❖ description: bổ sung thêm thông tin mô tả cho kịch bản kiểm thử của bạn. ❖ expectedExceptions: dùng để xác định exception mà Method có thể gặp phải. ❖ timeOut: thời gian tối đa có thể được thực thi, nếu quá thì sẽ bị timeout và return fail (đơn vị là mili giây) ❖ dataProvider: Phục vụ cho Data Driven (Sử dụng ở bài học xây dựng Framework) ❖ dataProviderClass: Phục vụ cho Data Driven (Sử dụng ở bài học xây dựng Framework) ❖ dependsOnGroups: Danh sách các group mà kịch bản phụ thuộc. ❖ dependsOnMethods: Danh sách các method mà kịch bản phụ thuộc. ❖ groups: Tên group, những kịch bản mà có chung tên group sẽ tạo thành 1 tập hợp (giống như khai báo trong xml - test ) ❖ priority: Độ ưu tiên để thực thi và quyết định thứ tự chạy (Giá trị nhỏ thì sẽ được ưu tiên hơn) Lưu ý: Trong 1 @Test có thể áp dụng nhiều annotation cùng với nhau. 3. Assertions: Assert là việc xác nhận/kiểm tra phần tử trên web có hoạt động đúng như chúng ta mong muốn hay không (Tương tự conditions trong Java). Các phương thức cơ bản: ❖ assertEquals(actual, expected) : Dùng để so sánh bằng nhau 2 phần tử có cùng TYPE. Method này có thể so sánh rất nhiều loại: dữ liệu nguyên thủy như int, long, double, char, boolean; String; Object; Collections; Maps… ❖ assertNotEquals(actual, expected): Tương tự như phần trên, chỉ khác là so sánh KHÔNG bằng nhau. ❖ assertTrue(boolean condition): Sử dụng khi mong đợt kết quả trả về là true (tương đương assertEquals(actual, expected) khi actual và expected có TYPE là boolean). ❖ assertFalse(boolean condition): Sử dụng khi mong đợt kết quả trả về là false. ❖ assertNull(Object): Sử dụng trong trường hợp object mong đợi là null ❖ assertNotNull(Object): Sử dụng trong trường hợp object mong đợi là not null Tham khảo thêm tại: https://javadoc.io/doc/org.testng/testng/7.4.0/index.html