開源自動化測試平台LuckyFrame


作者:cai.ruiying [ZSK]


一、LuckyFrame簡介

  LuckyFrame自動化測試平台是一款采用 AGPL 3.0開源協議的測試平台,目前已做到全緯度覆蓋了接口自動化、WEB UI自動化、APP自動化,並且可以支持分布式測試。LuckyFrame采用測試關鍵字驅動方式,可以簡單高效的實現測試自動化,這在很大程度上解決了測試同學代碼基礎薄弱的問題。  
  同時也集成了質量管理相關的一些功能,適用於QA的日常項目過程數據的收集,並且可以展示一些基礎的質量報表。  
  最新發布版本,實現客戶端服務端之間使用 netty 進行通信,突破了內外網的限制,將全面支持服務端部署在雲端,客戶端部署在本地,並且本地啟動客戶端后,將會在服務端自動注冊,只需要配置客戶端項目,即可使用,方便快捷。

1. LuckyFrame使用流程

二、Web UI自動化

1. Web頁面元素定位

(1) 定位工具

   直接使用瀏覽器中的查看元素功能(F12),Firefox也可使用定位工具(對版本有要求)。Chrome、Firefox、Edge、高版本IE等主流瀏覽器均支持元素搜索功能,低版本IE不支持元素搜索。   我們自動化測試,主要通過獲取Web頁面元素,並對元素對象進行操作來實現。因此,編寫自動化腳本需要一定的HTML/CSS前端知識,幫助實現定位Web頁面元素。

(2) 定位示例

說明:LuckyFrame支持六種定位語法,包括:id/name/xpath/linktext/tagname/cssselector。         
 
示例1-id定位
id定位表達式(包路徑|定位路徑):id=username
 
示例2-name定位
name定位表達式(包路徑|定位路徑):name=username
 
示例3-xpath定位
說明:xpath定位功能非常強大,幾乎可以找到頁面上的所有元素。
語法//tag[@attribute='value'] 或 //tag[text()='value’] 或 //tag[contains(@attribute,’value’)]
(1) “//”表示相對路徑。下級任何子節點或者任何嵌套子節點中的一個,中間可以跳級;
(2) “@”表示選區標簽的屬性;
(3) “text()”表示可見文本值,文本的內容要完全匹配,包括空格等特殊符號;
(4) 定位“class”標簽屬性時,表達式中屬性值的內容要與頁面“class”屬性值內容完全匹配,包括空格等特殊符號。 
 
① 
xpath定位表達式(包路徑|定位路徑):xpath=//input[@id='username']
 
② 
xpath定位表達式(包路徑|定位路徑): xpath=//a[text()='注冊'] 或 xpath=//a[contains(text(),'注冊')]
 

2. Web UI自動化用例語法

LuckyFrame是時下主流的一款開源自動化測試平台,能夠實現Web UI、移動端、接口等多類型自動化測試。但其官方使用手冊內容有限,在此根據使用經驗,總結出關於Web UI用例編寫的常用語法詳解。
 
(1)說明:本語法使用范圍:【測試管理】【用例管理】【用例步驟】,用於編寫用例步驟,制定的語法規范。編寫用例步驟界面如下圖。
用例步驟編寫要素:包|定位路徑、方法|操作、參數、步驟動作、預期結果、類型、擴展字段、操作。   
“操作”可對步驟進行以下操作,如下圖:

 

(2)關鍵字語法結構

關鍵字就是LuckyFrame平台中編寫自動化測試用例時的頁面使用說明,以Web UI自動化測試用例為例,關鍵字包括:步驟、包|定位路徑、方法|操作、參數、步驟動作、預期結果、類型、擴展字段、操作。
下表對每個關鍵字用法做說明。

 

(3) 常用Web UI定位

  Web UI自動化測試,是通過對Web頁面元素的抓取,再對元素進行操作的方法,實現對Web UI人工測試的模擬的,因此,圍繞“方法|操作”總結部分常用的方法使用語法。對於以上9個關鍵字,在編寫Web UI自動化測試用例時,需要使用到的包括2-6,其中5、6兩項,不是必填項,等待時間、預期結果斷言 可根據步驟需要靈活添加。此外,“類型”固定選擇“Web UI”即可,操作中的”備注“可用於對操作步驟進行備注,以便用例調試。下面對2-4:包|定位路徑、方法|操作、參數,這三項進行常用的語法說明,以供大家在編寫用例時,遇到不確定的方法,可以進行查閱。

1 打開URL:
|定位路徑 方法|操作 參數
/ open 要打開的URL
2 (輸入框)輸入:
|定位路徑 方法|操作 參數
Web元素定位 sendkeys 要輸入的值
3 (輸入框)清除:
|定位路徑 方法|操作 參數
Web元素定位 clear /
4 (對象)點擊操作:
|定位路徑 方法|操作 參數
Web元素定位 click /
5 獲取對象文本屬性值:
|定位路徑 方法|操作 參數
Web元素定位 gettext /
6 關閉當前瀏覽器窗口:
|定位路徑 方法|操作 參數
/ closewindow /
7 iframe操作:
|定位路徑 方法|操作 參數 說明
iframe標簽所在元素定位 gotoframe / 跳轉到iframe
/ gotodefaultcontent / 跳轉回默認iframe
/ gotoparentframe / 跳轉到上一級iframe
8 彈窗處理:
|定位路徑 方法|操作 參數 說明
/ alertaccept / 確定
/ alertdismiss / 取消
/ alertgettext / 獲取文本值
9 下拉框處理:
|定位路徑 方法|操作 參數 說明
下拉框元素定位 selectbyvisibletext 選項文本值 根據可見文本選擇
下拉框元素定位 selectbyvalue 選項value標簽屬性值 根據value屬性選擇
下拉框元素定位 selectbyindex 選項index 根據index值選擇,初始值為0
下拉框元素定位 isselect / 判斷是否被選中
10 多窗口處理:
|定位路徑 方法|操作 參數 說明
/ getwindowhandle 要獲取的窗口序號 初始值為1
/ gotowindow 要跳轉的窗口序號/句柄值  
11 鼠標移動:
|定位路徑 方法|操作 參數
Web元素定位 mouseto /
12 頁面滾動:
|定位路徑 方法|操作 參數
Web元素定位 scrollto /
13 頁面刷新
|定位路徑 方法|操作 參數
Web元素定位 pagerefresh /
14 調用指定用例:
|定位路徑 方法|操作 參數
/ runcase 用例編號
15 其他語法查看:   
  LuckyFrame為我們封裝的方法很多,具體方法的使用,我們可以通過開源源碼,進行查看。
  Web UI的方法在客戶端代碼中,代碼路徑為:luckyclient.execution.webdriver,在EncapsulateOperation.class這個類文件中,我們可以查看到封裝方法的使用規則。

 

 
三、HTTP接口自動化 
1. HTTP接口自動化用例語法

說明:
(1)HTTP接口自動化測試,每個步驟都必須要關聯協議模板,去構造消息頭以及消息體;
(2)在步驟動作欄中,點擊輸入框會自動聯想當前項目下所有的協議模板,選擇對應的模板即可;
(3)請求的參數都必須在模板里面先構造,不能直接在用例步驟的參數列里面去構造,步驟的參數列只能去替換模板里面的默認參數值。也就是說必須得在模板里面有的參數,步驟參數才能生效去替換默認值。

關鍵字語法構建:
(1)|定位路徑:請求URL;
(2)方法|操作:請求方法;
(3)參數:參數欄可以修改模板中的默認值,如果參數為空,則默認使用模板中定義好的默認參數,參數欄填寫示例:參數名#參數值|參數名#參數值|參數名#參數值|……|;
(4)步驟動作:1#Wait表示當前步驟暫停1秒;
(5)預期結果:① 精確匹配,將用例里面【方法|操作】執行的結果,與【預期結果】字段里面的字符串進行精確匹配,直接在預期結果里面填寫需要匹配的字符串即可;② 模糊匹配,將用例里面【方法|操作】執行的結果,與【預期結果】字段里面的字符串進行模糊匹配,模糊匹配: %=value;(6)類型:HTTP接口;(7)擴展字段:關聯協議模板。
 
用例編寫步驟:
Step1:配置協議模板
(1)新增協議模板:選擇菜單 測試管理->協議模板->【添加】;
(2)輸入協議模板信息:項目名稱、模板名稱、編碼格式等信息,注意:消息頭域、證書路徑可根據需要填寫;
(3)配置模板參數:在協議模板列表中勾選剛才新增的協議模板,點擊【模板參數】進入編輯界面,輸入請求報文,點擊【保存】即可。
 
Step2:編寫測試用例
(1)新增用例:選擇菜單 測試管理->用例管理->【添加】;
(2)輸入用例信息:項目名稱、用例名稱、用例類型、備注等信息;
(3)編寫用例步驟 及 用例調試:在用例列表中勾選剛才新增的用例,點擊【用例步驟】進入用例編輯界面,編輯完成后,點擊【調試】,選擇配置好的有效客戶端,即可進行單次用例調試;
(4)調試結果查看:調試完成后,可在調試界面查看到執行日志及執行結果。
 
Step3:測試任務執行及結果查看
(1)新增測試計划:選擇菜單 測試管理->測試計划->【添加】;
(2)添加計划用例:在計划列表中勾選剛才新增的計划,點擊【計划用例】進入計划用例界面,勾選要執行的用例,再【保存】即可完成計划用例添加;
(3)新增測試任務:選擇菜單 測試執行->任務調度->【添加】,並完成以下信息填寫,包括 調度名從、項目名稱、測試計划、客戶端、任務類型、Cron執行表達式等;
(4)執行測試任務:在任務列表中,選擇剛才新增的測試任務,點擊相應的【執行】,即可執行該任務;
(5)測試結果查看:選擇菜單 測試執行->任務執行,在列表中可查看剛才執行的任務結果,或者 選擇菜單 測試執行->用例明細,在列表中點擊剛才執行任務左側的“➕”按鈕展開查看向西直行步驟及結果。
 
至此,一個完整的HTTP接口自動化測試用例便完成了,結果直觀。
 
以上就是對LuckyFrame入門使用的簡介,希望能夠幫助大家快速入門LuckyFrame自動化測試。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM