У меня вопрос к 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.