27

私はテストにSelenium RCを使用します。ロードテストを実行するために、私は並列テストケースを実行したいと思います。 ブラウザを開かずに実行する方法はありますか?ブラウザーのないセレンテスト

+0

[それはSelenium RCの中で、ブラウザを非表示にすることは可能ですか?]の可能複製(http://stackoverflow.com/questions/1418082/is-it-possible-to-hide-the- browser-in-selenium-rc) –

答えて

4

CentOSに上に設定(rootとして、すべてのインストールを実行)するにはインストールピップhttps://bootstrap.pypa.io/get-pip.py

python get-pip.py 

セレン01のインストールシステムにpipがある場合は、単にPythonバインディングをインストールまたはアップグレードすることができます。 pip install -U selenium

代わりに、PyPIからソースディストリビューションをダウンロードできます。セレン-2.53.1.tar.gz)、そのアーカイブを解除し、実行します。

python setup.py install 

は、プログラムをインストールします。pyvirtualdisplay

pip install pyvirtualdisplay 

yum install Xvfb libXfont Xorg 

は、次に**内の太字の行を追加するためにスクリプトを修正して* *

**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 

クラス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) 
6

あなたはこの質問/答えを見てみましょう、セレンのヘッドレスを実行することができます。

Is it possible to hide the browser in Selenium RC?は特に、パフォーマンス負荷テストのために、あなたは Apache JMeterを見ている必要があります。

+0

GWTアプリケーションの負荷テスト用にApache JMeterを試しました。しかし、それはかなり成功していません。 – Mohyt

43

はい。ただinstall PhantomJS。あなたのコードの残りの部分を変更すると、何のブラウザが開いていないだろう必要はありません

driver = webdriver.PhantomJS()

:に

driver = webdriver.Firefox()

次に、この行を変更します。


デバッグのために、あなたのコードの異なる段階でdriver.save_screenshot('screen.png')を使用するか、もう一度Firefoxのに切り替える:

if os.getenv("environment") == "production": 
    driver = webdriver.PhantomJS() 
else: 
    driver = webdriver.Firefox() 
+2

これは答えになるはずです –

+0

最も単純な回答が最も良いです!ありがとうございました。 – hod

0

必ずドキュメントに従ってください。ここにあるのはselenium docです。それはstandalone jarを提供します。

  • スタンドアロンジャーをダウンロードします。コマンドを使用して実行してください。

    java -jar selenium-server-standalone.jar 
    
  • これで、スタナロンサーバーが起動しました。

  • 以下のようにウェブドライバをセットアップし、残りの部分はそのままです。

    driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True}) 
    
  • 要約コードは次のようになります。

    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() 
    
関連する問題