Tôi đã thiết lập thành công SeleniumGrid để chạy thử nghiệm Python trên nhiều máy có hệ điều hành và trình duyệt khác nhau. Tuy nhiên, tôi vẫn phải viết cùng một trường hợp thử nghiệm 3 lần, một lần cho mỗi nút, vì tham chiếu đến nút nằm trong trường hợp thử nghiệm.Làm cách nào để thiết lập một trường hợp thử nghiệm Lưới Selenium Grid để kiểm tra trên nhiều máy?
Tôi đã xem xét tất cả các loại đề xuất trực tuyến cho Python ví dụ: nút tách ra ips ra vào các tập tin bên ngoài và nhập khẩu này vào trường hợp thử nghiệm nhưng không ai trong số họ dường như làm việc hoặc các hướng dẫn dành cho Java.
Với một cú này từ Mozilla, tôi không chắc chắn làm thế nào tôi thiết lập tập tin này với các trường hợp thử nghiệm của tôi/làm thế nào để chạy nó: http://viewvc.svn.mozilla.org/vc/projects/sumo/tests/frontend/python_tests/suite_sumo.py?view=markup
Làm thế nào để tôi đặt trường hợp thử nghiệm Python tôi lên vì vậy tôi chỉ viết nó Một lần?
lệnh Hub My hướng dẫn nhắc nhở là:
java -jar selenium-server-standalone-2.29.0.jar -host http://localmachineipaddress -port 4444 -role hub
Nodes My lệnh hướng dẫn nhanh chóng là:
*FireFox PC, Chrome PC, Safari PC, and IE9 PC on local machine*
java -jar selenium-server-standalone-2.29.0.jar -host localhost -role webdriver -hub http://theHubIP:4444/grid/register -port 5555 -browser browserName=firefox,maxInstances=5,platform=WINDOWS -browser browserName=chrome,maxInstances=5,platform=WINDOWS -Dwebdriver.chrome.driver=c:\SeleniumGrid\chromedriver.exe -browser browserName=iehta,maxInstances=5,platform=WINDOWS -Dwebdriver.ie.driver=c:\SeleniumGrid\IEDriverServer.exe -browser browserName=safari,maxInstances=5,platform=WINDOWS -Dwebdriver.safari.driver=c:\Python27\SafariDriver2.28.0.safariextz
*FireFox MAC, Safari MAC, and Chrome MAC machine*
java -jar selenium-server-standalone-2.29.0.jar -role webdriver -hub http://theHubIP:4444/grid/register -debug -port 5556 -browser browserName=firefox,maxInstances=5,platform=MAC -browser browserName=chrome,maxInstances=5,platform=MAC -browser browserName=safari,maxInstances=5,platform=MAC -Dwebdriver.safari.driver=c:\Python27\SafariDriver2.28.0.safariextz
*IE8 PC machine*
java -jar selenium-server-standalone-2.29.0.jar -role webdriver -hub http://theHubIP:4444/grid/register -port 5559 -browser browserName=iehta,maxInstances=5,platform=WINDOWS -Dwebdriver.ie.driver=c:\SeleniumGrid\IEDriverServer.exe
Test Case My lệnh hướng dẫn nhanh chóng là:
python Python27/Test_Cases/SeleniumTest.py 5555 firefox WINDOWS
python Python27/Test_Cases/SeleniumTest.py 5555 chrome WINDOWS
python Python27/Test_Cases/SeleniumTest.py 5555 iehta WINDOWS
python Python27/Test_Cases/SeleniumTest.py 5555 safari WINDOWS
python Python27/Test_Cases/SeleniumTestIE8.py 5559 iehta WINDOWS
python Python27/Test_Cases/SeleniumTestApple.py 5556 chrome MAC
python Python27/Test_Cases/SeleniumTestApple.py 5556 firefox MAC
python Python27/Test_Cases/SeleniumTestApple.py 5556 safari MAC
Test Case của tôi là:
# coding: utf-8
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import HTMLTestRunner
import unittest, time
import sys
class SeleniumTest1(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Remote(command_executor="http://theNodeIP:5555/wd/hub",desired_capabilities={ "browserName": browser, "platform": platform, "node":node })
self.driver.implicitly_wait(2)
def mytest(self):
self.driver.get("http://url.com")
self.driver.find_element_by_css_xpath("test_some_stuff").click()
def tearDown(self):
self.driver.quit()
def suite():
s1 = unittest.TestLoader().loadTestsFromTestCase(SeleniumTest1)
return unittest.TestSuite([s1])
def run(suite, report = "C:\\Python27\\Test_Cases\\Reports\\SeleniumTest1.html"):
with open(report, "w") as f:
HTMLTestRunner.HTMLTestRunner(
stream = f,
title = 'SeleniumTest1',
verbosity = 2,
description = 'SeleniumTest1'
).run(suite)
if __name__ == "__main__":
args = sys.argv
node=args[1]
browser = args[2]
platform = args[3]
run(suite())
Tại sao không chỉ đặt mã thử nghiệm lặp lại vào hàm v.d. def someRepeatTest (webdriver): # dòng mã của bạn vào đây ... –