我需要在無頭Ubuntu服務器上使用Selenium RC,以使用外部代理服務器來模擬不同國家的用戶對網站運行測試。如何通過外部代理服務器發送無頭Selenium RC測試?
要測試的過程中,我創建了一個非常簡單的PHPUnit的測試腳本,其基本作用:
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://www.ipchicken.com/");
$this->open("/");
$this->assertTrue($this->isTextPresent(<proxy ip>));
我使用這些代理服務器指令(有代理上的無身份驗證)開始了我的硒RC:
export DISPLAY=":99" && java -Dhttp.proxyHost=<proxy ip> -Dhttp.proxyPort=<proxy port> -jar /var/lib/selenium/selenium-server.jar -avoidProxy
但我的測試腳本失敗了斷言。如果我更改測試以斷言我的Selenium服務器IP地址,斷言將通過,這使我們看起來像Selenium直接向ipchicken.com發送「open」請求,而不是通過代理服務器發送它。
硒服務器可以訪問代理服務器好吧 - 我已經用一個簡單的PHP Curl腳本測試過了。如果我通過代理服務器使用Curl請求ipchicken.com,它將返回代理服務器IP地址就好了。
感謝 - 這是一個很好的想法,但是這將導致RC服務器可以在「啓動Firefox」階段掛起。如果我嘗試「導出http_proxy =主機:端口」(即沒有http://前綴),RC服務器工作正常,但仍然不使用代理。 – 2011-06-16 12:03:21
有關使用Firefox修補程序添加到修復程序的信息。 – borrible 2011-06-16 12:35:06
完美 - 謝謝!作爲其他人爲此付出的一個側面提示,我最初使用的是Selenium v2.0b2,它沒有以真正的用戶配置文件啓動Firefox。升級到Selenium v2.0rc3爲我解決了這個問題,但我認爲它實際上是在v2.0b3中修復的。 – 2011-06-29 11:55:30