Thực thi song song Selenium Python

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

Thực thi song song Selenium Python
qua

Vỏ bọc Himanshu

Show
CỐT LÕI ·

Tháng 7. 30, 20 · Hướng dẫn

Thí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
76

Hiể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

Thực thi song song Selenium 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
77

Tù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ố 8

6

    web_driver = webdriver.Chrome()

7

#Run Selenium tests in parallel with Python for Selenium Python tutorial
0

8

#Run Selenium tests in parallel with Python for Selenium Python tutorial
1

9

#Run Selenium tests in parallel with Python for Selenium Python tutorial
2

10

#Run Selenium tests in parallel with Python for Selenium Python tutorial
0

11

@pytest.fixture(scope="class")

12

#Run Selenium tests in parallel with Python for Selenium Python tutorial
2

13

#Run Selenium tests in parallel with Python for Selenium Python tutorial
3

14

#Run Selenium tests in parallel with Python for Selenium Python tutorial
0

15

#Run Selenium tests in parallel with Python for Selenium Python tutorial
1

16

#Run Selenium tests in parallel with Python for Selenium Python tutorial
2

17




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
9

3

from selenium import webdriver

4

import pytest
1

5

import pytest
2

6

import pytest
3

7

import pytest
4

8

import pytest
5

9

import pytest
6

10

import pytest
7

11

import pytest
8

12

import pytest
9

13

from selenium import webdriver
0

14

from selenium import webdriver
1

15

from selenium import webdriver
2

16

from selenium import webdriver
3

17

import pytest
6

18

from selenium import webdriver
5

19

from selenium import webdriver
6

20

import pytest
6

21

from selenium import webdriver
8

22

from selenium import webdriver
9

23

import pytest
6

24

@pytest.fixture(scope="class")
1

25

@pytest.fixture(scope="class")
2

26

@pytest.fixture(scope="class")
3

27

@pytest.fixture(scope="class")
4

28

import pytest
6

29

@pytest.fixture(scope="class")
6

30

@pytest.fixture(scope="class")
4

31

import pytest
6

32

@pytest.fixture(scope="class")
9

33

def driver_init_1(request):
0

34

import pytest
6

35

def driver_init_1(request):
2

36

def driver_init_1(request):
3

37

def driver_init_1(request):
4

38

def driver_init_1(request):
5

39

from selenium import webdriver
3

40

import pytest
6

41

def driver_init_1(request):
8

42

def driver_init_1(request):
9

43

@pytest.fixture(scope="class")
4

44




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
9

3

from selenium import webdriver

4

import pytest
1

5

import pytest
2

6

import pytest
3

7

import pytest
4

8

import pytest
5

9

import pytest
6

10

#Run Selenium tests in parallel with Python for Selenium Python tutorial
01

11

import pytest
8

12

import pytest
9

13

#Run Selenium tests in parallel with Python for Selenium Python tutorial
04

14

#Run Selenium tests in parallel with Python for Selenium Python tutorial
05

15

#Run Selenium tests in parallel with Python for Selenium Python tutorial
06

16

from selenium import webdriver
3

17

#Run Selenium tests in parallel with Python for Selenium Python tutorial
08

18

#Run Selenium tests in parallel with Python for Selenium Python tutorial
09

19

import pytest
6

20

#Run Selenium tests in parallel with Python for Selenium Python tutorial
11

21

#Run Selenium tests in parallel with Python for Selenium Python tutorial
12

22

#Run Selenium tests in parallel with Python for Selenium Python tutorial
13

23

import pytest
6

24

#Run Selenium tests in parallel with Python for Selenium Python tutorial
15

25

import pytest
6

26

#Run Selenium tests in parallel with Python for Selenium Python tutorial
17

27

#Run Selenium tests in parallel with Python for Selenium Python tutorial
18

28

import pytest
6

29

#Run Selenium tests in parallel with Python for Selenium Python tutorial
20

30

#Run Selenium tests in parallel with Python for Selenium Python tutorial
21

31

#Run Selenium tests in parallel with Python for Selenium Python tutorial
22

32

#Run Selenium tests in parallel with Python for Selenium Python tutorial
23

33

#Run Selenium tests in parallel with Python for Selenium Python tutorial
24

34

import pytest
6

35

#Run Selenium tests in parallel with Python for Selenium Python tutorial
15

36

import pytest
6

37

#Run Selenium tests in parallel with Python for Selenium Python tutorial
28

38

#Run Selenium tests in parallel with Python for Selenium Python tutorial
29

39

#Run Selenium tests in parallel with Python for Selenium Python tutorial
00

40

#Run Selenium tests in parallel with Python for Selenium Python tutorial
01

41

import pytest
6

42

#Run Selenium tests in parallel with Python for Selenium Python tutorial
03

43

#Run Selenium tests in parallel with Python for Selenium Python tutorial
04

44

#Run Selenium tests in parallel with Python for Selenium Python tutorial
05

45

import pytest
6

46

#Run Selenium tests in parallel with Python for Selenium Python tutorial
07

47

#Run Selenium tests in parallel with Python for Selenium Python tutorial
08

48

from selenium import webdriver
3

49

import pytest
6

50

#Run Selenium tests in parallel with Python for Selenium Python tutorial
11

51

def driver_init_1(request):
9

52

@pytest.fixture(scope="class")
4

53




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)

Thực thi song song Selenium Python

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

Thực thi song song Selenium Python

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

  1. 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

  2. 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
15

2

#Run Selenium tests in parallel with Python for Selenium Python tutorial
16

3

#Run Selenium tests in parallel with Python for Selenium Python tutorial
17

4

#Run Selenium tests in parallel with Python for Selenium Python tutorial
18

5

#Run Selenium tests in parallel with Python for Selenium Python tutorial
19

6

#Run Selenium tests in parallel with Python for Selenium Python tutorial
20

7

#Run Selenium tests in parallel with Python for Selenium Python tutorial
21

8




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 xxxxxxxxxx1 1#Run Selenium tests in parallel with Python for Selenium Python tutorial152#Run Selenium tests in parallel with Python for Selenium Python tutorial243#Run Selenium tests in parallel with Python for Selenium Python tutorial254#Run Selenium tests in parallel with Python for Selenium Python tutorial265#Run Selenium tests in parallel with Python for Selenium Python tutorial276#Run Selenium tests in parallel with Python for Selenium Python tutorial287#Run Selenium tests in parallel with Python for Selenium Python tutorial218


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)

Thực thi song song Selenium Python

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
31

2




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
33




Conftest. 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

Thực thi song song Selenium Python

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
35

2

import pytest

3

from selenium import webdriver

4

#Run Selenium tests in parallel with Python for Selenium Python tutorial
38

5

#Run Selenium tests in parallel with Python for Selenium Python tutorial
39

6

import pytest
6

7

#Run Selenium tests in parallel with Python for Selenium Python tutorial
41

8

#Run Selenium tests in parallel with Python for Selenium Python tutorial
16

9

#Run Selenium tests in parallel with Python for Selenium Python tutorial
17

10

#Run Selenium tests in parallel with Python for Selenium Python tutorial
18

11

#Run Selenium tests in parallel with Python for Selenium Python tutorial
19

12

#Run Selenium tests in parallel with Python for Selenium Python tutorial
20

13

#Run Selenium tests in parallel with Python for Selenium Python tutorial
21

14

import pytest
6

15

#Run Selenium tests in parallel with Python for Selenium Python tutorial
49

16

#Run Selenium tests in parallel with Python for Selenium Python tutorial
24

17

#Run Selenium tests in parallel with Python for Selenium Python tutorial
25

18

#Run Selenium tests in parallel with Python for Selenium Python tutorial
26

19

#Run Selenium tests in parallel with Python for Selenium Python tutorial
27

20

#Run Selenium tests in parallel with Python for Selenium Python tutorial
28

21

#Run Selenium tests in parallel with Python for Selenium Python tutorial
21

22

import pytest
6

23

#Run Selenium tests in parallel with Python for Selenium Python tutorial
57

24

#Run Selenium tests in parallel with Python for Selenium Python tutorial
58

25

@pytest.fixture(scope="class")

26

________số 8

27

#Run Selenium tests in parallel with Python for Selenium Python tutorial
61

28

#Run Selenium tests in parallel with Python for Selenium Python tutorial
62

29

#Run Selenium tests in parallel with Python for Selenium Python tutorial
63

30

#Run Selenium tests in parallel with Python for Selenium Python tutorial
64

31

#Run Selenium tests in parallel with Python for Selenium Python tutorial
65

32

#Run Selenium tests in parallel with Python for Selenium Python tutorial
65

33

@pytest.fixture(scope="class")

34

#Run Selenium tests in parallel with Python for Selenium Python tutorial
2

35

#Run Selenium tests in parallel with Python for Selenium Python tutorial
61

36

#Run Selenium tests in parallel with Python for Selenium Python tutorial
62

37

#Run Selenium tests in parallel with Python for Selenium Python tutorial
71

38

#Run Selenium tests in parallel with Python for Selenium Python tutorial
72

39

#Run Selenium tests in parallel with Python for Selenium Python tutorial
65

40

#Run Selenium tests in parallel with Python for Selenium Python tutorial
65

41




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 thi song song Selenium Python

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

Thực thi song song Selenium Python

Đâ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

Thực thi song song Selenium Python

Thực thi song song Selenium Python

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

Thực thi song song Selenium Python

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ờ

Pytest có chạy song song không?

Tìm hiểu Pytest từ đầu . Trong một kịch bản thực tế, một bộ thử nghiệm sẽ có một số tệp thử nghiệm và mỗi tệp sẽ có một loạt các thử nghiệm. Điều này sẽ dẫn đến một thời gian thực hiện lớn. Để khắc phục điều này, pytest cung cấp cho chúng tôi tùy chọn chạy thử nghiệm song song .

Python Unittest có chạy thử nghiệm song song không?

Theo mặc định, unittest-parallel chạy thử nghiệm đơn vị trên tất cả các lõi CPU có sẵn .

Chúng ta có thể sử dụng Python với Selenium Grid không?

Để sử dụng Python với selen, trước tiên hãy cài đặt phiên bản máy khách selen mới nhất tương đương với phiên bản lưới selen đã chọn của bạn . Thí dụ. Nếu bạn đã chọn sử dụng Selenium phiên bản 3. 14. 0 cho lưới Selenium của bạn, cài đặt 3 mới nhất. 14. x cho Python.