如何在browserstack.com上运行Selenium测试?

10

假设我想在我的网站上执行以下测试:

  • 将其加载到浏览器中。
  • 单击一个按钮,该按钮执行一些JavaScript。
  • 等待JavaScript操作完成。
  • 查看页面现在的外观。

我知道如何为此创建一个Selenium测试。我也知道如何在browserstack.com手动执行此测试,也就是说,对于我需要的每个浏览器,启动一个BrowserStack VM,然后执行这些步骤。

我如何将Selenium测试(可以是JS、C#或其他语言编写)与BrowserStack结合起来,以便BrowserStack在我需要的所有浏览器上执行测试,然后向我发送一些报告,如一堆屏幕截图?

BrowserStack在http://www.browserstack.com/automated-browser-testing-api提供了有关TestSwarm和Selenium的一些小文档,但由于我对Web测试主题绝对是新手,我不知道BrowserStack、Selenium和可能的TestSwarm如何相互作用。

编辑: Selenium和Testswarm只是示例,我不偏好任何框架,我只需要自动化BrowserStack。

3个回答

17

BrowserStack.com现在支持使用名为Automate的工具进行端到端的selenium测试。有一篇文档可帮助您开始编写许多编程语言的示例代码。与其他产品一样,隧道和其他几个功能已经集成了。

完全披露:我为BrowserStack.com工作。


3
有点跑题,但是:Browserstack 是一款非常棒的软件! - JochemQuery
当传递浏览器堆栈中心URL“http://hub.browserstack.com/wd/hub/”时,我会收到身份验证错误。有什么建议如何解决这个问题吗? - kk1076
不幸的是,我正在与需要用户名和密码的代理后面的网络驱动程序进行斗争。 - Dallas Clark

4

我认为目前不可能...

本地测试文档给出了一个他们命令行工作方式的示例:

命令行界面

java -jar BrowserStackTunnel.jar TI3PnSeogaDEcwSyiSzm localhost,3000,0

根据我的selenium经验,这种方式没有任何启动selenium测试的方法。

以下是我调用selenium测试的示例:

java -Dpfile="../properties/ff-test.properties" -jar ../runselenium.jar ca.myorg.tests.HappyPathTest 

我刚刚收到了一封电子邮件,承诺在下个月(2013年5月)前全面支持Selenium自动化测试:

我们正在努力实现全面的自动化测试,包括Selenium,并预计将在下个月发布。完成后,我们将会通知您。

希望这可以帮到您。


现在已经是六月了,他们是否确实亲自通知您添加Selenium支持?无论如何,您知道目前的情况吗?(对我个人来说不再重要,但保持这个答案最新状态会很好。) - Mark Amery
2
抱歉,我现在才注意到你的消息,已经八月了。是的,BrowserStack确实在七月中旬推出了http://www.browserstack.com/automate。我对它感到非常满意。示例代码一次就能成功运行。可视化仪表板实时更新。电子邮件支持的响应时间为24小时。 - dfdumaresq

2
目前,在Selenium上运行自动化任务非常简单。Browserstack创建了非常好的文档(涵盖不同的编程语言)。例如,这里是你需要为 C# 完成此操作的方法。所以,你所需要做的就是稍微修改一下你的Selenium测试,获取你的API密钥(如果你订阅了这项服务,它将已经在页面上),并选择你想要进行测试的操作系统/浏览器/设备。
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

namespace SeleniumTest {
  class Program {
    static void Main(string[] args) {
      IWebDriver driver;
      DesiredCapabilities capability = DesiredCapabilities.Firefox();
      capability.SetCapability("browserstack.user", "USER_ID");
      capability.SetCapability("browserstack.key", "API_KEY");

      driver = new RemoteWebDriver(
        new Uri("http://hub.browserstack.com/wd/hub/"), capability
      );
      driver.Navigate().GoToUrl("http://www.google.com/ncr");
      Console.WriteLine(driver.Title);

      IWebElement query = driver.FindElement(By.Name("q"));
      query.SendKeys("Salvador Dali");
      query.Submit();
      Console.WriteLine(driver.Title);

      driver.Quit();
    }
  }
}

正文:正如您所看到的,一切几乎与您的Selenium测试相同。 您还可以创建Selenium截图以及使用其截图API
翻译:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接