web testing automation
DESCRIPTION
Web testing automation : Using Robot Framework with Selenium2LibraryTRANSCRIPT
1/7
Web Testing Automation : Using Robot Framework withSelenium2Library
中 華 電 信林國瑞、凌鉅泰
2013/3/1
2
Agenda
研究動機與目的測試架構與流程測試環境安裝錄製測試個案 - Selenium IDERobot FrameworkSelenium2Library編寫測試個案 - RIDE測試個案撰寫與執行待辦工作事項Demo
3
研究動機現有測試架構流程以 Firefox 搭配 Selenium IDE錄製 Web 測試動
作利用 Selenium IDE匯出成 JUnit 測試個案擴充 JUnit 測試個案
Data Generation (Ex: BAN, IDN)Database AccessJavaScript ExecutionAssertion Extension
以 Selenium WebDriver進行測試不足之處撰寫測試個案需要一定程度的 Programming Skill測試個案不易閱讀
4
研究目的減少撰寫測試個案的複雜度與時間簡化自動化測試流程對測試人員來說 , 能單純化其測試環境
5
測試架構與流程
6
測試環境安裝PrerequisitesPython v2.7.3Oracle Instant ClientWebDriver
Internet Explorer WebDriverChrome WebDriver
Selenium IDERobot Framework v2.7.6Selenium2LibraryDatabase Library v0.5Oracle DB API 2.0 Drivers (Oracle 11g,
Python 2.7)
RIDE v1.1
7
錄製測試個案 – Selenium IDE
為 Firefox extensionhttp://docs.seleniumhq.org/projects/ide/
按下 Ctrl+Alt+S 即可呼叫 IDE 錄製網頁操作
8
錄製測試個案 – Selenium IDE
測試個案可匯出為多種程式語言格式RubyPython JavaC#
不支援匯出為 Robot Framework 腳本格式(Selenium2Library)須自行撰寫擴充元件 (JavaScript) 掛載於 IDE 下
參考其他語言匯出元件 (Ex: Ruby, Java)目前已可為常用的網頁操作指令進行轉換匯出
9
錄製測試個案 – Selenium IDE
10
錄製測試個案 – Selenium IDE
掛載 Robot Framework 格式匯出元件點選 [Options] [Options] [Formats] 頁籤
11
錄製測試個案 – Selenium IDE
匯出的測試個案即可匯入 RIDE 做進一步的編輯擴充
12
Robot Framework
Sponsored by Nokia Siemens Networks以 Python 實作而成Generic Keyword-driven Test Automation測試腳本由相近於自然語言的 Keywords 敘述組成 ,
讓測試人員於撰寫與解說測試個案上更輕鬆可使用多種不同介面與軟體進行測試 , Ex: user
interfaces, command line, web services…
測試腳本檔案格式具彈性HTMLPlain TextTSV(tab-separated values)
13
Robot Framework
擴充性佳Standard Test Libraries
Builtin LibraryOperating System Library Telnet Library Collections LibraryString Library Dialogs Library Screenshot Library Remote Library XML Library
14
Robot Framework
擴充性佳External Test Libraries
Selenium2LibraryDatabaseLibrarySSHLibrary其他
也可以 Python 或 Java( 需 Jython) 撰寫自己的Test Library 定義新的 Keyword
支援迴圈與條件判斷式語法支援以 Tag 為每個 Test Case 進行分類產生美觀的測試執行結果 Report & Log
15
Robot Framework
Robot Framework 簡介 Introduction Slides
16
Selenium2Library
Web Testing Library for Robot Framework底層利用 Selenium 2 (WebDriver)
實作出豐富的網頁操作 KeywordsSelenium2Library.html
17
編寫測試個案 - RIDE
直觀的 Robot Framework 測試個案編輯器相關網址
優勢Keyword Auto CompletionView Keyword DocumentationValidate Keyword ArgumentsSearch for Keywords其他
整合 Robot Framework, 因此可以直接執行測試方便檢視測試結果 Report & Log
18
編寫測試個案 - RIDE
19
測試個案撰寫Test SuitesTest Cases 的集合並組成一個腳本檔案
測試腳本檔主要組成區塊SettingsVariablesUser-defined KeywordsTest Cases
20
測試個案撰寫Settings 區塊關鍵字Documentation – 文件說明Library – Import Test LibraryResource – Import Resource FileTest Setup/Teardown – 每個 test case 執行前
後動作Suite Setup/Teardown – 整個腳本檔執行前後動
作Tags – 為 Test Suites 加上 metadata, 在執行與
結果 Report 上進行篩選與分類Force TagsDefault Tags
21
測試個案撰寫Settings 區塊範例
22
測試個案撰寫Variables種類
Scalar Variable : ${variable_name}List Variable : @{variable_name}built-in : ${CURDIR}, ${TEMPDIR}, ${/} …
23
測試個案撰寫Keywords 種類Built-in KeywordsLibrary KeywordsUser-defined Keywords
User-defined Keywords 區塊由現有多個 keywords 再組出 higher-level
keyword可定義參數可定義回傳值可包含 FOR loops具備高度重用性抽象度變高 ,可讀性也變高
24
測試個案撰寫User-defined Keywords 區塊範例
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
26
測試個案撰寫Test Cases 範例
Test Cases
27
測試個案執行以 Jenkins 排程執行 Regression Test直接在 RIDE 呼叫 Robot Framework 執行測試
28
測試個案執行
29
測試個案執行Test Report(Summary)範例
Test Log(Detail)範例
30
待辦工作事項Refine Selenium IDE 匯出 Robot Framework 格式的擴充元件定義適合 FDC 環境測試的 Keywords撰寫 User Keywords撰寫 Test Library先實作 fdc-test-selenium框架原本提供的功能
網頁操作資料庫操作資料產生器Assertion 擴充
與 Jenkins 整合的部分
31
DEMO
DEMO