如何在基于硒素的硒网格的不同浏览器上使用pytest-xdist运行相同的测试?

时间:2020-07-13 08:03:35

标签: python selenium pytest selenium-grid pytest-xdist

我对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的selenium网格以并行方式运行它(现在它是独立的selenoid设置,稍后将移至基于docker的selenoid设置)。

我在网上搜索了有关如何实现此目标的方法,但找不到带硒网格的pytest-xdist示例。

另外,当我检查如何使用pytest-xdist并行运行它时,大多数示例都是并行运行test1和test2的。在我的情况下,由于它们不是独立的,因此必须在多个浏览器中并行运行“ test 1 ... test n”。

我知道进行独立测试会很好,但是现在我没有时间进行重构,因此必须尽快实现。

请让我知道是否有可能实现目标,如果有可能的话我该怎么做?

0 个答案:

没有答案