系列內容
- web自動化測試框架-01 搭建基礎架構並執行一個樣例
- web自動化測試框架-02 快速開發用例文件指令碼
- web自動化測試框架-03 介紹標籤,背景,場景,場景大綱
- web自動化系列教程- 04 Hooks與TimeOut介紹
- web自動化測試框架-05 建立資料驅動的測試用例,Doc String與Data Table
- web自動化測試框架-06 如何快速編寫自動化指令碼
備註:配合免費視訊教程,獲取更佳的學習效果!課程連結: ke.qq.com/course/2815…
主要內容
- 搭建web自動化測試框架
- 執行簡單的樣例
搭建Web自動化測試框架
現在常用的自動化測試框架有單元測試框架,關鍵字驅動框架,以及現在比較流行的行為驅動測試框架。本次教程,我們採用行為驅動框架Cucumber.js + selenium-webdriver 來實現Web自動化測試。Cucumber
環境搭建
-
前提條件
- 開發語言: node.js
- 開發工具: CukeTest(下載地址:http://cuketest.com/)CukeTest相容Cucumber.js, 所以會大大提高我們的生產效率。
-
安裝步驟
-
安裝CukeTest
下載完成後,按照預設安裝方式安裝即可。
-
-
建立專案
安裝完成後,開啟CukeTest,新建專案,專案名稱任意寫,專案模板選擇 Web ,專案路徑選擇自己本地一個目錄。 點選 建立 按鈕,完成建立。
執行簡單的樣例
-
編輯測試用例
專案建立完成後,工具預設會自動幫我們生成Cucumber的程式碼樣例。 簡要介紹下預設專案目錄結構└─features Cucumber 執行預設從features目錄遍歷檔案 ├─step_definitions 定義自動化指令碼 └─support 定義環境支援目錄(比如定義執行超時、瀏覽器驅動) 複製程式碼
.feature 檔案是Cucumber中的劇本檔案,定義了測試用例。 CukeTest預設會以視覺化編輯模式開啟feature檔案,如下圖所示:
熟悉Cucumber的同學會發現,使用CukeTest編輯feature檔案很方便。在對應的文字輸入部分,直接雙擊就可以進行編輯,不用擔心檔案格式不符合劇本的語法。例如,我們要寫一個簡單的百度搜尋自動化測試樣例。可以編輯feature檔案為:
對應的feature文字為:
# language: zh-CN 功能: 百度搜尋功能 測試功能 場景: 百度搜尋 假如瀏覽到搜尋網站 "http://www.baidu.com" 當輸入關鍵字"CukeTest",並的點選搜尋按鈕的時候 那麼搜尋結果中應該可以包含"CukeTest" 複製程式碼
可以在CukeTest中切換到 文字 檢視 將上面文字複製進去。關於feature檔案的編輯已經講解,會在後續教程中專門講解。
-
編輯自動化程式碼
開啟 step_definitions\definitions.js 檔案,點選feature檔案中操作步驟上的灰色按鈕,會自動在definitions.js中生成自動化樣例程式碼。const { Given, When, Then } = require('cucumber'); const assert = require('assert'); const { driver } = require('../support/web_driver'); Given(/^瀏覽到搜尋網站 "([^"]*)"$/, async function(url) { await driver.get(url); }); When(/^輸入關鍵字"([^"]*)",並的點選搜尋按鈕的時候$/, async function (arg1) { return 'pending'; }); Then(/^搜尋結果中應該可以包含"([^"]*)"$/, async function (arg1) { return 'pending'; }); 複製程式碼
根據之前學習的selenium-webdriver 語法完善程式碼,最終程式碼:
const { Given, When, Then } = require('cucumber'); const assert = require('assert'); const { driver } = require('../support/web_driver'); Given(/^瀏覽到搜尋網站 "([^"]*)"$/, async function(url) { await driver.get(url) ;}) ;When(/^輸入關鍵字"([^"]*)",並的點選搜尋按鈕的時候$/, async function (arg1) { await driver.findElement({id:'kw'}).sendKeys(arg1); await driver.findElement({id:'su'}).click(); }); Then(/^搜尋結果中應該可以包含"([^"]*)"$/, async function (arg1) { await driver.sleep(3000) let allresult = await driver.findElement({id:'content_left'}).getText() return assert.ok(allresult.includes(arg1)); }); 複製程式碼
-
安裝專案依賴
有兩種方式安裝依賴包:可以選擇自己熟悉的方式進行安裝:
- 在專案的根目錄下執行命令 npm install npm install
- 使用CukeTest工具進行安裝 點選工具欄上 更新依賴包選項,在彈出的對話方塊中點選 儲存 自動下載
執行專案
點選 執行專案 按鈕,即可進行專案執行,執行完成後,可以看到會自動生成測試報告。
獲取更多資訊,可以關注公眾號,也可以加QQ群:707467292 進行node.js自動化相關技術交流。