在這一章我們將安裝之前提到的 Selenium 與 Nightwatch 然后并正確配置它倆,讓它倆能正常的運(yùn) ♂ 作起來(lái),趕緊搞 ♂ 起!
不過(guò)首先 ……
首先要安裝 Java 7 或更高 ,并且 java 命令可正常執(zhí)行才能測(cè)試噢~~ 簡(jiǎn)單的判斷方法是打開自己的終端,輸入 java 并回車,看看是不是有 Java 運(yùn)行。如果有命令不存在之類的提示,請(qǐng)重新安裝 Java 運(yùn)行環(huán)境 (???)
Node.JS , 而且要確保 npm 命令可用,我想應(yīng)該其實(shí)不用提醒的 ~
開始搭建!
1. 創(chuàng)建項(xiàng)目
我們來(lái)找個(gè)地方新建一個(gè)目錄,起名為 "my-test-toolkit",然后在目錄內(nèi)使用終端運(yùn)行 npm init -y 生成項(xiàng)目配置文件package.json。
2. 安裝工具
然后我們將安裝 Selenium 與 Nightwatch。
安裝 selenium-standalone:
npm install selenium-standalone --save-dev
安裝 Nightwatch:
npm install nightwatch --save-dev
還記得嗎?上一章提到我們將使用 selenium-standalone 而不是直接手動(dòng)配置 Selenium 喔!
3. 項(xiàng)目配置
So Easy 不是嗎!不過(guò)接下來(lái)的配置可能要花點(diǎn)功夫,但是也不是很麻煩啦,一步步來(lái)還是很容易的~
我們先開始配置 Nightwatch,之前提到這是一款 Test Runner 來(lái)著,它負(fù)責(zé)讀取我們的測(cè)試腳本,為我們提供 API 來(lái)操作瀏覽器,幫我們控制 Selenium。
一. 配置 Nightwatch
首先,在項(xiàng)目根目錄建立文件 "nightwatch.json",這個(gè)文件用來(lái)存放 Nightwatch 的配置信息。創(chuàng)建完畢之后,在文件內(nèi)寫入以下內(nèi)容:
{
"src_folders": ["tests"],
"output_folder": "reports",
"custom_commands_path": "",
"custom_assertions_path": "",
"page_objects_path": "",
"globals_path": "",
"selenium": {
"start_process": true,
"server_path": "",
"log_path": "",
"host": "127.0.0.1",
"port": 4444,
"cli_args": {
"webdriver.chrome.driver": ""
}
},
"test_settings": {
"default": {
"launch_url": "http://localhost",
"selenium_port": 4444,
"selenium_host": "localhost",
"silent": true,
"screenshots": {
"enabled": false,
"path": ""
},
"desiredCapabilities": {
"browserName": "firefox",
"javascriptEnabled": true,
"acceptSslCerts": true
}
},
"chrome" : {
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true
}
}
}
}
nightwatch.json 的文件名是 不可以 修改的,因?yàn)?Nightwatch 每次啟動(dòng)的時(shí)候都是從它讀取配置喔!這里的配置項(xiàng)很多,不過(guò)先不管它,我們接著創(chuàng)建文件。如果您希望查看 Nightwatch 的詳細(xì)配置,請(qǐng)點(diǎn) 這里。
接著在項(xiàng)目根目錄下創(chuàng)建文件 "nightwatch.conf.js" ,同樣此文件名也是不可以修改的,因?yàn)?Nightwatch 每次啟動(dòng)也會(huì)從它這里讀取配置喔~ (′?_?`)
創(chuàng)建完畢后,打開文件,并寫入如下內(nèi)容:
const path = require('path')
module.exports = (function (settings) {
return settings;
})(require('./nightwatch.json'))
/*
* Nightwatch 會(huì)從 nightwatch.json 中讀取配置。
* 不過(guò)如果存在 nightwatch.conf.js,將會(huì)變?yōu)槭紫葟暮笳咧凶x取配置。
* nightwatch.conf.js 存在的意義是使用 JavaScript 動(dòng)態(tài)生成配置信息。
* 如果配置信息是不需要代碼修改的,直接使用 nightwatch.json 可以啦。
*/
再次在項(xiàng)目根目錄建立文件 "startup.js",然后在文件內(nèi)部寫入:
require('nightwatch/bin/runner.js')
這個(gè)文件是我們測(cè)試的入口文件,以后我們要執(zhí)行測(cè)試要運(yùn)行這個(gè)文件,命令為 node ./startup。入口文件的名字是可以按照喜好更改的,只要運(yùn)行它好啦。不過(guò)每次輸入 node ./startup 太麻煩了,所以我們將這條命令寫入 npm scripts 中 ~~~ 打開 "package.json",在 JSON 對(duì)象中建立 "script" 屬性,并寫入內(nèi)容:
{
...
"scripts": {
"start": "node ./startup.js"
},
...
}
以后每次運(yùn)行測(cè)試只要在項(xiàng)目根目錄中執(zhí)行 npm start 好了!(???)
Nightwatch 的配置暫時(shí)告一段落(其實(shí)馬上會(huì)回來(lái)………),接下來(lái)我們來(lái)處理 Selenium.