2016-06-16 8 views
0

로컬 컴퓨터와 원격 컴퓨터간에 테스트를 배포하고 싶습니다. 나는 2 개의 테스트를 가지고 있으며 더 빠른 실행을 위해 이들을 나란히 실행하려고합니다. 하나는 로컬 시스템에 있고 다른 하나는 원격 시스템에 있습니다.하위 프로세스 방식 (일반 그리드 또는 젠킨스 사용)을 사용하여 셀렌 그리드를 사용하여 테스트 배포

TestOnChrome.py

: 내가 설정 내 허브 지역과 또한 내가 원격 시스템에있는 다른 노드를 등록에 하나 개의 노드 .. 여기

같은 디렉토리에 저장 내 세 개의 코드 파일입니다이 여기 TestOnChromeTwo.py

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
from selenium.webdriver.support.ui import WebDriverWait 
import time, unittest 


class OnFirefox(unittest.TestCase): 

    def setUp(self) : 
     self.driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub',desired_capabilities=DesiredCapabilities.CHROME) 


    def test_Google_Search_FF(self): 
     driver = self.driver 
     driver.get("http://www.google.com") 
     inputElement = driver.find_element_by_name("q") 
     inputElement.send_keys("Cheese!") 
     inputElement.submit() 



    def tearDown(self): 
     self.driver.quit() 


if __name__ == "__main__": 
    unittest.main() 

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
from selenium.webdriver.support.ui import WebDriverWait 
import time, unittest 


class OnFirefox(unittest.TestCase): 

    def setUp(self) : 
     self.driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub',desired_capabilities=DesiredCapabilities.CHROME) 


    def test_Google_Search_FF(self): 
     driver = self.driver 
     driver.get("http://www.google.com") 
     inputElement = driver.find_element_by_name("q") 
     inputElement.send_keys("Cheese!") 
     inputElement.submit() 



    def tearDown(self): 
     self.driver.quit() 


if __name__ == "__main__": 
    unittest.main() 

내 runner.py

입니다
from subprocess import Popen 
import glob 
tests = glob.glob('test*.py') 
processes = [] 
for test in tests: 
    processes.append(Popen('python %s' % test, shell=True)) 
for process in processes: 
    process.wait() 

runner.py를 실행하면 자동으로 테스트가 배포됩니까? 내가 등록한 노드를 사용하고 있습니까? 아니면 다른 일을해야합니까?

답변

2

코드가 그리드 허브에서 브라우저를 요청할 때마다 그리드 허브는 요청 된 기능과 일치하는 무료 브라우저 인스턴스에 대해 등록 된 그리드 노드를 검색합니다. 여기에 브라우저를 요청하는 것 이외에는 아무 것도 할 필요가 없습니다. self.driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub',desired_capabilities=DesiredCapabilities.CHROME).

+0

정말 고마워요. 그렇다면 올바른 접근 방식을 사용하고 있습니까? – user5653362