TestNG Tạo báo cáo trong Selenium: Làm thế nào để tạo ra?
⚡ Tóm tắt thông minh
TestNG Báo cáo là các tệp kết quả HTML mặc định mà TestNG Sau mỗi lần chạy, chương trình sẽ ghi vào thư mục test-output, hiển thị các trường hợp kiểm thử nào đã vượt qua, thất bại hoặc bị bỏ qua, cùng với bất kỳ nhật ký nào của Reporter.
Những gì đang có TestNG Báo cáo?
TestNG Báo Cáo là các báo cáo HTML mặc định được tạo sau khi các trường hợp thử nghiệm được thực thi bằng cách sử dụng TestNG. Những báo cáo này giúp bạn xác định thông tin về các trường hợp thử nghiệm và trạng thái của dự án. TestNG báo cáo trong Selenium Ghi lại ba kết quả cho mỗi phương pháp kiểm thử — đạt, không đạt và bỏ qua — để bạn có thể kiểm tra dữ liệu về các trường hợp kiểm thử một cách nhanh chóng.
Việc tạo báo cáo rất quan trọng khi bạn thực hiện Kiểm tra tự động cũng như Kiểm tra thủ công.
- Bằng cách nhìn vào kết quả, bạn có thể dễ dàng xác định có bao nhiêu trường hợp kiểm thử đạt, không thành công và bị bỏ qua.
- Bằng cách nhìn vào báo cáo, bạn sẽ biết được tình trạng của dự án.
Selenium WebDriver được sử dụng để tự động hóa ứng dụng web, nhưng nó không tự tạo ra bất kỳ báo cáo nào.
- TestNG sẽ tạo ra báo cáo mặc định.
- Khi bạn chạy tệp testng.xml và làm mới dự án, bạn sẽ nhận được một thư mục test-output, và thư mục đó chứa kết quả báo cáo từ quá trình chạy tệp. TestNG.
- Nhấp chuột phải vào tệp emailable-report.html và chọn tùy chọn "Mở bằng trình duyệt web".
Lưu ý: Hành vi được mô tả ở đây không thay đổi trong TestNG 7.x. Các bản phát hành từ TestNG Từ phiên bản 7.6 trở đi, JDK yêu cầu phiên bản 11 trở lên, vì vậy các dự án cũ hơn có thể cần nâng cấp phiên bản JDK trước khi báo cáo được tạo ra.
các loại TestNG Báo cáo trong thư mục kết quả kiểm tra
Trước khi mở bất kỳ tập tin nào, việc biết thư mục test-output thực sự chứa những gì sẽ rất hữu ích. TestNG Chương trình tạo ra một số hiện vật trong mỗi lần chạy, và mỗi hiện vật trả lời một câu hỏi khác nhau.
| Tệp hoặc thư mục | Nó chứa đựng điều gì? | Khi nó hữu ích |
| index.html | Báo cáo đích liên kết đến các chế độ xem kết quả, nhóm, thời gian và đầu ra của người báo cáo. | Phân tích chi tiết một lượt chạy. |
| emailable-report.html | Một trang duy nhất tóm tắt các phương thức đã thực hiện thành công, thất bại và bị bỏ qua cho mỗi lớp. | Chia sẻ kết quả với những người không tham gia vào dự án. |
| testng-results.xml | Dữ liệu XML có thể đọc được bằng máy tính, được tạo bởi trình báo cáo XML tích hợp sẵn, bao gồm trạng thái và thời lượng cho từng phương pháp. | Cung cấp dữ liệu cho bảng điều khiển hoặc trình phân tích cú pháp tùy chỉnh. |
| junitreports | JUnit- Định dạng các tệp XML, mỗi tệp dành cho một lớp kiểm thử. | Bất kỳ plugin CI nào đọc JUnit Định dạng kết quả. |
| testng-failed.xml | Một tập tin báo lỗi được tạo ra, chỉ liệt kê các phương thức bị lỗi. | Chỉ chạy lại những lỗi thay vì toàn bộ bộ kiểm thử. |
Hai tệp HTML này là những tệp mà hướng dẫn này sẽ mở tiếp theo, vì vậy hướng dẫn bên dưới bắt đầu với emailable-report.html.
Cách tạo báo cáo trong Selenium
Phương pháp 1: emailable-report.html
- Nhấp vào tùy chọn “emailable-report.html”
- Bấm vào tùy chọn trình duyệt web
Ảnh chụp màn hình bên dưới cho thấy tệp emailable-report.html đang được mở từ thư mục test-output.
Các báo cáo đầu ra trong TestNG báo cáo sẽ trông như dưới đây nếu cả hai lớp đều được thông qua:
Hãy xem xét tình huống trong đó bạn cố tình thất bại trong trường hợp thử nghiệm, tức là lớp DemoB. Sau đó chuyển đổi cả hai lớp thành tệp bộ testng.xml và chạy nó. Sau đó, kết quả sẽ như thế này. Nó sẽ hiển thị trường hợp thử nghiệm thất bại.
Đây là kết quả của lớp DemoB:
Tương tự, kết quả của Class DemoA sẽ như thế này:
Phương pháp-2: index.html
- Nhấp chuột phải vào index.html từ thư mục dự án.
- Chọn tùy chọn mở bằng trình duyệt web. Nó sẽ hiển thị kết quả theo thứ tự sau.
Ảnh chụp màn hình bên dưới cho thấy tệp index.html được mở từ thư mục dự án.
Kết quả sẽ như thế này:
Phương pháp-3: Lớp phóng viên
Cùng với những TestNG các phương thức tạo báo cáo, bạn có thể sử dụng tệp object.properties để lưu trữ nhật ký do hệ thống tạo cũng như nhật ký do người dùng tạo. Nhưng một trong những cách đơn giản nhất để lưu trữ thông tin nhật ký trong quá trình kiểm tra là sử dụng Lớp phóng viên.
Phóng viên.đăng nhập Selenium là một lớp có mặt trong TestNG cho Selenium Báo cáo. Nó cung cấp 4 phương pháp khác nhau để lưu trữ thông tin nhật ký, đó là:
- Reporter.log(Chuỗi s);
- Reporter.log(Chuỗi s, Boolean logToStandardOut);
- Reporter.log(Chuỗi s, cấp int);
- Reporter.log(Chuỗi s, mức int, Boolean logToStandardOut);
Tham số thứ hai quyết định xem thông báo có được hiển thị trên bảng điều khiển cũng như trong báo cáo hay không, và tham số level kiểm soát mức độ chi tiết của thông báo.
Ví dụ:
Tạo hai lớp như DemoA và DemoB và viết đoạn mã sau vào bên trong các lớp đó.
Đối với Lớp DemoA;
- Code Đối với DemoA đã được giải thích ở trên. Ở đây bạn đang sử dụng log của lớp Reporter. (Để triển khai một lớp báo cáo riêng, lớp đó phải triển khai giao diện org.testng.IReporter.)
- Phương thức log là một phương thức tĩnh của lớp Reporter. Vậy là bạn đang truy cập phương thức đó thông qua lớp Reporter.
- Phương thức log được sử dụng để lưu trữ thông tin log được ghi bên trong chương trình. Bằng cách xem thông tin nhật ký, bạn sẽ dễ dàng biết chính xác nơi dừng thực hiện chương trình.
Ảnh chụp màn hình bên dưới hiển thị các lệnh gọi Reporter.log được thực hiện bên trong lớp DemoA.
Đối với lớp DemoB:
- Bây giờ, hãy tạo tệp testng.xml bằng cách chọn hai lớp này và
- Chọn chạy dưới dạng và
- Bấm vào chuyển đổi sang testng.
- Sau đó chạy file testng.xml này bằng cách chọn run as và chọn testng suite.
- Sau đó làm mới dự án, mở thư mục đầu ra thử nghiệm.
- Trong thư mục test-output, hãy mở emailable-report.html. Nó sẽ trông như thế này:
Tương tự, bạn cũng sẽ có một Đầu ra cho dự án Demo B.
- Trong thư mục test-output, hãy mở tệp index.html. Nội dung sẽ trông như sau:
Bấm vào đầu ra của phóng viên. Nó sẽ mở thông tin ghi nhật ký bất cứ điều gì được viết trong phương pháp thử nghiệm.
Bấm vào Thời báo. Nó sẽ hiển thị mất bao nhiêu thời gian để chạy phương thức thử nghiệm có trong lớp bằng cách sử dụng TestNG công cụ báo cáo.
Làm thế nào để tùy chỉnh TestNG Báo cáo với ITestListener và IReporter
Ba phương pháp trên đều sử dụng bất cứ thứ gì TestNG Theo mặc định, nó sẽ tạo ra giao diện này. Khi một nhóm cần bố cục khác, các trường bổ sung hoặc chế độ xem tiến độ trực tiếp, TestNG Nó cung cấp hai điểm mở rộng thay vì yêu cầu bạn vá báo cáo mặc định.
- ITestListener Bạn sẽ nhận được thông báo theo thời gian thực, khi mỗi bài kiểm tra bắt đầu, thành công, thất bại hoặc bị bỏ qua. Hãy sử dụng chức năng này khi cần thu thập thông tin ngay tại thời điểm sự kiện xảy ra — ví dụ như ảnh chụp màn hình khi xảy ra lỗi.
- phóng viên Thông báo được gửi một lần, sau khi mỗi bộ kiểm thử hoàn tất, và nhận được các đối tượng mô tả toàn bộ quá trình chạy. Hãy sử dụng nó khi đầu ra là một tài liệu hoàn chỉnh, chẳng hạn như PDF hoặc trang HTML tùy chỉnh.
Một trình lắng nghe đẩy từng kết quả vào báo cáo thông qua lớp Reporter trông như thế này.
import org.testng.ITestListener; import org.testng.ITestResult; import org.testng.Reporter; public class ReportListener implements ITestListener { @Override public void onTestSuccess(ITestResult result) { Reporter.log("PASSED: " + result.getName(), true); } @Override public void onTestFailure(ITestResult result) { Reporter.log("FAILED: " + result.getName(), true); } @Override public void onTestSkipped(ITestResult result) { Reporter.log("SKIPPED: " + result.getName(), true); } }
Việc đăng ký trình lắng nghe được thực hiện trong cùng tệp testng.xml mà bạn đã tạo cho DemoA và DemoB.
<suite name="Demo Suite"> <listeners> <listener class-name="ReportListener" /> </listeners> <test name="Demo Test"> <classes> <class name="DemoA" /> <class name="DemoB" /> </classes> </test> </suite>
Có hai tùy chọn dòng lệnh mà bạn nên biết trong quá trình thử nghiệm. -d Tùy chọn này thay đổi thư mục lưu trữ báo cáo, và -usedefaultlisteners false Tắt các trình báo cáo tích hợp sẵn để chỉ trình lắng nghe của riêng bạn hoạt động. Cả hai đều được mô tả trong tài liệu chính thức. TestNG ghi nhật ký và tài liệu kết quảĐiều này cũng ghi lại các thuộc tính được chấp nhận bởi trình báo cáo XML tích hợp sẵn.
Một trình lắng nghe được đăng ký một lần và sau đó áp dụng cho mọi lớp trong bộ ứng dụng, đó là lý do tại sao các nhóm vận hành quy mô lớn lại sử dụng hệ thống này. kiểm tra tự động hóa Các bộ kiểm thử thường thích sử dụng phương pháp này hơn là thêm thủ công các dòng ghi nhật ký vào từng phương thức kiểm thử.
TestNG Báo cáo mặc định so với ExtentReports so với Allure
Các báo cáo mặc định đủ dùng cho một bộ ứng dụng nhỏ, nhưng chúng không có lịch sử và không có biểu đồ. Hai thư viện mã nguồn mở thường được bổ sung khi bộ ứng dụng phát triển, và cả hai đều hoạt động với... TestNG.
| Khả Năng | TestNG mặc định | Mức độ báo cáo | Báo cáo quyến rũ |
| Nỗ lực thiết lập | Không có — được tạo tự động | Thêm thư viện và viết mã báo cáo. | Thêm bộ chuyển đổi, sau đó tạo báo cáo từ kết quả. |
| Biểu đồ và bảng thông tin | Không | Có | Có |
| Ảnh chụp màn hình | Chỉ thông qua đánh dấu Reporter.log | API đính kèm tích hợp sẵn | API đính kèm tích hợp sẵn |
| Lịch sử và xu hướng chạy | Không | Thông qua thành phần máy chủ tùy chọn | Vâng, từ các kết quả đã lưu trước đó. |
| Phạm vi khung | TestNG có thể | Java và .NET | Khung bất khả tri |
Hãy bắt đầu với các báo cáo mặc định khi bộ báo cáo còn nhỏ. Sau đó chuyển sang... Mức độ báo cáo khi các bên liên quan yêu cầu bảng điều khiển dễ đọc, và để Báo cáo quyến rũ Khi lịch sử kiểm thử không ổn định trên các bản dựng trở thành vấn đề quan trọng. Cho dù bạn chọn phương pháp nào, báo cáo thường được công bố bởi công việc xây dựng, điều này đã được đề cập trong phần... Jenkins tích hợp liên tục hướng dẫn.












