web自動化測試框架-01 搭建基礎架構並執行一個樣例

趙陽陽發表於2018-05-29

系列內容

備註:配合免費視訊教程,獲取更佳的學習效果!課程連結: 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 ,專案路徑選擇自己本地一個目錄。 點選 建立 按鈕,完成建立。

web自動化測試框架-01 搭建基礎架構並執行一個樣例

執行簡單的樣例

  • 編輯測試用例
    專案建立完成後,工具預設會自動幫我們生成Cucumber的程式碼樣例。 簡要介紹下預設專案目錄結構

    └─features                Cucumber 執行預設從features目錄遍歷檔案
        ├─step_definitions    定義自動化指令碼
        └─support             定義環境支援目錄(比如定義執行超時、瀏覽器驅動)
    複製程式碼

    .feature 檔案是Cucumber中的劇本檔案,定義了測試用例。 CukeTest預設會以視覺化編輯模式開啟feature檔案,如下圖所示:

    web自動化測試框架-01 搭建基礎架構並執行一個樣例

    熟悉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));
    });
    複製程式碼
  • 安裝專案依賴

    有兩種方式安裝依賴包:可以選擇自己熟悉的方式進行安裝:

    1. 在專案的根目錄下執行命令 npm install npm install
    2. 使用CukeTest工具進行安裝 點選工具欄上 更新依賴包選項,在彈出的對話方塊中點選 儲存 自動下載

    web自動化測試框架-01 搭建基礎架構並執行一個樣例
    點選 儲存 按鈕使用工具進行下載。 下載完成後的目錄結構:

    web自動化測試框架-01 搭建基礎架構並執行一個樣例

執行專案

點選 執行專案 按鈕,即可進行專案執行,執行完成後,可以看到會自動生成測試報告。

web自動化測試框架-01 搭建基礎架構並執行一個樣例


獲取更多資訊,可以關注公眾號,也可以加QQ群:707467292 進行node.js自動化相關技術交流。

web自動化測試框架-01 搭建基礎架構並執行一個樣例

相關文章