Selenium 测试
Buddy中的Selenium测试流水线示例。来看看自动化测试就是这么容易!
Selenium是一套用于浏览器测试自动化的工具。使用Buddy专有服务,您可以直接在Buddy中运行Selenium测试。
流水线配置
首先,您需要添加要测试的项目和Git存储仓。您可以将Buddy与GitHub、Bitbucket或GitLab同步,或附加您所选的任何Git存储仓。
下一步是添加一个流水线并定义它应该运行的时间和分支。您可以在每次推送到存储仓后、一天中的特定时间或部署到服务器之前运行测试。
现在是时候添加一个运行测试的构建操作了。作为环境,选择预定义的一个构建操作。Buddy支持所有流行的语言、框架和构建工具,从PHP到 Node、Python、Rails、Gulp等等:
在每个构建操作中,您可以自定义应用程序的环境并定义要运行的命令:
Selenium在“服务”选项卡中作为可附加的微服务提供。您可以选择Chrome或Firefox驱动程序:
添加服务后,复制其主机名并将其粘贴到存储仓中的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