Đối với thực tập của tôi, tôi phải sử dụng TestNG và selen để thử nghiệm một ứng dụng web. Nhưng tôi có một vấn đề, đôi khi selen hoặc trình duyệt không hoạt động vì một số lý do ngẫu nhiên, do đó, một thử nghiệm làm việc được đánh dấu là "không thành công". Để tránh điều đó, tôi có thể sử dụng chú thích @Test(invocationCount = 4, successPercentage = 25)
, sau đó nếu thử nghiệm thành công một lần, thử nghiệm được đánh dấu là "Thành công", điều đó tốt nhưng vấn đề là giải pháp này nhân thời gian thử nghiệm 4, điều này không hiệu quả lắm .Làm thế nào để tối ưu hóa các kiểm tra testng và seleniums
Điều tôi có thể làm để giảm thời gian thử nghiệm là viết một số quy tắc "nếu thử nghiệm không thành công, chạy lại thử nghiệm này (và chỉ khi thử nghiệm thất bại), và nếu nó hoạt động thứ hai, thứ ba hoặc lần thứ tư, sau đó đánh dấu thử nghiệm này là "thành công" "Vì vậy, tôi có thể tránh các lỗi ngẫu nhiên này. Nhưng tôi không tìm thấy cách viết quy tắc này, tôi thấy rằng chúng ta có thể thêm người nghe, vì vậy chúng tôi có một phương pháp gọi là "onTestFailure
" để tôi có thể làm điều gì đó khi thử nghiệm không thành công nhưng tôi không biết cách chạy thử nghiệm.
Tôi cũng tìm thấy testng-failed.xml nơi tất cả các kiểm tra không thành công được lưu, vì vậy chúng tôi có thể chạy tệp xml này để chạy lại các thử nghiệm này, nhưng điều này sẽ xóa báo cáo khỏi lần chạy đầu tiên trước đó, nhưng tôi chỉ muốn kiểm tra không thành công được đánh dấu là "thành công" nếu lần chạy thứ hai thành công. (Tôi đã tích hợp testNG/selenium vào Jenkins, vì vậy tôi có đồ thị với tất cả các xét nghiệm, vì vậy phương pháp này không thích nghi lắm, nhưng phương pháp này không nhân thời gian thử nghiệm 4 và đây là điều tôi muốn)
Vì vậy, nếu bạn có bất kỳ đầu mối nào về cách thực hiện điều đó, nó sẽ rất tuyệt vời.
Tôi đã thử nghiệm để chạy testng-failed.xml 3 lần, và sau đó tất cả các thử nghiệm đang hoạt động và không mất nhiều thời gian. Nhưng với Jenkins, khi testng-failed.xml chạy lần cuối, điều này sẽ chỉnh sửa tệp testng-result.xml, vì vậy bây giờ biểu đồ cho biết "chạy thử 1, 1 thành công", bởi vì lần chạy cuối cùng, testng đã khởi chạy chỉ thử nghiệm này thất bại trong 3 lần đầu tiên. Phương pháp này sẽ tạo ra một đồ thị với tất cả các bài kiểm tra không thành công, nhưng tất cả các bài kiểm tra làm việc (ngoại trừ các bài kiểm tra được chạy lần thứ ba) sẽ không được chỉ định, nó không chính xác những gì tôi muốn ... bất kỳ đầu mối? – user1000499