【发布时间】:2011-06-15 15:13:09
【问题描述】:
我需要在无头 Ubuntu 服务器上使用 Selenium RC 对使用外部代理服务器的网站运行测试,以模拟不同国家/地区的用户。
为了测试这个过程,我创建了一个非常简单的 PHPUnit 测试脚本,它基本上可以:
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://www.ipchicken.com/");
$this->open("/");
$this->assertTrue($this->isTextPresent(<proxy ip>));
我使用这些代理服务器指令启动我的 Selenium 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,而不是通过代理服务器发送。
selenium 服务器可以访问代理服务器 OK - 我已经用一个简单的 PHP Curl 脚本对此进行了测试。如果我通过代理服务器使用 Curl 请求 ipchicken.com,它返回代理服务器 IP 地址就好了。
【问题讨论】: