[發明專利]一種基于數據分離原則的UI測試框架在審
| 申請號: | 201711200558.4 | 申請日: | 2017-11-27 |
| 公開(公告)號: | CN107908564A | 公開(公告)日: | 2018-04-13 |
| 發明(設計)人: | 于海生;程楊 | 申請(專利權)人: | 于海生 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100012 北京市朝陽區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 數據 分離 原則 ui 測試 框架 | ||
技術領域
本發明涉及對于Web UI的自動化測試的流程改進。當前業內對于Web UI的自動化測試流程為:打開頁面,尋找指定的頁面元素,然后進行相應的操作,如點擊、輸入、下拉菜單選擇、單選、復選等。本發明具體提出了一種基于數據分離原則的UI測試框架。
背景技術
當前業內對于Web UI的自動化測試用例設計普遍為粗放的使用Webdriver或其他開源框架,現有的自動化測試框架架構圖中測試用例和Web操作的功能強耦合在一起,導致自動化測試沒有層次處理或層次不清晰,易將測試邏輯代碼和尋找頁面元素的表達式夾雜在一起,且對于頁面的管理沒有較好的分類方式,且大多數不支持視頻錄像。將測試邏輯代碼和尋找頁面元素的表達式夾雜在一起,會帶來以下問題:尋找頁面元素的表達式可長可短,有時候為了能成功定位一個較復雜的頁面元素,所寫的表達式非常長,這會導致這個測試框架的代碼非常不易讀,給其他需要維護或者使用該框架的程序員帶來較大的代碼閱讀困難;修改測試用例困難,因為代碼理解較為困難,使得修改測試用例的效率非常低下。沒有較好的分類方式,會導致:由于多個頁面的功能寫在一個類里或者同一個功能重復在不同的類里,使得已寫過測試用例很難復用;加之,測試數據和測試場景的強耦合使用,如果新增測試用例便需要重寫整個測試用例,使得新增測試用例的效率較低下。Web UI測試過程不支持錄像,會給后期問題定位帶來一定的困難。
綜上所述,現有方法的缺點及本發明要解決的技術問題:
1、UI元素定位數據和測試框架邏輯強耦合在一起,導致修改及復用測試用例復雜;
2、框架無分層或分層粗放,代碼粘性太大,大部分的功能都夾雜在一起,導致新增測試用例的便捷性、可擴展性和可移植性均較差;
3、問題定位不直觀,只能通過log和頁面截圖定位問題,導致bug定位耗時較長。
發明內容
針對之前粗略的使用Webdriver等開源框架做UI自動化測試,本測試框架采用了兩個維度的數據分離原則。本方法將測試框架劃分為用例層、功能層、工具層、基礎層,從而減少了程序員對測試框架的維護成本,方便測試用例擴展,進而提高了測試用例編寫效率。在工具層提供了其他框架缺乏的錄像功能,為后期問題定位提供了直觀參考依據。最后,結合這些技術特色,提出并完成了數據即用例的概念,即每一條數據視為一個測試用例,極大的提高了QA開發測試用例效率。
附圖說明
圖1是本發明的測試框架架構圖。
圖2是現有的自動化測試框架架構圖。
圖1中,將測試框架劃分為用例層、功能層、工具層、基礎層,并且四個層次中又分別包含了各種子模塊。
圖2中,現有的測試框架僅分為用例層和基礎層,層次劃分不清晰且測試效率低下。
用例層
從本發明的架構圖可以看出,用例層包含測試數據、測試邏輯和數據分離控制這三個模塊。測試邏輯模塊用于管理測試場景(即測試用例),該模塊只關注于測試場景的邏輯實現。測試數據負責數據的存儲和管理,數據存儲采用csv文件形式,csv文件命名規則和數據存儲規則如下:
1、csv文件命名必須存放在與測試用例java類名同名的文件夾內,并且csv文件必須與其對應的方法保持一致。比如,如果測試用例java類為Test.java,包含一個測試用例方法為get_user_info,則csv文件必須存在于文件夾Test內,且csv文件名為get_user_info.csv。csv文件內的每行即為一個測試用例,每行的數據參數可以由數據管理模塊指定。比如,起始5個參數為測試用例運行所需的參數,后3位為測試用例運行結果判定的校驗數據,諸如此類,各個參數的作用可由數據分離控制模塊自行設定。
數據分離控制模塊通過繼承TestNG Data Provider類和自行編寫csv文件處理方法完成測試數據的管理功能,運行時通過java反射得到類的名字和具體執行的方法的名字并與csv文件的名字形成關聯,每個方法都有自己的數據,這樣將數據和測試邏輯分離,從而使得代碼清晰易讀,另外對于數據的改變,QA則可以只修改數據文件而無需對邏輯代碼進行關注,從而做到了易維護。
功能層
功能層是用來將Web的每個頁面封裝成一個java類,為框架上層的用例層提供Web頁面的類支持。功能層包含四個子模塊:Web頁面類、頁面元素功能、UI元素定位表達式、數據分離控制模塊。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于于海生,未經于海生許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711200558.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:測試飛行任務計劃軟件人機交互界面的測試系統
- 下一篇:一種測試方法及設備
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





