J'utilise Selenium RC pour les tests. Maintenant, pour effectuer un test de charge, je veux exécuter des cas de test parallèles . Est-il possible de les exécuter sans ouvrir de navigateur?
Pour configurer sur Centos (effectuez toutes les installations en tant que root)
Installer pip Télécharger https://bootstrap.pypa.io/get-pip.py
python get-pip.py
Installation de Selenium Si vous avez pip sur votre système, vous pouvez simplement installer ou mettre à niveau les liaisons Python: pip installer -U sélénium
Vous pouvez également télécharger la distribution source à partir de PyPI (par exemple, Selenium-2.53.1.tar.gz), la désarchiver et exécuter:
python setup.py install
installer le programme: pyvirtualdisplay
pip install pyvirtualdisplay
yum install Xvfb libXfont Xorg
Puis modifiez votre script pour ajouter les lignes en gras entre ** et **
**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)
Vous pouvez utiliser Selenium sans tête, jetez un oeil à cette question/réponse: Est-il possible de cacher le navigateur dans Selenium RC?
Pour les tests de performances, vous devriez jeter un coup d'œil à Apache JMeter .
essaye ça
op = webdriver.ChromeOptions()
op.add_argument('headless')
driver = webdriver.Chrome(options=op)
Suivez toujours la documentation. Voici ce que Selenium doc dit. Il fournit un pot autonome .
Téléchargez le pot autonome. Et lancez-le avec commande
Java -jar Selenium-server-standalone.jar
Vous allez maintenant voir un serveur stanalone démarré.
Maintenant, configurez votre lecteur Web comme ci-dessous et la partie restante sera telle quelle.
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True})
Le code récapitulatif sera comme.
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()
C'est possible, mais pas avec le pilote firefox/chrome/etc. standard.
Vous devez installer PhantomJS. Attribuez simplement votre WebDriver à une instance du pilote phantomJS:
driver = webdriver.PhantomJS()
Si vous exécutez votre code maintenant, aucune fenêtre de navigateur ne sera ouverte.