Как запустить один и тот же набор тестов с помощью pytest-xdist в разных браузерах сетки селена на основе селеноида? - PullRequest
0 голосов
/ 13 июля 2020

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

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

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 и сетку селена, основанную на Selenoid (сейчас это автономная настройка селеноида, позже перейдет к docker на основе selenoid setup).

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...