Báo cáo html Selenium của Pytest
Nhận toàn quyền truy cập vào Selenium Python Automation Testing from Scratch and Frameworks và hơn 60.000 tiêu đề khác, với bản dùng thử miễn phí 10 ngày của O'Reilly Show
Ngoài ra còn có các sự kiện trực tuyến trực tiếp, nội dung tương tác, tài liệu chuẩn bị chứng nhận, v.v. Hướng dẫn này sẽ giúp việc kiểm tra giao diện người dùng web trở nên dễ dàng. Chúng tôi sẽ xây dựng một giải pháp thử nghiệm giao diện người dùng web đơn giản nhưng mạnh mẽ bằng cách sử dụng Python, pytest và Selenium WebDriver. Chúng ta sẽ tìm hiểu các chiến lược để thiết kế thử nghiệm tốt cũng như các mẫu mã tự động hóa tốt. Khi kết thúc hướng dẫn, bạn sẽ trở thành nhà vô địch về tự động hóa thử nghiệm web. Dự án thử nghiệm Python của bạn cũng có thể là nền tảng cho các trường hợp thử nghiệm của riêng bạn📍 Nếu bạn đang tìm kiếm một Gói Python duy nhất cho Android, iOS và Thử nghiệm web – thì cũng có một giải pháp mã nguồn mở dễ dàng do TestProject cung cấp. Với một tệp thực thi duy nhất, cấu hình bằng không và API Selenium quen thuộc, bạn có thể phát triển và thực hiện các bài kiểm tra Python mạnh mẽ và nhận báo cáo kiểm tra HTML tự động như một phần thưởng. Tất cả bạn cần là. Chương hướng dẫn
Khi pytest chạy ở dòng lệnh, đôi khi nó in ra một tường văn bản không hữu ích. Báo cáo trực quan là cách tốt hơn nhiều để sử dụng thông tin kết quả kiểm tra, đặc biệt đối với những người không phải là nhà phát triển. Việc thêm plugin pytest-html vào dự án thử nghiệm của bạn sẽ cho phép bạn in các báo cáo HTML đẹp mắt bằng một tùy chọn dòng lệnh đơn giản PYTEST-SELENIUM VỚI BÁO CÁO HTMLđiều kiện tiên quyết
Bài viết này là một phần của Trung tâm nội dung của chúng tôi. Để biết thêm các tài nguyên chuyên sâu, hãy xem trung tâm nội dung của chúng tôi trên Selenium pytest Tutorial Các khung kiểm thử tự động như pytest rất mạnh trong việc tự động kiểm thử khi được sử dụng cùng với Selenium, kết quả kiểm thử do các kiểm thử này tạo ra có thể trở nên sâu sắc hơn khi bạn kết hợp kiểm thử với tính năng báo cáo được khung kiểm thử hỗ trợ Trong trường hợp bạn chưa quen với khung pytest, hãy xem video này để biết thêm về khung pytest và cài đặt của nó Ưu điểm chính của tính năng báo cáo là đầu ra được tạo ở định dạng đơn giản và dễ đọc hơn, chủ yếu ở dạng tệp HTML hoặc XML. Vì các định dạng tệp này được sử dụng rộng rãi nên nhiệm vụ giải mã đầu ra dễ dàng hơn. Trong bài viết này, chúng tôi đã xem xét cách bạn có thể sử dụng tạo báo cáo pytest với Selenium. Chúng tôi cũng sẽ xem xét các cách để nâng cao chức năng báo cáo bằng cách sử dụng API LambdaTest cho Selenium Nếu bạn chưa quen với Selenium và thắc mắc nó là gì thì chúng tôi khuyên bạn nên xem hướng dẫn của chúng tôi - Selenium là gì? Tầm quan trọng của việc tạo báo cáo SeleniumTrước khi đi sâu vào việc tạo báo cáo pytest, điều quan trọng là phải hiểu mức độ liên quan của việc tạo báo cáo Selenium trong bối cảnh của dự án/sản phẩm phát triển web Theo dõi & Khả năng đọcKhi người kiểm thử thực hiện kiểm thử, kết quả kiểm thử cùng với thông tin quan trọng cần thiết (như trường hợp kiểm thử được thông qua, bản phát hành kiểm thử nào được thực hiện, chi tiết về các đối số đầu vào, thông tin chi tiết về các kịch bản lỗi, v.v. ) có thể được yêu cầu duy trì để tham khảo trong tương lai. Điều này có thể được lưu giữ ở định dạng phổ biến (HTML, XML, v.v. ) ở dạng báo cáo Selenium giúp dễ dàng theo dõi thời gian đáo hạn của mã trong một khoảng thời gian Dễ tích hợp và thực thiCho dù đó là tạo báo cáo pytest hay báo cáo Selenium cho bất kỳ loại khung kiểm thử tự động nào khác, việc tích hợp một mô-đun hỗ trợ tạo báo cáo Selenium e. g. pytest-html để tạo báo cáo pytest là một nhiệm vụ đơn giản. Tất cả những gì bạn phải làm là cài đặt mô-đun và nhập mô-đun tương tự vào mã kiểm tra của mình. Nếu bạn đang sử dụng tham số dòng lệnh để thực thi mã kiểm tra, việc tạo báo cáo chỉ là phần bổ sung của một vài tham số e. g. –html=pytest_selenium_test_report. html trong pytest Nội dung trực quan để so sánh dễ dàngCó thể có những trường hợp bạn muốn lưu trữ kết quả kiểm tra giao diện người dùng và báo cáo Selenium là cách dễ nhất để bạn có thể lưu thông tin này Tích hợp với các công cụ CI/CDPhần lớn mô-đun báo cáo Selenium e. g. pytest-html được sử dụng để tạo báo cáo pytest có thể được tích hợp liền mạch vào các công cụ quy trình CI/CD (Tích hợp liên tục/Phân phối liên tục) của bạn như Jenkins, CircleCI. Do đó, bạn không thực hiện bất kỳ thay đổi chuyên biệt nào trong quá trình xây dựng và tích hợp của mình Quay lại Tạo báo cáo pytest bằng pytest-htmlViệc tạo báo cáo Pytest cho tập lệnh Selenium của bạn có thể hoạt động như một phép màu giúp bạn tiết kiệm thời gian và công sức bằng cách duy trì dữ liệu theo cách có tổ chức, vì vậy thật dễ dàng để hình dung và hiểu tập lệnh của bạn gặp lỗi ở đâu và khi nào pytest-html – Cài đặt và Sử dụngMặc dù có các cơ chế khác nhau để tạo báo cáo Selenium trong pytest, nhưng pytest-html là tùy chọn ưa thích nhất để tạo báo cáo pytest. Mô-đun pytest-html ban đầu là một phần phụ của mô-đun pytest-mozwebqa, sau này được tạo thành một plugin/mô-đun riêng biệt có mục đích duy nhất là tạo báo cáo Selenium (một giải pháp thay thế cho báo cáo JUnit hoặc đầu ra của bảng điều khiển) Nếu bạn chưa quen với pytest, thì tôi khuyên bạn nên xem một trong những bài viết trước của tôi để giúp bạn chạy tập lệnh tự động hóa đầu tiên của mình bằng cách sử dụng pytest với Selenium WebDriver Như đã nói, hãy bắt đầu với việc tạo báo cáo pytest bằng pytest-html. Thực hiện lệnh dưới đây trên thiết bị đầu cuối để cài đặt mô-đun pytest-html Dưới đây là ảnh chụp nhanh của lệnh đang thực thi Vì mục đích triển khai, chúng tôi đang sử dụng phiên bản Cộng đồng của PyCharm IDE có thể tải xuống từ đây. Để chứng minh việc sử dụng pytest-html để tạo báo cáo Selenium, chúng tôi đã xem xét một ví dụ pytest tạo ra các đồ đạc pytest, & Selenium Webdriver # Nhập 'mô-đun' cần thiết để thực hiện từ Selenium nhập webdriver từ selen. webdriver. trình duyệt Chrome. nhập tùy chọn Tùy chọn từ selen. webdriver. chung. phím nhập phím @pytest. lịch thi đấu(params=["chrome", "firefox"],scope="class") nếu yêu cầu. thông số == "cơm" web_driver = trình điều khiển web. Trình duyệt Chrome() nếu yêu cầu. tham số == "firefox" web_driver = trình điều khiển web. firefox() lời yêu cầu. cls. trình điều khiển = web_driver @pytest. đánh dấu. usefixtures("driver_init") lớp Test_URL(BasicTest) bản thân. tài xế. nhận ("https. //www. lambdatest. com/") Như đã thấy trong ví dụ trên, URL được kiểm tra https. //www. lambdatest. com được mở trong trình duyệt Chrome & Firefox. Bạn cũng có thể quan sát, mô-đun pytest-html được nhập để kích hoạt chức năng báo cáo. Bạn có thể sử dụng lệnh sau để thực hiện tương tự py. Bài kiểm tra. exe --capture=no --verbose --html= test_selenium_webdriver-1. py test_pytest-html. py Kết quả thực hiện dưới đây Dưới đây là báo cáo HTML chứa thông tin về các bài kiểm tra và kết quả của chúng pytest-html – Báo cáo nâng caoGiao diện của báo cáo có thể được thay đổi bằng cách chuyển các tùy chọn Cascaded Style Sheets (CSS) bằng cách sử dụng tùy chọn –css. Vì có thể áp dụng nhiều cài đặt CSS nên chúng sẽ được áp dụng theo thứ tự nhận được các tùy chọn pytest --html=pytest_selenium_test_report. html --css= Nếu bạn dự định thêm nhiều chi tiết hơn vào báo cáo HTML, bạn có thể làm tương tự bằng cách tạo danh sách bổ sung trên đối tượng báo cáo. Dưới đây là một số tùy chọn có thể được sử dụng để thêm nội dung thông tin hơn vào báo cáo Selenium pytest Trong khi nhập đường dẫn hình ảnh, bạn có thể sử dụng đường dẫn tương đối cũng như đường dẫn tuyệt đối. Bạn cũng có thể sửa đổi bảng kết quả để cải thiện khả năng đọc hoặc để thêm thông tin. bạn có thể tham khảo Hướng dẫn PyTest dành cho người mới bắt đầu và các chuyên gia này sẽ giúp bạn tìm hiểu cách sử dụng khung PyTest với Selenium và Python để thực hiện thử nghiệm tự động hóa Selenium Báo cáo Selenium chi tiết để phân tích kiểm tra trình duyệt chéo hiệu quảMột thiếu sót mà mọi dự án/sản phẩm phát triển web đều chứng kiến trong giai đoạn thử nghiệm trình duyệt chéo là phạm vi thử nghiệm có thể được thực hiện trên các loại và phiên bản trình duyệt khác nhau (Firefox, Internet Explorer, Microsoft Edge, Chrome, v.v. ). Mọi thứ trở nên phức tạp hơn khi bạn thêm tổ hợp bổ sung của các hệ điều hành (Windows, Linux, macOS, iOS, Android, v.v. ) và các thiết bị khác nhau tôi. e. di động, máy tính để bàn, máy tính bảng. Thay vì cố gắng mở rộng quy mô cơ sở hạ tầng hiện tại của bạn để đáp ứng nhu cầu của nhóm thử nghiệm, bạn nên thực hiện thử nghiệm trình duyệt chéo trên đám mây. Ưu điểm chính của cách tiếp cận như vậy là nó có khả năng mở rộng và tiết kiệm hơn so với việc thiết lập cơ sở hạ tầng cục bộ. Ngoài ra, bạn có thể tăng tốc quá trình kiểm tra trình duyệt chéo tự động có thể được cải thiện bằng cách sử dụng Kiểm tra song song trong Selenium LambdaTest cung cấp một nền tảng thử nghiệm trình duyệt chéo dễ dàng mở rộng quy mô trên đám mây, cung cấp trực tuyến hơn 2.000 trình duyệt và hệ điều hành thực để giúp bạn mở rộng phạm vi thử nghiệm trình duyệt chéo của mình lên toàn bộ. Bạn cũng có thể thực hiện các thử nghiệm Selenium tự động bằng cách sử dụng Lưới Selenium mạnh mẽ, dễ mở rộng và nhanh hơn của chúng tôi trên đám mây CHẠY CÁC TẬP ĐOẠN SELENIUM CỦA BẠN TRÊN LƯỚI ĐÁM MÂY Hơn 3000 trình duyệt VÀ hệ điều hành ĐĂNG KÝ MIỄN PHÍ Trong giai đoạn phát triển & thử nghiệm sản phẩm, bạn có thể muốn xác minh các tính năng trên các trình duyệt khác nhau và có kết quả thực hiện thử nghiệm trên đám mây giúp theo dõi dễ dàng hơn. Do đó, bạn có thể dễ dàng theo dõi các phân tích kiểm tra & kết quả kiểm tra cũng như chia sẻ với các thành viên trong nhóm của mình LambdaTest đã cung cấp API Selenium để giải quyết tất cả các vấn đề này và sử dụng API đó, bạn có thể quản lý các bản dựng thử nghiệm, phiên thử nghiệm, theo dõi phân tích thử nghiệm, tìm nạp nhật ký, tìm nạp ảnh chụp màn hình cho mọi thử nghiệm, v.v. trực tiếp từ nền tảng của họ đến cơ sở lưu trữ ưa thích của bạn, . Nó cung cấp một tệp ở định dạng JSON chứa cú pháp cho mọi trình duyệt và phiên bản trình duyệt tương ứng cùng với hệ điều hành mà các bài kiểm tra được thực hiện Dưới đây là URL API có thể được sử dụng để khai thác thêm từ báo cáo thử nghiệm https. //api. lambdatest. com/tự động hóa/api/v1/ Để sử dụng API, tất cả những gì bạn cần làm là nối điểm cuối tương ứng vào cuối URL được tính toán và đưa ra lệnh GET/POST. Ví dụ: bạn có thể sử dụng “/builds” để nhận thông tin chi tiết về mọi bản dựng được thực hiện trong tài khoản cụ thể đó. URL được tính toán sẽ là Để có được thông tin về số lượng phiên kiểm tra. URL đã tính toán Bạn thậm chí có thể kiểm tra thông tin ở cấp phiên sử dụng id phiên để nhận thông tin liên quan đến một phiên cụ thể LambdaTest API giúp bạn trích xuất và phân tích các báo cáo thử nghiệm Selenium của bạn với mức độ chi tiết như bạn muốn Chứng nhận này dành cho các chuyên gia muốn phát triển kiến thức chuyên môn nâng cao, thực hành về thử nghiệm tự động hóa Selenium với Python và đưa sự nghiệp của họ lên một tầm cao mới Dưới đây là thông tin ngắn gọn về chứng nhận Selenium Python 101 từ LambdaTest Tạo báo cáo pytest chi tiết từ LambdaTestBây giờ, bạn đã có kiến thức về các điểm cuối được hỗ trợ, hãy xem cách sử dụng những điểm cuối này đúng cách để tạo báo cáo pytest bằng LambdaTest. Để bắt đầu, bạn phải đăng nhập vào tài liệu tham khảo API bằng tên người dùng LambdaTest và khóa truy cập của mình. Bạn có thể tìm thấy những chi tiết này từ Bảng điều khiển tự động hóa LambdaTest bằng cách nhấp vào biểu tượng chìa khóa Sau khi có sẵn tên người dùng và khóa truy cập, bạn cần ủy quyền cho API Lambdatest bằng các thông tin đăng nhập đó. Sau khi bạn ủy quyền, GET, POST, v.v. các yêu cầu có thể được kích hoạt bằng API. Bạn có thể truy cập thông tin chi tiết về Bản dựng, Phiên và Đường hầm được sử dụng trong quá trình kiểm tra trình duyệt chéo tự động bằng cách sử dụng Lưới Selenium Ví dụ: có một số thử nghiệm tự động mà chúng tôi đã thực hiện, bạn có thể xem chi tiết về chúng bằng cách nhấp vào tab Tự động hóa trên bảng điều hướng bên trái trên LambdaTest và truy cập Dòng thời gian Để trình diễn, chúng tôi chọn một bản dựng cụ thể. g. BuildID = 11254 để sử dụng API tự động hóa. URL được tính toán có định dạng bên dưới Ban đầu, chúng tôi đăng mã nguồn hiện có để thực thi nó trên tự động hóa thử nghiệm. Lưu ý quan trọng. Bạn sẽ phải thay thế user_name và app_key bằng tên người dùng và khóa truy cập như đã nêu ở trên, có trong Bảng điều khiển tự động hóa # Nhập 'mô-đun' cần thiết để thực thi từ Selenium nhập webdriver từ selen. webdriver. trình duyệt Chrome. nhập tùy chọn Tùy chọn từ selen. webdriver. chung. phím nhập phím #Đặt khả năng để thử nghiệm trên Chrome "xây dựng". "Thử nghiệm bằng Chrome trên Windows", "tên". "Thử nghiệm trên Chrome bằng Selenium Grid", "selenium_version". "3. 13. 0", #Đặt khả năng để thử nghiệm trên Firefox "xây dựng". "Thử nghiệm bằng Firefox trên Windows", "tên". "Thử nghiệm trên Firefox bằng Selenium Grid", # Chi tiết có thể được lấy từ https. //tự động hóa. lambdatest. com/ @pytest. lịch thi đấu(params=["chrome", "firefox"],scope="class") urllib3. vô hiệu hóa (urllib3. ngoại lệ. Cảnh báo yêu cầu không an toàn) remote_url = "https. //" + tên người dùng + ". " + app_key + " @hub. lambdatest. com/wd/trung tâm" nếu yêu cầu. thông số == "cơm" #Triển khai WebDriver từ xa #web_driver = trình điều khiển web. Xa( #command_executor='http. //107. 108. 86. 20. 4444/wd/trung tâm', #desired_capabilities={'browserName'. 'cơm', 'javascriptEnabled'. ĐÚNG VẬY}) web_driver = trình điều khiển web. Điều khiển từ xa(command_executor=remote_url, wish_capabilities=ch_caps) nếu yêu cầu. tham số == "firefox" #Triển khai WebDriver từ xa #web_driver = trình điều khiển web. Xa( # command_executor='http. //107. 108. 86. 20. 4444/wd/trung tâm', # desired_capabilities={'browserName'. 'firefox'}) web_driver = trình điều khiển web. Điều khiển từ xa(command_executor=remote_url, wish_capabilities=ff_caps) lời yêu cầu. cls. trình điều khiển = web_driver #print(tự. tài xế. tiêu đề) @pytest. đánh dấu. usefixtures("driver_init") lớp Test_URL(BasicTest) bản thân. tài xế. nhận ("https. //www. lambdatest. com/") Mỗi phiên kiểm tra có một Session_ID duy nhất được liên kết với nó. Một tham số quan trọng khác cần được ghi nhớ là Test_ID. Một Test_ID duy nhất có thể có nhiều Session_ID được liên kết với nó. Bạn cần vào phần LỆNH của một bài kiểm tra cụ thể để lấy Session_ID của bài kiểm tra, một mẫu được hiển thị bên dưới Để minh họa các API LambdaTest, chúng tôi trích xuất thông tin về 10 bản dựng đầu tiên có trạng thái là Đã hoàn thành, Hết giờ và Lỗi. Với mục đích này, chúng tôi sử dụng API “/builds”. Chúng tôi thực hiện các bước sau để đạt được mục tiêu của chúng tôi
Dưới đây là mã cuối cùng hiển thị API LambdaTest đang hoạt động # Tìm nạp 10 bản dựng đầu tiên có trạng thái là đã hoàn thành, lỗi, hết thời gian chờ # Sau khi có thông tin chi tiết, hãy thay đổi Tiêu đề bản dựng của build_id 11254 # Tham khảo https. //www. lambdatest. com/support/docs/api-doc/#/Build/builds để biết thêm thông tin # Mã Python tương đương từ https. //Xoăn. trillworks. com/ 'chấp nhận'. 'ứng dụng/json', 'Ủy quyền'. 'Cơ bản aGltYW5zaHUuc2hldGhOVI4bHdCc1hXVFNhSU9lYlhuNHg5', ('trạng thái', 'hoàn thành, hết giờ, lỗi'), # Đã cập nhật thông tin bản dựng cho bản dựng 11254 'chấp nhận'. 'ứng dụng/json', 'Ủy quyền'. 'Cơ bản aGltYW5zaHUuc2hldGhOVI4bHdCc1hXVFNhSU9lYlhuNHg5', 'Loại nội dung'. 'ứng dụng/json', data_updated_build = '{"tên". "Đã cập nhật chi tiết bản dựng từ lời nhắc"}' phản ứng = yêu cầu. nhận ('https. //api. lambdatest. com/automation/api/v1/builds', headers=headers, params=params) # In build_id phù hợp với yêu cầu của chúng tôi và Thay đổi tiêu đề bản dựng của build_id 11254 build_id = ((json_arr['data'][loop_var])['build_id']) test_status = ((json_arr['data'][loop_var])['status_ind']) response_updated_build = yêu cầu. bản vá ('https. //api. lambdatest. com/automation/api/v1/builds/11254', headers=headers_updated_build, data=data_updated_build) in (response_updated_build) in ((build_id), (test_status)) Dưới đây là một ảnh chụp màn hình của việc thực hiện. Như đã thấy bên dưới, chúng tôi đã nhận được Phản hồi là 200 hai yêu cầu
Điều này chỉ ra rằng hoạt động đã thành công Để xác minh xem hoạt động Cập nhật tên bản dựng cho Build_ID 11254 có thành công hay không, chúng tôi chuyển sang Nhật ký tự động hóa của LambdaTest và kiểm tra trạng thái tôi. e Phần kết luậnCác báo cáo Selenium, nếu được sử dụng hiệu quả có thể giúp ích rất nhiều cho việc kiểm tra các hoạt động kiểm tra tổng thể và kết quả của chúng. Để tạo báo cáo pytest, chúng ta có thể sử dụng mô-đun pytest-html để kiểm tra trình duyệt chéo với Selenium Grid. Thông tin được trình bày trong báo cáo Selenium có thể được nâng cao bằng cách sử dụng API LambdaTest cung cấp cho bạn thông tin chi tiết nhỏ về bản dựng/phiên/đường hầm cho tập lệnh tự động hóa Selenium của bạn được thực hiện trên máy chủ LambdaTest Dựa trên yêu cầu của bạn, bạn có thể xuất thông tin này trong báo cáo HTML và đơn giản hóa toàn bộ quy trình kiểm tra tính tương thích của trình duyệt. Sử dụng API LambdaTest, bạn có thể giảm thời gian tham gia kiểm thử tự động hóa, kiểm tra trình duyệt chéo và duy trì các báo cáo kiểm tra chứa thông tin liên quan về bản dựng/phát hành phần mềm Pytest có thể tạo báo cáo HTML không?pytest-html 3. 2. 0
. generates a HTML report for test results.
Làm cách nào để tạo báo cáo HTML bằng Python?Cách tạo báo cáo HTML bằng Python . Cài đặt 'Aspose. Từ cho Python thông qua. MẠNG LƯỚI' Thêm tham chiếu thư viện (nhập thư viện) vào dự án Python của bạn Tạo một mẫu HTML được đánh dấu bằng cú pháp dựa trên LINQ Tải tài liệu mẫu HTML Tải dữ liệu của bạn từ nguồn dữ liệu. tệp, cơ sở dữ liệu hoặc đối tượng tùy chỉnh Làm cách nào để tạo báo cáo trong Selenium?Cách tạo Báo cáo mức độ . Nhập tệp JAR. extentreports-java-2. 41. cái lọ. Sau khi tải xuống tệp ZIP, giải nén nội dung của nó vào một thư mục Thêm các tệp JAR vào đường dẫn xây dựng dự án với tùy chọn Build Path -> Configure Build Path Tạo một lớp Java mới cho Báo cáo mức độ với mã bên dưới Pytest có sử dụng selen không?Pytest cung cấp một cách hiệu quả để viết và thực thi các trường hợp thử nghiệm hoặc bộ thử nghiệm có thể mở rộng và tạo các báo cáo thử nghiệm mở rộng. Thử nghiệm tự động hóa Selenium với pytest giúp bạn viết các thử nghiệm có thể mở rộng cho các loại thử nghiệm khác nhau như thử nghiệm trên nhiều trình duyệt, thử nghiệm cơ sở dữ liệu, thử nghiệm API, v.v. . |