Más contenido relacionado Similar a Web testing automation (20) Web testing automation3. 研究動機
現有測試架構流程
以Firefox搭配Selenium IDE錄製Web測試動作
利用Selenium IDE匯出成JUnit測試個案
擴充JUnit測試個案
Data Generation (Ex: BAN, IDN)
Database Access
JavaScript Execution
Assertion Extension
以Selenium WebDriver進行測試
不足之處
撰寫測試個案需要一定程度的Programming Skill
測試個案不易閱讀
3
6. 測試環境安裝
Prerequisites
Python v2.7.3
Oracle Instant Client
WebDriver
Internet Explorer WebDriver
Chrome WebDriver
Selenium IDE
Robot Framework v2.7.6
Selenium2Library
Database Library v0.5
Oracle DB API 2.0 Drivers (Oracle 11g, Python 2.7)
RIDE v1.1
6
7. 錄製測試個案 – Selenium IDE
為Firefox extension
http://docs.seleniumhq.org/projects/ide/
按下 Ctrl+Alt+S 即可呼叫IDE錄製網頁操作
7
8. 錄製測試個案 – Selenium IDE
測試個案可匯出為多種程式語言格式
Ruby
Python
Java
C#
不支援匯出為Robot Framework腳本格式
(Selenium2Library)
須自行撰寫擴充元件(JavaScript)掛載於IDE下
參考其他語言匯出元件(Ex: Ruby, Java)
目前已可為常用的網頁操作指令進行轉換匯出
8
10. 錄製測試個案 – Selenium IDE
掛載Robot Framework格式匯出元件
點選[Options] [Options] [Formats]頁籤
10
12. Robot Framework
Sponsored by Nokia Siemens Networks
以Python實作而成
Generic Keyword-driven Test Automation
測試腳本由相近於自然語言的Keywords敘述組成,讓測
試人員於撰寫與解說測試個案上更輕鬆
可使用多種不同介面與軟體進行測試, Ex: user
interfaces, command line, web services…
測試腳本檔案格式具彈性
HTML
Plain Text
TSV(tab-separated values)
12
13. Robot Framework
擴充性佳
Standard Test Libraries
Builtin Library
Operating System Library
Telnet Library
Collections Library
String Library
Dialogs Library
Screenshot Library
Remote Library
XML Library
13
14. Robot Framework
擴充性佳
External Test Libraries
Selenium2Library
DatabaseLibrary
SSHLibrary
其他
也可以Python或Java(需Jython)撰寫自己的Test
Library定義新的Keyword
支援迴圈與條件判斷式語法
支援以Tag為每個Test Case進行分類
產生美觀的測試執行結果Report & Log
14
17. 編寫測試個案 - RIDE
直觀的Robot Framework測試個案編輯器
相關網址
優勢
Keyword Auto Completion
View Keyword Documentation
Validate Keyword Arguments
Search for Keywords
其他
整合Robot Framework,因此可以直接執行測試
方便檢視測試結果Report & Log
17
20. 測試個案撰寫
Settings 區塊關鍵字
Documentation – 文件說明
Library – Import Test Library
Resource – Import Resource File
Test Setup/Teardown – 每個test case執行前後動作
Suite Setup/Teardown – 整個腳本檔執行前後動作
Tags – 為Test Suites加上metadata,在執行與結果
Report上進行篩選與分類
Force Tags
Default Tags
20
22. 測試個案撰寫
Variables
種類
Scalar Variable : ${variable_name}
List Variable : @{variable_name}
built-in : ${CURDIR}, ${TEMPDIR}, ${/} …
22
23. 測試個案撰寫
Keywords種類
Built-in Keywords
Library Keywords
User-defined Keywords
User-defined Keywords區塊
由現有多個keywords再組出higher-level keyword
可定義參數
可定義回傳值
可包含FOR loops
具備高度重用性
抽象度變高,可讀性也變高
23
25. 測試個案撰寫
Test Cases
每個Test Case由一連串Keyword Statements組成
Keyword Statement格式
[變數 + <分隔字元>] + keyword + <分隔字元> + 參數1 + <分隔字
元> + 參數2 + …
分隔字元須為tab字元 or 一個以上空格
無傳回值:
Ex: Selenium2Library.Open Browser ${baseUrl}/pac/login
有傳回值:
Ex: ${path}= Get Environment Variable path
25
30. 待辦工作事項
Refine Selenium IDE匯出Robot Framework格式
的擴充元件
定義適合FDC環境測試的Keywords
撰寫User Keywords
撰寫Test Library
先實作fdc-test-selenium框架原本提供的功能
網頁操作
資料庫操作
資料產生器
Assertion 擴充
與Jenkins整合的部分
30