[pytest] Запуск pytest с потоком - PullRequest
       70

[pytest] Запуск pytest с потоком

0 голосов
/ 12 января 2019

У меня вопрос к pytest

Я хотел бы запустить один и тот же скрипт pytest с несколькими потоками. Но я не уверен, как создать и запустить поток, который передает более одного параметра. (И работает поток с pytest ..)

например у меня test_web.py

from selenium import webdriver
import pytest


class SAMPLETEST:
    self.browser = webdriver.Chrome()
    self.browser.get(URL)
    self.browser.maximize_window()


    def test_title(self):
        assert "Project WEB" in self.browser.title


    def test_login(self):
        print('Testing Login')

        ID_BOX =  self.broswer.find_element_by_id("ProjectemployeeId") 
        PW_BOX = self.broswer.find_element_by_id("projectpassword") 
        ID_BOX.send_keys(self.ID) # this place for ID. This param come from thread_run.py
        PW_BOX.send_keys(self.PW) # this place for PW. It is not working. I am not sure how to get this data from threa_run.py
        PW_BOX.submit()

IN thread_run.py

import threading
import time
from test_web import SAMPLETEST

ID_List = ["0","1","2","3","4","5","6","7"]
PW_LIST = ["0","1","2","3","4","5","6","7"]



threads = []
print("1: Create thread")

for I in range(8):
    print("Append thread" + str(I))
    t = threading.Thread(target=SAMPLETEST, args=(ID_List[I], PW_LIST[I]))
    threads.append(t)


for I in range(8):
    print("Start thread:" + str(I))
    threads[I].start()

Я смог запустить поток для запуска многих классов SAMPLETEST без pytest.

Однако, это не работает с pytest.

Мой вопрос.

Во-первых, как инициализировать self.brower в inspe из SAMPLETEST? Я уверен, что приведенные ниже коды не будут работать

self.browser = webdriver.Chrome()
    self.browser.get(URL)
    self.browser.maximize_window()

Во-вторых, как в thread_run.py как передать два аргумента (ID и пароль), когда я запускаю thread, чтобы вызвать SAMPLTEST для test_web.py?

ID_BOX.send_keys (self.ID) # это место для ID. Этот параметр взят из thread_run.py

ID_BOX.send_keys(self.ID) 

            PW_BOX.send_keys(self.PW) 

Я пытался построить конструктор ( init ) в классе SAMPLETEST, но он не работал ...

Я не совсем уверен, как запускать потоки (которые передают аргументы или параметр) с pytest.

...