Is it possible to run multiple instances of one selenium test at once?

后端 未结 2 1497
攒了一身酷
攒了一身酷 2020-12-19 09:26

I have done some research and the consensus appears to state that this is impossible without a lot of knowledge and work. However, would it be possible to run the same test

相关标签:
2条回答
  • 2020-12-19 09:36

    I think you can do that. But I feel the better or easier way to do that is using different windows. Having said that we can use either multithreading or multiprocessing or subprocess module to trigger the task in parallel (near parallel).

    Multithreading example

    Let me show you a simple example as to how to spawn multiple tests using threading module.

    from selenium import webdriver
    import threading
    import time
    
    
    def test_logic():
        driver = webdriver.Firefox()
        url = 'https://www.google.co.in'
        driver.get(url)
        # Implement your test logic
        time.sleep(2)
        driver.quit()
    
    N = 5   # Number of browsers to spawn
    thread_list = list()
    
    # Start test
    for i in range(N):
        t = threading.Thread(name='Test {}'.format(i), target=test_logic)
        t.start()
        time.sleep(1)
        print t.name + ' started!'
        thread_list.append(t)
    
    # Wait for all thre<ads to complete
    for thread in thread_list:
        thread.join()
    
    print 'Test completed!'
    

    Here I am spawning 5 browsers to run test cases at one time. Instead of implementing the test logic I have put sleep time of 2 seconds for the purpose of demonstration. The code will fire up 5 firefox browsers (tested with python 2.7), open google and wait for 2 seconds before quitting.

    Logs:

    C:\Python27\python.exe C:/Users/swadchan/Documents/TestPyCharm/stackoverflow/so49617485.py
    Test 0 started!
    Test 1 started!
    Test 2 started!
    Test 3 started!
    Test 4 started!
    Test completed!
    
    Process finished with exit code 0
    
    0 讨论(0)
  • 2020-12-19 09:44

    Look at TestNG, you should be able to find frameworks that achieve this.

    I did a brief check and here are a couple of links to get you started:

    Parallel Execution & Session Handling in Selenium

    Parallel Execution using Selenium Webdriver and TestNG

    If you want a reliable, rebost framework that can do parallel execution as well as load testing at scale then look at TurboSelenium : https://butlerthing.io/products#demovideo. Drop us a message and will be happy to discuss this with you.

    0 讨论(0)
提交回复
热议问题