Note that there are some explanatory texts on larger screens.

plurals
  1. POHow do I set up a Selenium Grid Python test case to test across multiple machines?
    primarykey
    data
    text
    <p>I have successfully set up SeleniumGrid to run my Python tests across multiple machines that have different OS and browsers. However, I am still having to write the same test case 3 times, once for each node, because the reference to the node is inside the test case.</p> <p>I've looked at all sorts of online suggestions for Python eg. seperating node ips out into external files and importing this into the test case but none of them seem to work or the instructions are for Java.</p> <p>With this one from Mozilla, I'm not sure how I set this file up with my test cases/how to run it: <a href="http://viewvc.svn.mozilla.org/vc/projects/sumo/tests/frontend/python_tests/suite_sumo.py?view=markup" rel="noreferrer">http://viewvc.svn.mozilla.org/vc/projects/sumo/tests/frontend/python_tests/suite_sumo.py?view=markup</a> </p> <p>How do I set my Python test cases up so I only write it once?</p> <p><strong>My Hub command prompt instruction is:</strong></p> <pre><code>java -jar selenium-server-standalone-2.29.0.jar -host http://localmachineipaddress -port 4444 -role hub </code></pre> <p><strong>My Nodes command prompt instructions are:</strong></p> <pre><code>*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 </code></pre> <p><strong>My Test Case command prompt instructions are:</strong></p> <pre><code>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 </code></pre> <p><strong>My Test Case is:</strong></p> <pre><code># 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()) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload