e2e 自動化集成測試 架構 實例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (一) 京東 商品搜索

  以前有發佈一篇文章「e2e 自動化集成測試 環境搭建 Node.js Selenium WebDriverIO Mocha Node-Inspector」, 主要是講了,如何搭建環境, 其中開發環境使用的是微軟的Visual Studio, 使用以後, 我發現,其它並不怎麼好用, 發麪收費版的WebStorm對於開發Node.js實際上是更爲方便。 建議使用WebStorm來做爲開發環境。 能夠試用30天,固然你能夠得到License, 方法你懂的。。。html

前言

Node.js是開源的,基於Javascript,跨平臺,高效,且提供豐富的資源的開放平臺, 使用它不單單能夠開發出高性能高併發的系統, 同時可使用它,能夠替代Load Runner, JMeter等自行化測試工具, Load Runer,收費,且不易使用。若有網頁調整,其測試腳本也須要調整。 對於JMeter,對於初學者來講, 由其是對黑盒測試來講,使用它來作系統級的自動化測試是,學習成本很是高, 且不易使用。java

Selenium服務,jquery

也就是咱們運行的 java -jar Selenium-server-standalone-2.42.2.jar, 這個服務須要一直開着,它會去調用咱們在Path環境變量下的瀏覽器的驅動程序chromedriver.exe,或是其它的如IEweb

WebDriverIO 模塊chrome

咱們可使用WebDriverIO做爲Selenium服務的客戶端, 能夠給該服務發送各類瀏覽器的操做指令。你們能夠看控制檯Selenium輸出的日誌記錄。api

Mocha 測試框架瀏覽器

這個相似於Nunit Framework, 同樣, 都通一些測試步驟。併發

建立項目

1,建立項目框架

 

肯定,配置結束ide

2, 安裝WebdriverIo 框架

3,京東商品搜索測試

    建立js文件D:\Projects\NodeJs\JD_Nodejs_e2e_Sample\TestCase\JD_Product_Search_TestCase.js, 內容以下:

/**
* Created by Administrator on 10/22/2014.
*/
var assert = require('assert');
var webdriverjs = require('webdriverio');
var browser = {};
describe('JD Product Search', function () {
this.timeout(99999999);

before(function (done) {

browser = webdriverjs.remote({ desiredCapabilities: { browserName: 'chrome', IsJavaScriptEnabled: true } });
browser.init(done);
});

it('Product Search Check', function (done) {
try {
console.log('Begin: Product Search Check');

browser
.url('http://jd.com')
.setValue('#key', '諾基亞(NOKIA) Lumia 1520 3G手機(黃色) WCDMA/GSM')
.pause(5000)
.click('input[class="button"]')
.pause(3000)
.getText('.J_1006105', function(err, text){

if(err) throw err;
console.log('獲得結果' +text);
assert(text.indexOf('2899.00') > -1)

done();
})
;

}
catch (e) {
console.log(e);
}

});

after(function (done) {
done();
});
});

這些url, setValue, pause, click, getText。。。都是一些咱們真實如何去操做一個網頁的步驟。 詳細能夠參考官網: http://webdriver.io/api.html

這些方法, 引號部分,就是對應jQuery的選擇器selector 參考http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp, 對此, webdriverIO也有一些解釋和不支持如 http://webdriver.io/guide/usage/selectors.html, contains不支持, first也不支持, 不過在後續的升級中會增長。

4, 執行效果:

方法1,是能夠按照上面的方法來執行你的測試腳本。

方法2,手動,打入  mocha testcase/JD_Product_Search_TestCase,以下圖

好了這個例子結果, 原本想第一例子,使用JD 的登陸,以下 :

it('Login Check', function (done) {
try {
console.log('Begin: Login Check');

browser
.url('https://passport.jd.com/new/login.aspx')
.setValue('#loginname', 'username')
.setValue('#nloginpwd', 'password')
.click('#loginsubmit')
.pause(2000)
.getText('#loginbar', function(err, text){

if(err) throw err;
console.log('獲得結果' +text);
assert(text.indexOf('xinereimzhi') > -1)

done();
})
;

}

 

catch (e) {
console.log(e);
}

});

 

可是結果發現, 只能登陸一次, 再次的話就要輸入 驗證碼, 關於驗證碼的識別 請看第二篇文章

相關文章
相關標籤/搜索