Как запустить один и тот же набор тестов с использованием pytest-xdist в разных браузерах сетки селена на основе селеноида?

Я сравнительно новичок в питоне.

У меня есть текущий набор тестов, как показано ниже:

import logging 
import ast
import unittest
import sys
import pytest
import traceback
import allure
import softest
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from webdriver_manager.chrome import ChromeDriverManager


logging.basicConfig(level = logging.INFO)


@pytest.mark.abc_test()
class test_abc_Chrome(softest.TestCase):

    @classmethod
    def setUpClass(self):
        self.driver=webdriver.Chrome(ChromeDriverManager().install())
        self.driver.maximize_window()
        self.driver.get('https://example.com')
        sleep(7)

    @allure.feature("Verify_Valid_Phone_Number")
    @allure.description("enter valid phone number")
    def test_001_Verify_Valid_Phone_Number(self):
        logging.info("enter valid phone number")
        with allure.step("enter valid phone number"):
            #This is PreWait
            sleep(1)
            self.driver.find_element_by_id("locator").send_keys("1234567890")
            #This is PostWait
            sleep(1)

Я использую каждый шаг как тест, и каждый из них зависит от предыдущего шага (ов).

Теперь мне нужно запустить его параллельно, используя pytest-xdist и selenium grid, который основан на Selenoid (сейчас это автономная настройка селеноида, позже перейдет к настройке селеноида на основе докеров).

Я искал в Интернете, как этого добиться, но не смог найти ни одного примера pytest-xdist с сеткой селена.

Также, когда я проверил, как запустить его параллельно с помощью pytest-xdist, в большинстве примеров запускались test1 и test2 параллельно; в то время как в моей ситуации я должен запускать его как "test 1 ... test n" в нескольких браузерах параллельно, поскольку они не независимы.

Я понял, что было бы хорошо провести независимые тесты, но сейчас у меня нет времени на рефакторинг, и я должен добиться этого как можно скорее.

Пожалуйста, дайте мне знать, возможно ли это достичь или нет, и если это возможно, то как я могу это сделать?

0 ответов

Другие вопросы по тегам