【问题标题】:How can I send headless Selenium RC tests via an external proxy server?如何通过外部代理服务器发送无头 Selenium RC 测试?
【发布时间】: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 地址就好了。

【问题讨论】:

    标签: proxy selenium


    【解决方案1】:

    我在尝试让代理在 Ubuntu 系统上工作时遇到了同样的问题,但无法让 -Dhttp.proxyHost 等设置正常工作。我的解决方案是在 java 命令之前导出 http_proxy - 就像使用 DISPLAY 一样。

    export http_proxy = http://username:password@host:port
    

    更新:由于您使用的是 firefox,因此您还需要在 firefox 中设置适当的代理设置。 (您在评论中提到的 hang 是 firefox 无法通过代理)。您需要使用

    运行 firefox profilemanager
    firefox -ProfileManager
    

    然后创建一个新的配置文件。为配置文件的路径创建一个新目录,因为它将在该位置放置大量文件。在该配置文件中创建适当的代理设置。您现在可以将 firefoxProfileTemplate 选项与 selenium rc 一起使用:

     java -jar ..... -firefoxProfileTemplate /path/to/your/new/profile
    

    请注意,您只需要运行一次配置文件管理器,因此之后您就可以无头运行了。

    【讨论】:

    • 谢谢 - 这是个好主意,但这会导致 RC 服务器在“启动 Firefox”阶段挂起。如果我尝试“export http_proxy=host:port”(即没有 http:// 前缀),RC 服务器工作正常,但仍然不使用代理。
    • 完美 - 谢谢!作为其他为此苦苦挣扎的人的旁注,我最初使用的是 Selenium v​​2.0b2,它无法使用真实的用户配置文件启动 Firefox。升级到 Selenium v​​2.0rc3 为我解决了这个问题,尽管我认为它实际上已在 v2.0b3 中修复。
    【解决方案2】:

    我将使用 Selenium Grid 简要说明一下
    1. 首先在 Linux 上使用 Xorg:96 -ac 启动显示
    2. 现在导出 DISPLAY=96。
    3. 启动火狐
    4. 使用 selenium grid 启动 Selenium Port。
    以上步骤应在 Linux 服务器上完成。

    1. 在 linux 上启动 selenium 服务器之前,请在您的机器上启动 hub
    2. 现在执行脚本,它将转到 linux 上的活动端口。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 2021-01-30
      相关资源
      最近更新 更多