Nightwatchjs筆記(1) - 網頁自動化測試使用node.js !


Nightwatch.js是一個使用nodejs開發的E2E網頁自動化測試方案。
因為是使用nodejs,所以擴充性也是不錯的,簡潔的程式碼也容易了解,還有runner可以讓測試以單一或是使用tag或是group跑,挺方便的。

在開始弄髒手之前,必須要先安裝好nodejs與npm。(通常會一起裝好)

新增專案資料夾,並產生package.json管理專案資料與相關套件。
$ npm init

下載nightwatch 模組
$ npm install --save nightwatch

安裝完之後,有幾件事要先做:
- 新增一個資料夾test,底下放置測試腳本。
- 新增一個檔案引入nightwatch runner,大部分是nightwatch.js
require('nightwatch/bin/runner.js');

-新增config檔,nightwatch.con.js
雖然nightwatchjs的網站上將config.json與nightwatch.con.js分開,但也能合在一起。
var selenium = require('selenium-server-standalone-jar');
var chromeDriver = require('chrome-driver-standalone');

var config = {
 "src_folders": ["test"],
 "output_folder": "reports",
 "custom_commands_path": "command",
 "custom_assertions_path": "assertions",
 "page_objects_path": "page_obj",
 "globals_path": "globals/globals.js",

 "selenium" : {
  "start_process": true,
  "server_path": selenium.path,
  "log_path": "results",
  "host": "127.0.0.1",
  "port": 4444,
  "cli_args": {
   "webdriver.chrome.driver" : chromeDriver.path
  }
 },

 "test_settings": {
  "default": {
   "launch_url": "",
   "selenium_port": 4444,
   "selenium_host": "localhost",
   "silent": true,
   "screenshots": {
    "enabled": true,
    "on_error": true,
    "on_failure": true,
    "path": "reports/screenshots"
   },
   "desiredCapabilities": {
    "browserName": "chrome"
   }
  }
 }
}

module.exports = (function(settings){
 settings.test_workers = false;
 return settings;
})(config);

>> 例子 :  Google搜尋The Lumineers - Cleopatra
module.exports = {
 'go to Youtube': function(browser){
  browser.url('https://www.google.com.tw/');
  browser.expect.element('#lst-ib').to.be.present;
  browser.setValue('#lst-ib', "The Lumineers Cleopatra")
      .keys('\uE007');

 },
 'click first song': function(browser){
  browser.expect.element('h3.r > a').to.be.present;
  browser.getText('h3.r > a', function(res){
   console.log(res.value);
  });
  browser.click('h3.r > a');
 }
}

console 上輸出的測試報告



留言

這個網誌中的熱門文章

Django - admin 的設定筆記

[Python] 以folium製作臺灣百岳資訊地圖

交個筆友吧!老派的浪漫與科技之結合 - SLOWLY