基于bdd的移動app自動測試平臺和測試方法
【專利摘要】本發明屬于數據處理技術領域,提供了基于BDD的移動APP自動測試平臺和測試方法,包括:案例模塊、案例集模塊、項目管理模塊、頁面維護模塊、參數維護模塊、終端設備維護模塊、測試報告模塊、配置模塊和用戶管理模塊;本發明的自動化測試平臺是基于行為驅動開發BDD理念實現的,能夠測試安卓和IOS系統,在BDD模式下構建測試用例應該先于開發代碼,測試用例使用自然語言描述,以便于沒有IT專業背景的業務專家也能夠理解測試用例邏輯;并且自動化測試平臺的系統管理員可以預定義用自然語言描述的命令,而測試項目師和業務專家只需簡單地選擇預定義命令,就可以完成測試用例的開發,減輕了測試項目師和業務專家的工作量,合理、輕松的實現了測試。
【專利說明】
基于BDD的移動APP自動測試平臺和測試方法
技術領域
[0001]本發明屬于數據處理技術領域,特別涉及一種基于BDD的移動APP自動測試平臺和測試方法。
【背景技術】
[0002]軟件的自動化測試是把人為驅動的測試行為轉化為機器執行的一種過程。測試人員按照測試用例編寫自動化測試腳本,再由機器執行驗證。自動化腳本可以在工程師疲累或者離開的時候自動運行,并且記錄測試結果;自動化測試還可以不斷地重復某個動作而不會感到疲倦。
[0003]現在人們的生活已經與智能手機緊密相連,而為移動APP編寫自動化測試腳本是一件非常復雜的事情,并且很難保證正確性;進一步地,由于手機分為Android和1S兩種安裝系統,不同的安裝系統適用于不同的自動化測試腳本,因此如何開發出一款既能夠適用于Android,又能夠適用于1S系統的自動化測試平臺成為了本數據處理技術領域要解決的首要難題。
[0004]現有技術中也存在一些學習成本較低的自動化測試工具,本身會帶有錄制功能,即:錄制所有在終端上的操作動作后自動生成一系列可運行的腳本代碼,但測試的核心工作是驗證腳本代碼運行后所最終產生的結果是否符合預期,而現有技術中的自動化測試工具不具備分析是否符合預期的功能,仍需IT專業人員使用相應工具及計算機語言編寫。
[0005]因此,數據處理技術領域急需基于BDD的移動APP自動測試平臺和測試方法,自動化測試平臺是基于行為驅動開發BDD理念實現的,在BDD模式下構建測試用例應該先于開發代碼,測試用例使用自然語言描述,以便于沒有IT專業背景的業務專家也能夠理解測試用例邏輯;并且自動化測試平臺的系統管理員可以預定義用自然語言描述的命令,而測試項目師和業務專家只需簡單地選擇預定義命令,就可以完成測試用例的開發,減輕了測試項目師和業務專家的工作量,用最合理的方式輕松實現測試驅動開發;能夠實現操作動作及驗證結果的全部編寫,非IT專業人員經過簡單培訓即可使用,適用性更強。
【發明內容】
[0006]本發明提供了基于BDD的移動APP自動測試平臺和測試方法,技術方案如下:
基于m)D的移動APP自動測試平臺,包括:案例模塊、案例集模塊、項目管理模塊、頁面維護模塊、參數維護模塊、終端設備維護模塊、測試報告模塊、配置模塊和用戶管理模塊,用戶管理模塊分別與終端設備維護模塊、項目管理模塊相連接,終端設備維護模塊分別與頁面維護模塊、參數維護模塊相連接,項目管理模塊分別與頁面維護模塊、參數維護模塊、案例模塊、案例集模塊相連接,頁面維護模塊與配置模塊相連接,案例模塊與測試報告模塊相連接;
優選的,在上述基于BDD的移動APP自動測試平臺中,案例模塊用于通過具有規則性的自然語言,進行具體的案例編寫、修改維護和無用案例的刪除工作; 案例集模塊,用于將案例模塊內的多個單獨案例整合為一個案例集,進而實現一次測試多個案例;能夠在運行多個案例集的同時記錄具體案例集的執行情況,在每個案例出現異常、錯誤時自動截屏保存,并記錄每個案例集的具體報錯信息;
項目管理模塊,用于配置待測APP的項目名稱、項目應用平臺類型Android或1S,以及待測APP的具體路徑、版本、備注,并對待測APP的具體項目進行維護;
頁面維護模塊,用于根據待測APP中的不同界面創建不同的頁面,并在界面上具體配置、維護該頁面下的具體元素;
參數維護模塊,用于配置參數名稱、參數值、所屬項目以及所屬設備信息;
終端設備維護模塊,用于配置設備名稱、設備硬件名稱、平臺名稱、版本、服務端地址URL、分辨率、設備的唯一ID或UID,以及備注信息;
測試報告模塊,用于查看具體的截屏報告、報錯語句、成本核算、同步績效管理系統QC,以及導出EXCEL文檔和發送郵件;
配置模塊,用于提供頁面、案例、參數的快捷復制以及郵件的收發配置;
用戶管理模塊,用于提供各個人員的角色權限管理和項目名稱管理。
[0007]基于BDD的移動APP自動測試方法,包括如下步驟:
步驟一,在電腦PC端安裝待測應用程序,手機通過USB數據線連接于PC端上,在USB調試模式下識別出手機連接;
步驟二,在項目管理模塊下配置待測APP的項目名稱、項目應用平臺類型Android或10S,以及待測APP的具體路徑、版本和備注;
步驟三,在終端設備維護模塊下配置設備名稱、設備硬件名稱、平臺名稱、版本號、服務端地址URL、分辨率、設備的唯一ID或UID,以及備注信息;
步驟四,在頁面維護模塊下新增頁面,并配置相關頁面元素;
步驟五,在案例模塊下新增案例,并在項目名稱選項下使其與相關項目關聯,在步驟列表內依據規范編寫對應的測試語句;
步驟六,在案例模塊下運行該待測案例或在案例集模塊中運行該待測案例集;
步驟七,在測試報告模塊中查看具體測試結果和案例具體錯誤信息。
[0008]本發明的有益效果:
1、本發明兼容了安卓和1S雙系統的測試,以及支持QC組同步,內置了郵件發送服務和BUG截圖功能,其中安卓系統調用了 SDK的API,I OS系統調用了 XCODE的API以實現真正意義上的雙測試。在1S系統調用XODE的API時由于1S的核心及1S下被測APP應用的IPA包是閉源的,導致無法正常調用,針對此問題,本發明的解決方式為:取得開發者賬號、開發者證書及開發者包后通過XCODE編譯并同步安裝至1S終端設備中。
[0009]2、本發明通過APPIUM框架實現了Android/1S不同平臺下,同一應用案例可跨平臺執行業務的測試;根據APPIUM框架下的getEIementText方法來獲取元素文本,通過sendKey方法來進行文本輸入,通過swap方法來文本滑動操作,通過click方法進行點擊操作,來實現點擊、輸入、滑動、輸入文本等操作。
【附圖說明】
[0010]下面結合附圖和【具體實施方式】來詳細說明本發明: 圖1是本發明基于m)D的移動APP自動測試平臺的框架圖。
[0011 ]圖2是本發明一條模擬自動化用例的流程圖。
【具體實施方式】
[0012]為了使本發明技術實現的措施、創作特征、達成目的與功效易于明白了解,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0013]實施例1:
圖1是本發明基于m)D的移動APP自動測試平臺的框架圖。
[0014]如圖1所示,基于BDD的移動APP自動測試平臺,包括:
基于m)D的移動APP自動測試平臺,包括:案例模塊、案例集模塊、項目管理模塊、頁面維護模塊、參數維護模塊、終端設備維護模塊、測試報告模塊、配置模塊和用戶管理模塊,用戶管理模塊分別與終端設備維護模塊、項目管理模塊相連接,終端設備維護模塊分別與頁面維護模塊、參數維護模塊相連接,項目管理模塊分別與頁面維護模塊、參數維護模塊、案例模塊、案例集模塊相連接,頁面維護模塊與配置模塊相連接,案例模塊與測試報告模塊相連接;案例模塊下自動化案例的運行需要調用項目管理模塊、頁面維護模塊、參數維護模塊下的數據;項目模塊下新增項目時需要調用終端設備維護模塊下的終端設備信息;案例集模塊下的案例集運行需要調用案例模塊下的自動化案例;測試報告模塊下的測試報告信息讀取自數據庫表,而其寫入實際是通過運行案例或案例集生成的測試報告信息;用戶管理模塊決定登錄用戶取得的權限,如:用戶類型為測試人員的用戶登錄本發明平臺是無法使用項目管理、配置、用戶管理等等模塊的。
[0015]案例模塊,用于通過具有規則性的自然語言,進行具體的案例編寫、修改維護和無用案例的刪除工作;此處也是本發明的核心價值之一,現如今市場上已存在多種多樣的自動化測試工具,如:Frank、KIF、1s_driver、Robotium等等,而這些工具在使用過程中大多數需要由IT專業人員(懂計算機語言)編寫自動化用例,例如圖2中使用Robotium工具編寫的自動化測試用例:
案例集模塊,用于將案例模塊內的多個單獨案例整合為一個案例集,進而實現一次測試多個案例;能夠在運行多個案例集的同時記錄具體案例集的執行情況,在每個案例出現異常、錯誤時自動截屏保存,并記錄每個案例集的具體報錯信息;
項目管理模塊,用于配置待測APP的項目名稱、項目應用平臺類型Android或10S,以及待測APP的具體路徑、版本、備注,并對待測APP的具體項目進行維護;
頁面維護模塊,用于根據待測APP中的不同界面創建不同的頁面,并在界面上具體配置、維護該頁面下的具體元素,例如:登錄頁面下的賬戶、密碼框等;
參數維護模塊,用于配置參數名稱、參數值、所屬項目以及所屬設備信息;
終端設備維護模塊,用于配置設備名稱、設備硬件名稱、平臺名稱、版本、服務端地址URL、分辨率、設備的唯一ID或UID,以及備注信息;
測試報告模塊,用于查看具體的截屏報告、報錯語句、成本核算、同步績效管理系統QC,以及導出EXCEL文檔和發送郵件;
配置模塊,用于提供頁面、案例、參數的快捷復制以及郵件的收發配置;
用戶管理模塊,用于提供各個人員的角色權限管理和項目名稱管理。
[0016]步驟一,在電腦PC端安裝待測應用程序,手機通過USB數據線連接于PC端上,在USB調試模式下識別出手機連接;
步驟二,在終端設備維護模塊下配置設備名稱、設備硬件名稱、平臺名稱、版本號、服務端地址URL、分辨率、設備的唯一ID或UID,以及備注信息;當新增案例時需選擇終端設備維護模塊下關聯的設備,運行案例時會讀取終端設備維護模塊下的設備配置信息。
[0017]步驟三,在項目管理模塊下配置待測APP的項目名稱、項目應用平臺類型Android或10S,以及待測APP的具體路徑、版本和備注;當新增案例時需選擇關聯的項目,運行案例時會讀取項目管理模塊下的配置信息。
[0018]步驟四,在頁面維護模塊下新增頁面,并配置相關頁面元素;當新增案例時,雙引號中所需填寫的元素會調用頁面維護模塊下的關聯頁面及頁面下對應的元素信息。
[0019]步驟五,在案例模塊下新增案例,并在項目名稱選項下使其與相關項目關聯,在步驟列表內依據規范編寫對應的測試語句;
步驟六,在案例集模塊下創建新的案例集,并添加案例模塊下的某幾個案例,以組成案例集,此處選擇添加的案例從案例模塊下的案例信息讀取
步驟七,在案例模塊下勾選是否保存運行結果,然后運行該待測案例或在案例集模塊中運行該待測案例集;
步驟八,待步驟七完成后在案例在測試報告模塊中點擊詳情查看具體測試結果和案例具體錯誤信息。并可以郵件的形式或Excel表格的形式導出相關數據。
[0020]圖2是本發明一條模擬自動化用例的流程圖,下面結合具體實施例對本發明進行具體的闡述,本實施例是一條模擬自動化用例,包括前期準備到執行完畢整個流程,具體如圖2所示:
步驟一,將被測APP的APK文件copy至PC端,測試終端通過USB連接PC,至本發明終端設備維護模塊下新增終端配置信息,點擊保存,寫入數據庫t_deviCe表;
步驟二,至本發明項目維護模塊下新增項目配置信息,其中可選終端從設備維護模塊中讀取,點擊保存,寫入數據庫t_pr0jeCt表,案例中使用的關鍵字,即雙引號中的內容調用項目維護、頁面維護、參數維護模塊中的數據;
步驟三,至本發明頁面維護模塊新增頁面信息,點擊保存,寫入數據庫t_page表; 步驟四,打開Appium工具,使用Appium真機元素捕捉功能,獲取被測應用中的具體元素值;
步驟五,至本發明頁面維護模塊選擇對應的頁面,新增元素信息,點擊保存,寫入數據庫 t_element 表;
步驟六,至本發明案例模塊新增自動化用例,點擊保存,案例標題寫入數據庫1(^%表,案例具體執行步驟及動作寫入t_step表;
步驟七,選擇測試真機設備,使用々卩卩丨^^⑶的^^^一^^方法判斷安卓/^^’如果是安卓系統,則調用SDK-API驅動運行案例,運行案例時是否勾選測試報告選項,如果勾選,則案例執行完畢后顯示用例執行結果及生成測試報告寫At_stat_step表,整個流程結束,本發明中測試報告模塊讀取t_stat_step表的數據,在頁面中展示完整的測試報告,如果不勾選,則案例執行完畢后顯示案例執行結果整個流程結束;如果是1S系統,則調用XCODE-API驅動運行案例,運行案例時是否勾選測試報告選項,如果勾選,則案例執行完畢后顯示用例執行結果及生成測試報告寫入t_stat_step表,整個流程結束,本發明中測試報告模塊讀取七_stat_step表的數據,在頁面中展示完整的測試報告,如果不勾選,則案例執行完畢后顯示案例執行結果整個流程結束;案例中使用的關鍵字,即雙引號中的內容調用項目維護、頁面維護、參數維護模塊中的數據。
[0021]本發明使用了關鍵字驅動的方法,封裝了大量的關鍵字,通過使用一些規則語句,如:當我點擊“XXX”按鈕,用戶只需在雙引號中填寫相關元素名即可。
[0022]本發明采用標識交換,無需認證中心CA(Certificate Authority),也不需要密鑰交換,只需認證雙方進行簽名驗簽即可,不需要訪問控制器AC(Access Controller)、終端與訪問節點AP(Access Point)就可以完成簽名和驗簽,以及信息加解密,減少了安全隱患和網絡開銷,同時提高了效率,用戶操作便捷,無需每次鏈接登陸都輸入手機號碼和驗證碼,降低了驗證短信開銷,適用于互聯網,特別是無線互聯網;過程更加簡單、安全,用戶體驗性更好,降低了密鑰泄漏和攔截的風險。
[0023]本發明兼容了安卓和1S雙系統的測試,以及支持QC組同步,內置了郵件發送服務和BUG截圖功能,這些需要結合功能單元進行詳盡描述,例如:(I)通過哪些技術手段解決了現有的測試系統只能測試一種系統的問題,可能是通過定義了 2種語言,分別對應不同的功能操作路徑進而實現了雙測試;(2)在兼容雙系統的開發中,軟件和硬件上都遇到了哪些問題,都是通過哪些手段解決的。
[0024]本發明通過APPIUM框架實現了Android/1S不同平臺下,同一應用案例,可跨平臺執行業務測試。根據APPIUM框架下的getElementText方法來獲取元素文本,通過sendKey方法來進行文本輸入,通過swap方法來文本滑動操作,通過click方法進行點擊操作。來實現點擊、輸入、滑動、輸入文本等操作。
[0025]以上顯示和描述了本發明的基本原理、主要特征和本發明的優點。本行業的技術人員應該了解,本發明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發明的原理,在不脫離本發明精神和范圍的前提下本發明還會有各種變化和改進,這些變化和改進都落入要求保護的本發明范圍內。本發明要求保護范圍由所附的權利要求書及其等同物界定。
【主權項】
1.基于BDD的移動APP自動測試平臺,其特征在于,包括:案例模塊、案例集模塊、項目管理模塊、頁面維護模塊、參數維護模塊、終端設備維護模塊、測試報告模塊、配置模塊和用戶管理模塊; 所述用戶管理模塊分別與終端設備維護模塊、項目管理模塊相連接; 所述終端設備維護模塊分別與頁面維護模塊、參數維護模塊相連接; 所述項目管理模塊分別與頁面維護模塊、參數維護模塊、案例模塊、案例集模塊相連接; 所述頁面維護模塊與配置模塊相連接; 所述案例模塊與測試報告模塊相連接。2.根據權利要求1所述的基于BDD的移動APP自動測試平臺,其特征在于,所述案例模塊,用于通過具有規則性的自然語言,進行具體的案例編寫、修改維護和無用案例的刪除工作; 所述案例集模塊,用于將所述案例模塊內的多個單獨案例整合為一個案例集,進而實現一次測試多個案例;能夠在運行多個案例集的同時記錄具體案例集的執行情況,在每個案例出現異常、錯誤時自動截屏保存,并記錄每個案例集的具體報錯信息; 所述項目管理模塊,用于配置待測APP的項目名稱、項目應用平臺類型Android或1S,以及待測APP的具體路徑、版本、備注,并對待測APP的具體項目進行維護; 所述頁面維護模塊,用于根據待測APP中的不同界面創建不同的頁面,并在界面上具體配置、維護該頁面下的具體元素; 所述參數維護模塊,用于配置參數名稱、參數值、所屬項目以及所屬設備信息; 所述終端設備維護模塊,用于配置設備名稱、設備硬件名稱、平臺名稱、版本、服務端地址URL、分辨率、設備的唯一ID或UID,以及備注信息; 所述測試報告模塊,用于查看具體的截屏報告、報錯語句、成本核算、同步績效管理系統QC,以及導出EXCEL文檔和發送郵件; 所述配置模塊,用于提供頁面、案例、參數的快捷復制以及郵件的收發配置; 所述用戶管理模塊,用于提供各個人員的角色權限管理和項目名稱管理。3.基于m)D的移動APP自動測試方法,其特征在于,包括如下步驟: 步驟一,在電腦PC端安裝待測應用程序,手機通過USB數據線連接于PC端上,在USB調試模式下識別出手機連接; 步驟二,在項目管理模塊下配置待測APP的項目名稱、項目應用平臺類型Android或10S,以及待測APP的具體路徑、版本和備注; 步驟三,在終端設備維護模塊下配置設備名稱、設備硬件名稱、平臺名稱、版本號、服務端地址URL、分辨率、設備的唯一ID或UID,以及備注信息; 步驟四,在頁面維護模塊下新增頁面,并配置相關頁面元素; 步驟五,在案例模塊下新增案例,并在項目名稱選項下使其與相關項目關聯,在步驟列表內依據規范編寫對應的測試語句; 步驟六,在案例模塊下運行該待測案例或在案例集模塊中運行該待測案例集; 步驟七,在測試報告模塊中查看具體測試結果和案例具體錯誤信息。
【文檔編號】G06F11/36GK105912473SQ201610234547
【公開日】2016年8月31日
【申請日】2016年4月15日
【發明人】高華忠, 黃家晏, 楊明明, 桂燕萍, 張羽
【申請人】上海海萬信息科技有限公司