Uso il Selenium RC per i test. Ora per eseguire un test di carico, voglio eseguire test case paralleli. C'è un modo per eseguirli senza aprire un browser?Test selenio senza browser
risposta
Per impostare su CentOS (fare tutto installazione da root)
Installa pip Scarica https://bootstrap.pypa.io/get-pip.py
python get-pip.py
Installazione selenio Se si dispone di pip sul sistema, si può semplicemente installare o aggiornare i binding Python: pip install selenio -U
In alternativa, è possibile scaricare la distribuzione sorgente da PyPI (ad esempio selenio 2.53.1.tar.gz), estrarlo, ed eseguire:
python setup.py install
installare il programma: pyvirtualdisplay
pip install pyvirtualdisplay
yum install Xvfb libXfont Xorg
quindi modificare lo script per aggiungere le linee decise entro ** e * *
**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
classe 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)
È possibile eseguire selenio senza testa, dare un'occhiata a questa domanda/risposta: Is it possible to hide the browser in Selenium RC?
Soprattutto per prove di carico delle prestazioni, si dovrebbe dare un'occhiata a Apache JMeter.
Ho già provato Apache JMeter per il test di carico delle app GWT. Ma non ha abbastanza successo. – Mohyt
Sì. Solo install PhantomJS.
Quindi, modificare questa riga:
driver = webdriver.Firefox()
a:
driver = webdriver.PhantomJS()
Il resto del codice non avrà bisogno di essere cambiato e si aprirà nessun browser.
Per scopi di debug, utilizzare driver.save_screenshot('screen.png')
nelle diverse fasi del vostro codice o semplicemente tornare a Firefox di nuovo:
if os.getenv("environment") == "production":
driver = webdriver.PhantomJS()
else:
driver = webdriver.Firefox()
questa dovrebbe essere la risposta –
Le risposte più semplici di solito sono le migliori! Grazie. – hod
Seguire sempre la documentazione. Ecco cosa dice selenium doc. Fornisce un standalone jar.
Scarica il vaso autonomo. E eseguilo con il comando
java -jar selenium-server-standalone.jar
Ora verrà avviato un server stanalone.
Ora imposta il tuo webdriver come sotto e la parte resterà così com'è.
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True})
Il codice di riepilogo sarà come.
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.common.keys import Keys driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True}) driver.get("http://www.python.org") assert "Python" in driver.title elem = driver.find_element_by_name("q") elem.clear() elem.send_keys("pycon") elem.send_keys(Keys.RETURN) assert "No results found." not in driver.page_source driver.close()
possibile duplicato [E 'possibile nascondere il browser in Selenio RC?] (Http://stackoverflow.com/questions/1418082/is-it-possible-to-hide-the- browser-in-selenium-rc) –