自动化运维:Selenium 测试

205 阅读2分钟

本文将以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