java - 使用 Selenium 和 Browserstack 配置 Jenkins 构建

标签 java selenium jenkins selenium-webdriver browserstack

社区中有没有人使用 Browserstack 作为他们的云提供商在 Jenkins 中成功创建了一个 Selenium 构建,同时需要防火墙后面的本地测试连接?

我可以肯定地说,Saucelabs 非常容易在持续部署环境中使用 Sauce Jenkins 插件执行构建,正如我所做的那样。但是,我不能对 Browserstack 说同样的话。我工作的组织目前使用 Browserstack,尽管他们的服务确实支持使用二进制应用程序进行自动化测试,但我发现 Jenkins 很麻烦。如果是的话,我需要绝对确保 Browserstack 不是一个可行的解决方案。我喜欢 Saucelabs 和他们的组织提供的东西,但如果 Browserstack 工作,我不想切换,如果我不需要的话。

Browserstack 文档指导您使用一些可用选项运行命令,以便在执行前创建本地连接。

nohup ./[binary file] -localIdentifier [id] [auth key] localhost,3000,0 &

我已将上述语句添加为预构建步骤 shell 命令。我还必须添加“nohup”,因为一旦二进制文件成功创建连接,构建就不会真正开始,因为我没有退出,如下面的输出所示。

BrowserStackLocal v3.5

You can now access your local server(s) in our remote browser.

Press Ctrl-C to exit

通常我可以毫无问题地成功执行第一个构建。使用相同命令的后续构建配置永远不会连接。上面的消息显示,但在测试执行期间 Browserstack 报告没有建立本地测试连接。这让我很困惑。

为了让您更好地了解正在执行的内容,我为各种项目套件和浏览器组合提供了 15 种构建配置。存在两个 Jenkins 执行器,并且我在任何给定时间都有超过 5 个 Browserstack VM 可用。当相关的项目代码被推送到登台服务器时,其中五个构建将自动开始执行,填满两个执行程序。其中之一将开始和结束。其他人都不会,因为 Browserstack 报告本地测试不可用。

Saucelabs 显然已经通过他们的插件解决了这个问题,这很棒。如果 Browserstack 需要 shell 命令来创建本地测试连接,我一定是做错了什么,乱序等等。

环境:

  • Java 7
  • Selenium 2.45
  • JUnit 4.11
  • 行家 3.1.1
  • 倾城 1.4.10
  • Jenkins 1.5

谁能发布一些在连续测试环境中使用 Browserstack 同时利用多个并行测试执行的信息,并告诉我每个构建是如何配置的?

谢谢,

最佳答案

我最近研究了使用 Selenium 的 BrowserStack 和 BrowserStack Plugin使这项任务变得容易得多。

特点

  • 全局或按构建作业管理您的 BrowserStack 凭据。
  • 设置和拆除 BrowserStack Local 以测试内部、开发或 暂存环境。
  • 将 BrowserStack Automate 报告嵌入您的 Jenkins 作业结果。

全面集成更容易。

关于java - 使用 Selenium 和 Browserstack 配置 Jenkins 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28947481/

相关文章:

java - 删除ArrayList中每个索引的前导空格

java - 如何在 Twitter 中检查流式 API 中的速率限制

java - 请求开始时的异常 - ClientAuth SSL

java - 包含库 jar 时出现 ClassNotFoundException

java - Selenium webdriver - 鼠标悬停和下拉菜单 - 鼠标在浏览器内部/外部问题

java - 如何强制 Selenium 使用 WebDriver 的永久 Firefox 配置文件?

python - Pandas:将行追加到已经通过 pandas.DataFrame.apply 运行的 DataFrame

java - maven编译的问题

ios - 有没有办法在构建之前下载配置文件(使用 Jenkins 或脚本)来构建机器?

ios - 授予 Jenkins 解锁钥匙串(keychain)的权限