跳到主要内容

Selenium 测试

Buddy中的Selenium测试流水线示例。来看看自动化测试就是这么容易!

Selenium是一套用于浏览器测试自动化的工具。使用Buddy专有服务,您可以直接在Buddy中运行Selenium测试。

流水线配置

首先,您需要添加要测试的项目和Git存储仓。您可以将Buddy与GitHub、Bitbucket或GitLab同步,或附加您所选的任何Git存储仓。 新建项目

下一步是添加一个流水线并定义它应该运行的时间和分支。您可以在每次推送到存储仓后、一天中的特定时间或部署到服务器之前运行测试。 新添流水线

现在是时候添加一个运行测试的构建操作了。作为环境,选择预定义的一个构建操作。Buddy支持所有流行的语言、框架和构建工具,从PHP到 Node、Python、Rails、Gulp等等: 构建操作与任务运行

在每个构建操作中,您可以自定义应用程序的环境并定义要运行的命令:

默认Gulp构建命令

Selenium在“服务”选项卡中作为可附加的微服务提供。您可以选择Chrome或Firefox驱动程序:

添加测试服务

添加服务后,复制其主机名并将其粘贴到存储仓中的Selenium配置文件中:

Selenium服务配置

这是一个WebdriverIO文件示例:

  # Node.js + WebdriverIO example
require('webdriverio').remote({
desiredCapabilities: {
browserName : 'chrome'
},
host: 'selenium-ch',
port: 4444
});

BrowserStack集成

如果您想在多个浏览器上并行运行高级Selenium测试,我们建议使用BrowserStack。 配置非常简单,需要在Buddy中添加几个环境变量:

        SELENIUM_HOST: hub.browserstack.com
BS_AUTOMATE_PROJECT: "Buddy Tests"
BS_AUTOMATE_BUILD: "build No. $BUDDY_EXECUTION_ID"
SELENIUM_PLATFORM: WINDOWS
BS_AUTOMATE_OS_VERSION: 10
SELENIUM_BROWSER: IE
SELENIUM_VERSION: 11

创建变量

一旦添加变量后,您可以在配置文件中使用进行测试。下面的示例展示了如何为Ruby的Cucumber框架执行此操作:

require 'selenium/webdriver'

url = "http://#{ENV['BS_USERNAME']}:#{ENV['BS_AUTHKEY']}@hub-cloud.browserstack.com/wd/hub"

capabilities = Selenium::WebDriver::Remote::Capabilities.new

capabilities['project'] = ENV['BS_AUTOMATE_PROJECT'] if ENV['BS_AUTOMATE_PROJECT']
capabilities['build'] = ENV['BS_AUTOMATE_BUILD'] if ENV['BS_AUTOMATE_BUILD']

capabilities['platform'] = ENV['SELENIUM_PLATFORM'] || 'ANY'
capabilities['browser'] = ENV['SELENIUM_BROWSER'] || 'chrome'
capabilities['browser_version'] = ENV['SELENIUM_VERSION'] if ENV['SELENIUM_VERSION']

browser = Selenium::WebDriver.for(:remote, :url => url, :desired_capabilities => capabilities)

Before do |scenario|
@browser = browser
end

at_exit do
browser.quit
end

参看