您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源功能測(cè)試工具 > Selenium
搭建自己的前端自動(dòng)化測(cè)試框架
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2016/8/3 16:02:56 ] 推薦標(biāo)簽:Selenium,Nightwatch

  二. 配置 Selenium
  Selenium 是自動(dòng)化測(cè)試環(huán)境,它提供了測(cè)試服務(wù)器、啟動(dòng)瀏覽器、網(wǎng)頁自動(dòng)操作等功能,同時(shí)暴露 API 給 Nightwatch 供我們使用。
  我們接下來將要告訴 Nightwatch 我們的 Selenium 安裝在哪里,啟動(dòng)瀏覽器的 Driver 程序在哪里,然后建立 Selenium 的安裝腳本與手工啟動(dòng)腳本,以便不時(shí)之需 ~~
  Driver 是讓 Selenium 打開系統(tǒng)上已安裝的瀏覽器的程序。
  1. 建立 Selenium 的配置信息。
  在項(xiàng)目根目錄下建立文件夾 "build",并在其中創(chuàng)建文件 "selenium-conf.js",并寫入如下信息:
const process = require('process')
module.exports = {
// Selenium 的版本配置信息。請(qǐng)?jiān)谙路芥溄硬樵冃掳姹。升?jí)版本只需修改版本號(hào)即可。
// https://selenium-release.storage.googleapis.com/index.html
selenium: {
version: '2.53.1',
baseURL: 'https://selenium-release.storage.googleapis.com'
},
// Driver 用來啟動(dòng)系統(tǒng)中安裝的瀏覽器,Selenium 默認(rèn)使用 Firefox,如果不需要使用其他瀏覽器,則不需要額外安裝 Driver。
// 在此我們安裝 Chrome 的 driver 以便使用 Chrome 進(jìn)行測(cè)試。
driver: {
chrome: {
// Chrome 瀏覽器啟動(dòng) Driver,請(qǐng)?jiān)谙路芥溄硬樵冃掳姹尽?br /> // https://chromedriver.storage.googleapis.com/index.html
version: '2.22',
arch: process.arch,
baseURL: 'https://chromedriver.storage.googleapis.com'
}
}
}
  本配置信息包含 Selenium 本體配置與 Driver 配置。我們將在稍后動(dòng)態(tài)載入這些配置。
  本文件的目的是為了更好管理 Selenium 的版本。
  2. 告訴 Nightwatch,我的 Selenium 與 Driver 在哪里。
  再次打開項(xiàng)目根目錄下的 "nightwatch.conf.js" 文件,并這樣編輯:
  const seleniumConfig = require('./build/selenium-conf')
  const path = require('path')
  module.exports = (function (settings) {
  // 告訴 Nightwatch 我的 Selenium 在哪里。
  settings.selenium.server_path = `${path.resolve()}/node_modules/selenium-standalone/.selenium/selenium-server/${seleniumConfig.selenium.version}-server.jar`
  // 設(shè)置 Chrome Driver, 讓 Selenium 有打開 Chrome 瀏覽器的能力。
  settings.selenium.cli_args['webdriver.chrome.driver'] = `${path.resolve()}/node_modules/selenium-standalone/.selenium/chromedriver/${seleniumConfig.driver.chrome.version}-${seleniumConfig.driver.chrome.arch}-chromedriver`
  return settings;
  })(require('./nightwatch.json'))
  我們新加了兩行配置,它們的作用如注釋所示。
  同樣的,如果您希望查看更多的配置項(xiàng),請(qǐng)點(diǎn)擊 這里。
  3. 建立 Selenium 安裝腳本,一鍵安裝 Selenium。
  還記得上一章我們提過 selenium-standalone 只是用來安裝和管理 Selenium 的工具么?所以現(xiàn)在是時(shí)候用它來安裝 Selenium 了。我們將通過調(diào)取 selenium-standalone 的內(nèi)置方法來實(shí)現(xiàn)自動(dòng)安裝。在 "build" 文件夾中建立文件 "selenium-setup.js",并寫入如下信息:
  const selenium = require('selenium-standalone')
  const seleniumConfig = require('./selenium-conf.js')
  selenium.install({
  version: seleniumConfig.selenium.version,
  baseURL: seleniumConfig.selenium.baseURL,
  drivers: seleniumConfig.driver,
  logger: function (message) { console.log(message) },
  progressCb: function (totalLength, progressLength, chunkLength) {}
  }, function (err) {
  if (err) throw new Error(`Selenium 安裝錯(cuò)誤: ${err}`)
  console.log('Selenium 安裝完成.')
  })
  同樣為了方便,我們將安裝命令寫入 npm scripts 中:
  {
  ...
  "scripts": {
  "start": "node ./startup.js",
  "selenium-setup": "node ./build/selenium-setup.js"
  },
  ...
  }
  然后在項(xiàng)目根目錄執(zhí)行 npm run selenium-setup 安裝 Selenium.
  當(dāng)提示安裝完成后,一切緒!(???)
  Selenium 與其 Driver 會(huì)安裝到 "node_modules/selenium-standalone/.selenium" 中。
  4. 想要手工啟動(dòng) Selenium?
  默認(rèn)情況下,Selenium 是由 Nightwatch 啟動(dòng)的,不需要手工干預(yù),不過如果想要手工啟動(dòng)當(dāng)然是可以的啦。
  在 build 文件夾中建立文件 "selenium-start.js",并寫入如下信息:
  const selenium = require('selenium-standalone')
  const seleniumConfig = require('./selenium-conf.js')
  selenium.start({
  drivers: seleniumConfig.driver
  }, function (err) {
  if (err) throw new Error(`Selenium 啟動(dòng)失敗: ${err}`)
  console.log(`Selenium 已手工啟動(dòng),進(jìn)程 PID: ${child.pid}`)
  console.log('當(dāng)不再需要運(yùn)行 Selenium 時(shí)可關(guān)閉此 PID 進(jìn)程.')
  })
  然后同樣添加啟動(dòng)命令至 npm scripts 中:
  {
  ...
  "scripts": {
  "start": "node ./startup.js",
  "selenium-setup": "node ./build/selenium-setup.js",
  "selenium-start": "node ./build/selenium-start.js"
  },
  ...
  }
  以后使用命令 npm run selenium-start 可以手工啟動(dòng) Selenium 了。
  搭建完了!
  至此,我們的配置與安裝工作已經(jīng)完成,項(xiàng)目結(jié)構(gòu)應(yīng)該為:
  >
  | -- build
  |      | -- selenium-conf.js        # Selenium 版本信息配置。
  |      | -- selenium-setup.js       # Selenium 安裝命令腳本。
  |      | -- selenium-start.js       # Selenium 啟動(dòng)命令腳本。
  |
  | -- nightwatch.conf.js             # Nightwatch 動(dòng)態(tài)配置文件。
  | -- nightwatch.json                # Nightwatch 配置文件。
  | -- package.json                   # 項(xiàng)目信息配置文件。
  | -- startup.js                     # 測(cè)試啟動(dòng)入口文件。
  “不過我好像看到 "nightwatch.json" 的配置很復(fù)雜,而我們確沒怎么動(dòng)它?”
  嗯~~ 到目前位置確實(shí)沒有太多需要改動(dòng)的,不過還是要注意一個(gè)配置項(xiàng):
  請(qǐng)注意 "desiredCapabilities" 下的 "browserName" 項(xiàng),這是測(cè)試時(shí)將使用的瀏覽器,您可以修改為 chrome、internet explorer、phantomjs,本文在介紹時(shí)只安裝了 Chrome 的 Driver,如果您需要使用其他瀏覽器,要安裝相應(yīng)的 Driver 才可以正常使用。
  默認(rèn)瀏覽器為 Firefox,如果您使用 Firefox 的話,不需要額外進(jìn)行 Driver 的配置。
  所以,如果您需要使用 Chrome 的話請(qǐng)將 "browserName" 修改為 "chrome" 喔!

上一頁12下一頁
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd