- Linux
- Docker (Optional)
- Node.js
- Internet Access
- 基於 Node.js 的測試程式-checkHello.js
- 瀏覽器
- selenium-webdriver (for Node.js)
const assert = require('assert');
var webdriver = require('selenium-webdriver'),
By = webdriver.By;
var driver = new webdriver.Builder()
.forBrowser('phantomjs')
.build();
driver.get('http://172.17.0.2:8080');
var byH1 = By.css('h1');
var h1 = driver.findElement(byH1);
var h1Text = h1.getText();
var h1Handler = function (text) {
assert.equal(text, "Hello World!");
}
h1Text.then(h1Handler);
driver.quit();
應該很好猜在測什麼?就是比對 <h1>Hello World!</h1> 而已。瀏覽器也先挑簡單的 PhantomJS,一是不需依賴圖形介面,一是大部份瀏覽器還要再搭配驅動程式,比較麻煩。安裝指令其實源出於此,改編如下:
- docker exec -it myNode sh
- curl -L https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 | tar -xj --strip-components=2 -C /usr/local/bin phantomjs-2.1.1-linux-x86_64/bin
- exit
其中 PhantomJS 下載目錄來自這裡,/usr/local/bin 是環境變數 PATH 所指向的路徑之一。本段前後這些提到指令的部份,都是針對上一篇名為 myNode 的 docker container,如果不是,例如只在本機,可以忽略灰底的部份。至於 selenium-webdriver 安裝,指令是:
- docker exec -it myNode npm install selenium-webdriver
萬事俱備,執行測試的指令是:
- docker exec -it myNode node checkHello.js
順利的話,會讓人誤以為沒反應?可以故意弄錯一些東西來驗證,例如換個 IP,換個 port,關掉 Web Server,Hello World! 改個大小寫什麼的。
沒有留言:
張貼留言