Tiết kiệm thời gian dành cho tự động kiểm tra Selenium bằng cách chạy thử nghiệm song song. Tìm hiểu cách chạy thử nghiệm song song
Vỏ bọc Himanshu
CỐT LÕI ·Tháng 7. 30, 20 · Hướng dẫnThích [15]
Bình luận
Tiết kiệm
tiếng riu ríu
8. 12K Lượt xem
Tham gia cộng đồng DZone và có được trải nghiệm thành viên đầy đủ
Tham gia miễn phíSelenium là một trong những framework kiểm thử tự động được sử dụng rộng rãi để kiểm thử trình duyệt tự động. Tự động kiểm tra Selenium thực sự hữu ích trong việc kiểm tra các trang web hoặc ứng dụng web trên các kết hợp trình duyệt, hệ điều hành và thiết bị khác nhau. Cung cấp phạm vi kiểm tra chức năng tốt hơn vì mã được kiểm tra trên nhiều kết hợp
Việc chạy các thử nghiệm này theo trình tự có thể tốn thời gian vì bạn phải đợi một thử nghiệm hoàn thành trước khi chạy các thử nghiệm khác. Bạn có thể tiết kiệm rất nhiều thời gian bằng cách thực hiện các kiểm thử song song, do đó cải thiện khả năng mở rộng của kiểm thử tự động Selenium của bạn. Kiểm thử song song giúp thực hiện kiểm thử đồng thời trên các trình duyệt, cung cấp phạm vi kiểm thử tốt hơn trong thời gian ngắn hơn.
Trong hướng dẫn Selenium Python này, tôi sẽ trình bày. bạn cách chạy thử nghiệm song song trong pytest bằng Selenium Grid. Lưới Selenium để chạy có thể là cục bộ hoặc dựa trên đám mây. Để biết thêm thông tin về cách thiết lập Lưới Selenium cục bộ, chúng tôi khuyên bạn nên xem blog chi tiết của chúng tôi về Thiết lập Lưới Selenium để thử nghiệm tự động
Làm cách nào để chạy thử nghiệm Selenium song song với Python bằng Pytest-xdist?
Theo mặc định, PyTest không hỗ trợ kiểm tra song song, điều cực kỳ cần thiết cho các tình huống như kiểm tra trình duyệt tự động. Thử nghiệm song song là điều bắt buộc để đạt được sự tích hợp liên tục vì các thử nghiệm có thể được thực hiện với tốc độ nhanh. Để chạy thử nghiệm Selenium song song với Python, bạn cần cài đặt plugin pytest-xdist
Các tính năng [hoặc Chế độ thực thi] của Pytest-xdist
Đây là plugin thử nghiệm phân tán của PyTest mở rộng python PyTest với một số chế độ thực thi độc đáo được đề cập bên dưới trong hướng dẫn Selenium Python này
Cân bằng tải đa quy trình — Có thể sử dụng nhiều CPU hoặc máy chủ để chạy thử nghiệm kết hợp. Điều này hỗ trợ tăng tốc độ phát triển cùng với việc sử dụng các tài nguyên đặc biệt của máy móc
LooponFail — Các thử nghiệm có thể được thực hiện lặp đi lặp lại trong một quy trình phụ. Sau mỗi lần chạy thử nghiệm, pytest chạy lại tất cả các thử nghiệm đã thất bại trước đó. Quá trình này được lặp lại cho đến khi tất cả các bài kiểm tra vượt qua. Đây được coi là phần cuối của bài kiểm tra
Bảo hiểm đa nền tảng — Các trình thông dịch Python khác nhau [e. g. PyTest, PyUnit, v.v. ] hoặc các nền tảng có thể được chỉ định và các thử nghiệm có thể được thực hiện song song trên tất cả chúng
Cài đặt pytest-xdist để chạy thử nghiệm Selenium song song với Python
Plugin xdist có thể được cài đặt bằng cách thực hiện một trong các lệnh sau trên thiết bị đầu cuối
#Run Selenium tests in parallel with Python for Selenium Python tutorial
75#Run Selenium tests in parallel with Python for Selenium Python tutorial
76Hiển thị bên dưới trong hướng dẫn Selenium Python này là ảnh chụp màn hình cài đặt plugin xdist để chạy thử nghiệm Selenium song song với Python
Tùy chọn dòng lệnh để kiểm tra song song
Plugin pytest-xdist cung cấp các tùy chọn dòng lệnh để gửi các bài kiểm tra tới nhiều CPU. Số lượng CPU được thông qua sau tùy chọn –n
#Run Selenium tests in parallel with Python for Selenium Python tutorial
77Tùy chọn tăng tốc độ thực thi song song cho các bài kiểm tra dài, cũng như các bài kiểm tra có hoạt động I/O [Đầu vào/Đầu ra] thường xuyên trong quá trình triển khai. pytest-xdist [hoặc xdist-plugin] có nhiều tùy chọn khác, chi tiết tương tự có sẵn trong tài liệu xdist-plugin
Chạy thử nghiệm Selenium song song với Python bằng Plugin pytest-xdist
Để minh họa cách sử dụng plugin pytest-xdist để chạy thử nghiệm Selenium song song với Python, tôi sẽ thực hiện bốn kịch bản thử nghiệm cho hướng dẫn Selenium Python này mà tôi sẽ thực hiện trên trình duyệt web Chrome và Firefox. Bốn kịch bản thử nghiệm được chia thành hai tệp python và đồ đạc được chia sẻ qua conftest. py. Để biết thêm thông tin chi tiết về đồ đạc PyTest và cách sử dụng conftest. py, bạn có thể tham khảo hướng dẫn Selenium Python trước đây về đồ đạc PyTest
Kịch bản thử nghiệm — 1 [Chạy thử nghiệm Selenium song song với Python trên Trình duyệt Chrome]
Trường hợp thử nghiệm — 1
1. Điều hướng đến URL https. //lambdatest. github. io/sample-todo-app/
2. Chọn hai hộp kiểm đầu tiên
3. Gửi 'Thử nghiệm vui vẻ tại LambdaTest' tới hộp văn bản với id = sampletodotext
4. Nhấp vào nút Thêm và xác minh xem văn bản đã được thêm hay chưa
Trường hợp thử nghiệm - 2
1. Điều hướng đến URL https. //lambdatest. com/
2. So sánh tiêu đề cửa sổ với tiêu đề dự kiến
3. Tăng xác nhận nếu tiêu đề không khớp
Kịch bản thử nghiệm — 2 [[Chạy thử nghiệm Selenium song song với Python trên Trình duyệt Firefox]
Trường hợp thử nghiệm — 1
1. Điều hướng đến URL https. //www. Google. com
2. Tìm kiếm “LambdaTest”
3. Nhấp vào kết quả kiểm tra đầu tiên
4. Đưa ra một Xác nhận nếu Tiêu đề Trang không khớp với tiêu đề dự kiến
Trường hợp thử nghiệm - 2
1. Điều hướng đến URL https. //lambdatest. com/blog
2. So sánh tiêu đề cửa sổ với tiêu đề dự kiến
3. Tăng xác nhận nếu tiêu đề không khớp
Thực hiện
Các phương án gọi trình duyệt Chrome và Firefox đã được thêm vào Conftest. py. Tệp được đặt trong thư mục gốc, nơi cũng chứa các tệp chứa triển khai cho các trường hợp thử nghiệm
Conftest. py
Vì các URL khác nhau được sử dụng để kiểm tra trình duyệt tự động, nên phạm vi được đặt thành lớp [thay vì phiên] và phiên bản trình duyệt mới được tải cho mỗi lần kiểm tra
con trăn
xxxxxxxxxx
1
17
1
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2
import pytest
3
from selenium import webdriver
4
@pytest.fixture[scope="class"]
5
________số 86
web_driver = webdriver.Chrome[]
7
#Run Selenium tests in parallel with Python for Selenium Python tutorial
08
#Run Selenium tests in parallel with Python for Selenium Python tutorial
19
#Run Selenium tests in parallel with Python for Selenium Python tutorial
210
#Run Selenium tests in parallel with Python for Selenium Python tutorial
011
@pytest.fixture[scope="class"]
12
#Run Selenium tests in parallel with Python for Selenium Python tutorial
213
#Run Selenium tests in parallel with Python for Selenium Python tutorial
314
#Run Selenium tests in parallel with Python for Selenium Python tutorial
015
#Run Selenium tests in parallel with Python for Selenium Python tutorial
116
#Run Selenium tests in parallel with Python for Selenium Python tutorial
217
test_pytest_1. py
Tệp này chứa việc triển khai Kịch bản thử nghiệm — 1 [Chạy thử nghiệm Selenium song song với Python trên Trình duyệt Chrome]. @pytest. dấu. usefixtures decorator được bao gồm để sử dụng vật cố định driver_chrome_init[]
Nó chứa hai trường hợp thử nghiệm để chạy thử nghiệm Selenium song song với Python
test_lambdatest_todo_app[] — Các phần tử web bắt buộc được định vị bằng các phương thức Selenium như find_element_by_name[], trình điều khiển. find_element_by_id[]. Khi các phần tử được định vị, các lệnh cần thiết như click[], v.v. được sử dụng để thực hiện các hoạt động cần thiết
test_lambdatest_load[] — URL đang được kiểm tra https. //www. lambdatest. com được tải và tiêu đề cửa sổ được so sánh với tiêu đề dự kiến. Khẳng định được nâng lên nếu các tiêu đề không khớp
Lệnh close[] trong Selenium WebDriver được sử dụng để đóng cửa sổ trình duyệt sau khi quá trình kiểm tra hoàn tất
con trăn
xxxxxxxxxx
1
44
1
import pytest
2
#Run Selenium tests in parallel with Python for Selenium Python tutorial
93
from selenium import webdriver
4
import pytest
15
import pytest
26
import pytest
37
import pytest
48
import pytest
59
import pytest
610
import pytest
711
import pytest
812
import pytest
913
from selenium import webdriver
014
from selenium import webdriver
115
from selenium import webdriver
216
from selenium import webdriver
317
import pytest
618
from selenium import webdriver
519
from selenium import webdriver
620
import pytest
621
from selenium import webdriver
822
from selenium import webdriver
923
import pytest
624
@pytest.fixture[scope="class"]
125
@pytest.fixture[scope="class"]
226
@pytest.fixture[scope="class"]
327
@pytest.fixture[scope="class"]
428
import pytest
629
@pytest.fixture[scope="class"]
630
@pytest.fixture[scope="class"]
431
import pytest
632
@pytest.fixture[scope="class"]
933
def driver_init_1[request]:
034
import pytest
635
def driver_init_1[request]:
236
def driver_init_1[request]:
337
def driver_init_1[request]:
438
def driver_init_1[request]:
539
from selenium import webdriver
340
import pytest
641
def driver_init_1[request]:
842
def driver_init_1[request]:
943
@pytest.fixture[scope="class"]
444
test_pytest_2. py
Tệp này chứa việc triển khai Kịch bản thử nghiệm — 2 [Thực thi trên trình duyệt Firefox]. @pytest. dấu. usefixtures decorator được bao gồm để sử dụng vật cố định driver_firefox_init[]
Nó chứa hai trường hợp thử nghiệm để chạy thử nghiệm Selenium song song với Python
test_google_search[] — Hộp tìm kiếm trên trang chủ Google được định vị bằng phương pháp find_element_by_xpath của Selenium WebDriver. Khi phần tử được định vị, hãy tìm kiếm văn bản [i. e. LambdaTest] được chuyển đến hộp tìm kiếm. Sau khi thao tác tìm kiếm được thực hiện, kết quả tìm kiếm đầu tiên được định vị bằng XPath của nó. Phương thức click của Selenium WebDriver được sử dụng để click vào kết quả đầu tiên, đăng tiêu đề cửa sổ lên để so sánh để kiểm tra sự thành công của test
test_lambdatest_blog_load[] — URL kiểm tra https. //www. lambdatest. comm/blog được tải và tiêu đề cửa sổ được so sánh với tiêu đề dự kiến. Khẳng định được nâng lên nếu các tiêu đề không khớp
Lệnh close[] trong Selenium WebDriver được sử dụng để đóng cửa sổ trình duyệt sau khi quá trình kiểm tra hoàn tất
con trăn
xxxxxxxxxx
1
53
1
import pytest
2
#Run Selenium tests in parallel with Python for Selenium Python tutorial
93
from selenium import webdriver
4
import pytest
15
import pytest
26
import pytest
37
import pytest
48
import pytest
59
import pytest
610
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0111
import pytest
812
import pytest
913
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0414
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0515
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0616
from selenium import webdriver
317
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0818
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0919
import pytest
620
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1121
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1222
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1323
import pytest
624
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1525
import pytest
626
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1727
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1828
import pytest
629
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2030
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2131
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2232
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2333
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2434
import pytest
635
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1536
import pytest
637
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2838
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2939
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0040
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0141
import pytest
642
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0343
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0444
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0545
import pytest
646
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0747
#Run Selenium tests in parallel with Python for Selenium Python tutorial
0848
from selenium import webdriver
349
import pytest
650
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1151
def driver_init_1[request]:
952
@pytest.fixture[scope="class"]
453
Hai phép thử được thực hiện song song. Do đó, tùy chọn -n [i. e. num_of_cpus] được đặt thành 2. Việc thực thi được thực hiện bằng cách gọi lệnh sau trên thiết bị đầu cuối
#Run Selenium tests in parallel with Python for Selenium Python tutorial
78Đây là ảnh chụp màn hình của quá trình thực thi cho biết rằng hai thử nghiệm được thực hiện đồng thời [i. e. song song]
Như đã thấy bên dưới trong hướng dẫn Selenium Python này, tất cả bốn bài kiểm tra đã vượt qua để chạy các bài kiểm tra Selenium song song với Python trong pytest
Những thách thức với lưới Selenium trong nhà
Có một hạn chế khi thử nghiệm trên máy cục bộ vì bạn chỉ có thể tải một số trình duyệt nhất định [và các phiên bản của chúng] trên máy cục bộ. Ví dụ: không thể giữ các phiên bản khác nhau của một trình duyệt cụ thể trên cùng một máy. Nếu bạn sở hữu một máy có Mac OS, bạn có thể gặp khó khăn khi thực hiện kiểm tra trình duyệt tự động hóa trên trình duyệt Internet Explorer hoặc Edge
Môi trường thực thi lý tưởng phải là một mạng gồm các máy được kết nối với nhau có môi trường trình duyệt khác nhau để các thử nghiệm có thể được thực hiện song song. Đây là những gì Selenium Grid được xây dựng cho. Selenium Grid được tạo ra như một phần của Selenium Suite bởi Phillipe Hanrigou vào năm 2008
Thời gian đưa ra thị trường [TTM] đặc biệt quan trọng đối với các sản phẩm hướng tới người tiêu dùng. Với tư cách là người quản lý thử nghiệm, cần phải đưa ra quyết định có ý thức về việc có khả thi hay không khi thiết lập cơ sở hạ tầng thử nghiệm nội bộ [hoặc Lưới Selenium cục bộ] với các máy ảo khác nhau. Thiết lập cơ sở hạ tầng cục bộ cho các kết hợp hiếm [nhưng quan trọng] chẳng hạn như kiểm tra trình duyệt chéo với IE trên Mac OS có thể trở thành một nhiệm vụ lớn
Dưới đây trong hướng dẫn Selenium Python này là một số thách thức lớn mà người kiểm tra có thể gặp phải khi thực hiện kiểm tra trình duyệt chéo trên Lưới Selenium cục bộ
1. Khả năng mở rộng — Với mỗi bản phát hành trình duyệt mới, Lưới Selenium cục bộ cũng cần được mở rộng. Mở rộng quy mô sẽ yêu cầu đầu tư đáng kể từ quan điểm cơ sở hạ tầng và ROI [Lợi tức đầu tư] có thể không cao lắm
2. Các hạn chế đối với thử nghiệm trên nhiều trình duyệt — Trọng tâm của việc thử nghiệm sản phẩm của bạn với các kết hợp trình duyệt khác nhau phải là cải thiện chất lượng sản phẩm. Với hơn 2.000 trình duyệt để lựa chọn, việc thực hiện kiểm tra song song gần như vô hạn. Cùng với các trình duyệt mới nhất [và các tổ hợp nền tảng], thử nghiệm cũng phải được thực hiện trên các trình duyệt cũ
Bằng cách chuyển thử nghiệm trên nhiều trình duyệt sang lưới Selenium trực tuyến, nhóm thử nghiệm có thể tập trung hoàn toàn vào nhiệm vụ hiện tại, thay vì lo lắng về việc duy trì cơ sở hạ tầng thử nghiệm nội bộ
3. Độ tin cậy ở mức giá — Việc phát triển phòng thí nghiệm thiết bị, duy trì máy ảo và giấy phép của chúng cũng như đảm bảo rằng chúng hoạt động [suốt ngày đêm] có thể là một nhiệm vụ khó khăn và tốn kém
4. Cập nhật các bản phát hành Selenium mới nhất — Lưới Selenium trực tuyến thường được cập nhật các bản phát hành Selenium mới nhất, bao gồm cả các bản phát hành Selenium Alpha. Ví dụ: Selenium 4 có một loạt các tính năng mới nên được cung cấp sớm nhất cho quá trình tự động hóa thử nghiệm. Với lưới Selenium cục bộ, sẽ là một nhiệm vụ đầy thách thức để cập nhật cơ sở hạ tầng Selenium với mỗi bản phát hành mới [đặc biệt là bản phát hành Alpha, Beta. ]
Bất kể quy mô của cơ sở hạ tầng, bạn vẫn sẽ cần một nhóm nội bộ để chăm sóc độ tin cậy và bảo trì cơ sở hạ tầng lưới Selenium. Chi phí thực tế phát sinh trong việc thiết lập cơ sở hạ tầng có thể cao hơn đáng kể so với ước tính của sân bóng
Chuyển hoạt động kiểm tra trình duyệt chéo sang Lưới Selenium trực tuyến nhanh và đáng tin cậy, chẳng hạn như LambdaTest, giúp đẩy nhanh quá trình kiểm tra trình duyệt tự động. Nó cũng dẫn đến việc cải thiện năng suất của nhóm vì tất cả các hoạt động liên quan đến thử nghiệm tự động hóa Selenium đều được tập trung tại một nơi
Bắt đầu với kiểm tra song song trên lưới Selenium trực tuyến
Ưu điểm chính của việc sử dụng cơ sở hạ tầng Selenium Grid trực tuyến đáng tin cậy là không cần cài đặt bất kỳ phần mềm [hoặc plugin] bổ sung nào trên máy của bạn. Các trình duyệt trên máy ảo được cài đặt sẵn các phiên bản Adobe Flash, Adobe Shockwave, Adobe Reader, Microsoft Silverlight, v.v. do đó, giúp dễ dàng kiểm tra RIA [Ứng dụng Internet phong phú]. Để bắt đầu thử nghiệm trên nhiều trình duyệt trên LambdaTest, hãy thực hiện các bước sau
Tạo tài khoản trên LambdaTest. Cần có tên người dùng và khóa truy cập trong phần hồ sơ để truy cập Lưới Selenium trên LambdaTest
Tùy theo yêu cầu kiểm tra mà chọn gói thuê bao phù hợp. Đối với người mới bắt đầu, có Gói Lite miễn phí trọn đời và cung cấp 100 phút tự động hóa miễn phí trong 15 ngày
Khi bạn đã đăng nhập vào nền tảng, hãy sử dụng Selenium Desired Capabilities Generator để định cấu hình các bài kiểm tra Selenium của bạn trên Selenium Grid
Chuyển các thử nghiệm tự động hóa PyTest sang lưới Selenium trực tuyến
Trước khi chuyển triển khai hiện tại sang Selenium Grid, chúng tôi tạo các khả năng trình duyệt cần thiết bằng cách sử dụng trình tạo khả năng. Đối với phần trình diễn, chúng tôi sử dụng các ví dụ tương tự đã được trình bày trước đó
Kịch bản thử nghiệm — 1 [Trình duyệt. Chrome80. 0, Nền tảng. cửa sổ 10]
Trường hợp thử nghiệm – 1
1. Điều hướng đến URL https. //lambdatest. github. io/sample-todo-app/
2. Chọn hai hộp kiểm đầu tiên
3. Gửi 'Thử nghiệm vui vẻ tại LambdaTest' tới hộp văn bản với id = sampletodotext
4. Nhấp vào nút Thêm và xác minh xem văn bản đã được thêm hay chưa
Trường hợp thử nghiệm - 2
1. Điều hướng đến URL https. //lambdatest. com/
2. So sánh tiêu đề cửa sổ với tiêu đề dự kiến
3. Tăng xác nhận nếu tiêu đề không khớp
Kịch bản thử nghiệm — 2 [Trình duyệt. Safari 12. 0, Nền tảng. macOS Mojave]
Trường hợp thử nghiệm — 1
1. Điều hướng đến URL https. //www. Google. com
2. Tìm kiếm “LambdaTest”
3. Nhấp vào kết quả kiểm tra đầu tiên
4. Đưa ra một Xác nhận nếu Tiêu đề Trang không khớp với tiêu đề dự kiến
Trường hợp thử nghiệm - 2
1. Điều hướng đến URL https. //lambdatest. com/blog
2. So sánh tiêu đề cửa sổ với tiêu đề dự kiến
3. Tăng xác nhận nếu tiêu đề không khớp
Trình tạo khả năng được sử dụng để tạo khả năng cho [kết hợp trình duyệt + hệ điều hành]. Do framework test đang sử dụng là PyTest nên chúng tôi chọn ngôn ngữ là Python
Khả năng của thiết bị cho Kịch bản thử nghiệm — 1 [Trình duyệt. Chrome80. 0, Nền tảng. cửa sổ 10]
Java
xxxxxxxxxx
1
1
#Run Selenium tests in parallel with Python for Selenium Python tutorial
152
#Run Selenium tests in parallel with Python for Selenium Python tutorial
163
#Run Selenium tests in parallel with Python for Selenium Python tutorial
174
#Run Selenium tests in parallel with Python for Selenium Python tutorial
185
#Run Selenium tests in parallel with Python for Selenium Python tutorial
196
#Run Selenium tests in parallel with Python for Selenium Python tutorial
207
#Run Selenium tests in parallel with Python for Selenium Python tutorial
218
Khả năng của thiết bị cho Kịch bản thử nghiệm — 2 [Trình duyệt. Safari 12. 0, Nền tảng. macOS Mojave]
Java
xxxxxxxxxx
1
1
#Run Selenium tests in parallel with Python for Selenium Python tutorial
152
#Run Selenium tests in parallel with Python for Selenium Python tutorial
243
#Run Selenium tests in parallel with Python for Selenium Python tutorial
254
#Run Selenium tests in parallel with Python for Selenium Python tutorial
265
#Run Selenium tests in parallel with Python for Selenium Python tutorial
276
#Run Selenium tests in parallel with Python for Selenium Python tutorial
287
#Run Selenium tests in parallel with Python for Selenium Python tutorial
218
Các tham số được cung cấp cho các khả năng mong muốn để chạy thử nghiệm Selenium song song với Python nằm bên dưới trong hướng dẫn Selenium Python này
Tham số
Sự mô tả
Thí dụ
Xây dựng
Tên bản dựng mà bạn có thể xác định bản dựng
Chuyển thử nghiệm sang LambdaTest Selenium Grid
Tên
Tên thử nghiệm để xác định thử nghiệm đang được thực hiện
Chuyển thử nghiệm sang LambdaTest Selenium Grid
Nền tảng
Nền tảng/Hệ điều hành mà bạn dự định thực hiện thử nghiệm
Windows 10, macOS Mojave, v.v.
Tên trình duyệt
Trình duyệt mà kiểm tra tự động hóa sẽ được thực hiện
Firefox, Chrome, Microsoft Edge, Internet Explorer
phiên bản
Phiên bản trình duyệt cụ thể mà bài kiểm tra sẽ được thực hiện
Firefox phiên bản 64. 0, Chrome phiên bản 70. 0, v.v.
selen_version
Một phiên bản Selenium sẽ được sử dụng để thử nghiệm
3. 13. 0
firefox. người lái xe
Phiên bản Remote WebDriver cho Firefox
2. 42
Bạn cũng có thể bật tùy chọn không đầu để thực hiện kiểm tra trình duyệt tự động trên các trình duyệt web không có GUI [Giao diện người dùng đồ họa]
Vì các thử nghiệm được thực hiện trên Lưới Selenium trực tuyến, thông tin xác thực bao gồm sự kết hợp giữa tên người dùng và mã thông báo truy cập được sử dụng để truy cập URL Lưới LambdaTest — @hub. lambdatest. com/wd/trung tâm
con trăn
xxxxxxxxxx
1
1
#Run Selenium tests in parallel with Python for Selenium Python tutorial
312
API WebDriver từ xa sử dụng URL từ xa và khả năng của trình duyệt [ch_capabilities/saf_capabilities] được tạo bằng trình tạo khả năng LambdaTest
con trăn
xxxxxxxxxx
1
1
#Run Selenium tests in parallel with Python for Selenium Python tutorial
33Conftest. py được sử dụng để chia sẻ đồ đạc trên các tệp. Các thay đổi để chuyển từ Lưới Selenium cục bộ sang Lưới Selenium Trực tuyến chỉ được thực hiện trong conftest. py. Đây là những thay đổi về cơ sở hạ tầng để làm cho mã hoạt động trên Lưới Selenium Trực tuyến
Conftest. py
Các thay đổi chỉ liên quan đến việc chuyển bài kiểm tra sang Lưới Selenium trực tuyến
con trăn
xxxxxxxxxx
1
41
1
#Run Selenium tests in parallel with Python for Selenium Python tutorial
352
import pytest
3
from selenium import webdriver
4
#Run Selenium tests in parallel with Python for Selenium Python tutorial
385
#Run Selenium tests in parallel with Python for Selenium Python tutorial
396
import pytest
67
#Run Selenium tests in parallel with Python for Selenium Python tutorial
418
#Run Selenium tests in parallel with Python for Selenium Python tutorial
169
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1710
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1811
#Run Selenium tests in parallel with Python for Selenium Python tutorial
1912
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2013
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2114
import pytest
615
#Run Selenium tests in parallel with Python for Selenium Python tutorial
4916
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2417
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2518
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2619
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2720
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2821
#Run Selenium tests in parallel with Python for Selenium Python tutorial
2122
import pytest
623
#Run Selenium tests in parallel with Python for Selenium Python tutorial
5724
#Run Selenium tests in parallel with Python for Selenium Python tutorial
5825
@pytest.fixture[scope="class"]
26
________số 827
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6128
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6229
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6330
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6431
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6532
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6533
@pytest.fixture[scope="class"]
34
#Run Selenium tests in parallel with Python for Selenium Python tutorial
235
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6136
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6237
#Run Selenium tests in parallel with Python for Selenium Python tutorial
7138
#Run Selenium tests in parallel with Python for Selenium Python tutorial
7239
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6540
#Run Selenium tests in parallel with Python for Selenium Python tutorial
6541
test_pytest_1. py và test_pytest_2. py
Không có thay đổi cần thiết trong quá trình triển khai cốt lõi vì những thay đổi chỉ liên quan đến cơ sở hạ tầng. Do đó, việc triển khai trong test_pytest_1. py và test_pytest_2. py vẫn giống như cái được sử dụng để kiểm tra trình duyệt chéo trên Selenium Grid cục bộ, mặc dù chúng tôi đã sử dụng một trình duyệt và kết hợp hệ điều hành khác để kiểm tra trình duyệt chéo
Để thực thi mã trên Lưới Selenium trực tuyến trên LambdaTest, chúng tôi sử dụng plugin pytest-xdist với một số thử nghiệm song song được đặt thành 4. Lý do chọn 4 là vì gói thanh toán hiện tại của tôi trên LambdaTest cho phép thực hiện song song 5 thử nghiệm
Thực hiện lệnh sau trên thiết bị đầu cuối để chạy thử nghiệm Selenium song song với Python
#Run Selenium tests in parallel with Python for Selenium Python tutorial
79Đây là ảnh chụp màn hình của e
xecution chỉ ra rằng bốn bài kiểm tra đang chạy song song trên Selenium Grid trực tuyến
Đây là ảnh chụp màn hình thực thi thiết bị đầu cuối cho biết rằng tất cả bốn thử nghiệm để chạy thử nghiệm Selenium song song với Python đều đã vượt qua
Như đã thấy bên dưới trong hướng dẫn Selenium Python này, các thử nghiệm đã thực hiện thành công trên Lưới Selenium trực tuyến
Tất cả trong tất cả
Trong hướng dẫn Selenium Python này, tôi đã xem xét việc sử dụng khung PyTest cho Selenium Grid cục bộ và trực tuyến để chạy thử nghiệm Selenium song song với Python. Thử nghiệm trình duyệt tự động bằng cách sử dụng Selenium Grid cục bộ có thể gặp rào cản bất cứ lúc nào vì nó không thể mở rộng và yêu cầu đầu tư đáng kể vào việc thiết lập và duy trì cơ sở hạ tầng tổng thể. Lưới Selenium trực tuyến giúp tăng tốc quá trình thử nghiệm vì các thử nghiệm có thể được thực hiện song song trên Lưới Selenium đáng tin cậy.
Thử nghiệm trên Lưới Selenium trực tuyến cũng hỗ trợ cải thiện phạm vi thử nghiệm vì thử nghiệm có thể được thực hiện trên nhiều kết hợp trình duyệt, nền tảng và thiết bị khác nhau. Với những nỗ lực tối thiểu [và thay đổi mã], các triển khai thử nghiệm hiện tại có thể được chuyển sang hoạt động với lưới Selenium trực tuyến
Tôi hy vọng bạn tìm thấy bài viết này nhiều thông tin và thấy nó hữu ích. Trong trường hợp có bất kỳ nghi ngờ nào, hãy liên hệ trong phần bình luận bên dưới. Ngoài ra, tôi rất vui nếu bạn có thể chia sẻ hướng dẫn Selenium Python này với các đồng nghiệp và đồng nghiệp của mình, điều này có thể giúp ích cho họ nếu họ gặp phải bất kỳ thách thức nào khi chạy thử nghiệm Selenium song song với Python. Đó là tất cả cho bây giờ