Selenium testing without browser
I use Selenium RC for testing. Now to perform a load test, I want to run parallel test cases. Is there any way to run them without opening a browser?
Chrome now has a headless mode:
op = webdriver.ChromeOptions()
op.add_argument('headless')
driver = webdriver.Chrome(options=op)
To set up on Centos (do all installation as root)
Install pip Download https://bootstrap.pypa.io/get-pip.py
python get-pip.py
Installing selenium If you have pip on your system, you can simply install or upgrade the Python bindings: pip install -U selenium
Alternately, you can download the source distribution from PyPI (e.g. selenium-2.53.1.tar.gz), unarchive it, and run:
python setup.py install
install the program: pyvirtualdisplay
pip install pyvirtualdisplay
yum install Xvfb libXfont Xorg
Then modify your script to add the bold lines within ** and **
**from pyvirtualdisplay import Display**
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
class SeleniumDemo(unittest.TestCase):
def setUp(self):
**self.display = Display(visible=0, size=(800, 600))
self.display.start()**
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "http://www.soastastore.com/"
self.verificationErrors = []
self.accept_next_alert = True
def tearDown(self):`enter code here`
self.driver.quit()
***self.display.stop()***
self.assertEqual([], self.verificationErrors)
You can run Selenium headless, take a look at this question/answer: Is it possible to hide the browser in Selenium RC?
Especially for performance load tests, you should have a look at Apache JMeter.