10. 由 Jenkins 觸發測試

11. 由 Jenkins 觸發測試

由於艾小克是撰寫 Python 來建立自動化測試, 所以是不需要進行建置的動作…

所以我們直接跳到 Run Test 吧… XD

 

那概略說一下, 艾小克 Automation 的架構…

1. Windows 7 x64 環境

2. 安裝 Python 2.7 Windows Installer

3. 設定 Python 執行環境變數

PYTHON_HOME: c:\Python27\
PYTHONPATH: c:\Python27\Lib;c:\Python27\DLLs\h;c:\Python27\Lib\site-packages\;c:\Python27\Scripts\
PATH: ;%PYTHON_HOME%;%PYTHONPATH%;

(以上為基本環境)

 

4. 撰寫 .py 檔案, 就是一個 test case 所需要的邏輯

5. 建立 Conifg 檔案, 設定 Alpha, Beta, Prod 等環境變數

5. 建立 DataDriven 目錄, 裡面放置 .csv 建立 test case 所需要的資料集合, 每一個資料列當作一個 test

6. 建立 SQLScript 目錄, 裡面放置 Setup 與 TearDown 所需要的 DB 資料條件資料及清除資料 SQL 指令

7. 建立 TestReport 目錄, 裡面放置 test case 所輸出的 Assertion 條件與結果

8. 建立 ScreenShot 目錄, 裡面放置 test case 下, 每一個 test run 在每一個畫面在瀏覽器下的截圖

(以上為目錄架構)

 

9. 加入必要的 Python 套件:

setuptools: 套件管理軟體, 對於 .net 而言可以把它當作 nuget

pip: 也是套件管理軟體

pymssql: MS SQL Server 套件, 負責處理連線 DB 與執行 SQL 指令, 相依套件: lxml, libxml2

suds: Web Service SOAP 處理套件

requests: HTTP GET POST 處理套件

selenium: 自動化測試套件, 可以呼叫瀏覽器進行測試: chrome, ie, firefox, safari …etc

10. 瀏覽器:

IE9、Chrome、Firefox 及 Safari

11. 基本 Automation 流程:

(1) 初始化: 建立 log, 讀取 config, 建立 screenshot 目錄, 啟動 selenium 所需瀏覽器, 讀取 csv, 建立 report 範本, 取得 DB 連線

(2) 執行:

取得 csv 資料建立迴圈

執行 SQL 清除指令, 初始化指令

自動化流程: 呼叫 Web Service, HTTP GET/POST, 自動化操作 Web, 擷取畫面

(3) 驗證:

取得各執行動作執行結果, 與 csv 檔案資料列比對

取得 DB 內相關 Table 資料, 與 csv 檔案資料列比對

(4) 回報:

回報告驗證結果

關閉 DB 連線

關閉 Selenium 及瀏覽器

 

觸發每個 python 檔案, 其實很簡單

python xxx.py 就可以了…

 

09. Jenkins 建立新作業」說到, 從 SCM 取得最新的程式碼…

接下來, 在首頁就可以點擊作業名稱, 會出現相關功能表…

我們可以點「設定」進行相關的動作…

image

 

進入作業的設定頁面, 我們已經設定了「建置觸發程序」…

我們現在則設定「建置」來觸發 Test case…

請先點擊「新增建置步驟」下拉選單, 並選擇「執行 Windows 批次指令

image

 

畫面上就會出現「執行 Windows 批次指令」的設定區塊…

我們可以很簡單的填入 python xxx.py

最後點擊在畫面下「儲存」就完成建置指令

image

 

儲存後, 可以回到左上方的功能表的部分…

點擊「馬上建置」, Jenkins 就會開始執行動作 1. check out 2. 執行 python xxx.py 指令

image

 

回到首頁, 應該可以看到目前工作得執行狀態…

image

 

此畫面上會顯示

「工作名稱」: Test Project

「建置版號」: #142

「狀態」: 建置中

「X」:可以取消目前的建置動作

 

如果我們要觀察每一個工作的所有自動化流程, 就可以點「建置版號」-> 「畫面輸出」觀看…

image

 

「畫面輸出」會補抓 Jenkins 執行每一個步驟的所有 Standard Output, Stand Error 等輸出資訊

所以透過此頁面可以看到目前執行到哪, 也可以方便除錯看看我們是否有地方設定錯誤, 無法成功建置…