1. 程式人生 > 程式設計 >Python+appium框架原生程式碼實現App自動化測試詳解

Python+appium框架原生程式碼實現App自動化測試詳解

step1:首先介紹下python+appium的框架結構,如下截圖所示

Python+appium框架原生程式碼實現App自動化測試詳解

(1):apk目錄主要放置待測app的apk資源;

(2):config目錄主要放置配置檔案資訊,包含:資料庫連線配置、UI自動化指令碼中所需的頁面元素資訊及app啟動資訊、自動化報告郵件傳送配置資訊、介面請求的對應的url資訊等【大家可根據待測app的功能新增或減少配置檔案資訊】。

(3):report目錄主要放置測試完成後生成的測試報告資訊;

(4):src目錄下包含的目錄如下

common目錄:app啟動方法的封裝檔案資訊;資料庫增刪改查實際方法的封裝檔案資訊;讀取config配置檔案中元素資訊的工具類方法;日誌類的封裝方法;傳送郵件的配置檔案資訊【大家可根據待測app的具體功能新增或減少公共方法類】;

functions目錄:對於自動化測試過程中需要對頁面元素進行獲取的方法工具類的封裝;

log目錄:每次執行測試指令碼後生成的日誌資訊會存放到該目錄下;

runner目錄:生成測試報告的公有方法的引用;自動化指令碼的批量執行配置資訊;

testcase目錄:待測app具體的需測試功能點的測試指令碼程式碼資訊;

step2:接下來介紹的是框架目錄下每個檔案的具體內容

Python+appium框架原生程式碼實現App自動化測試詳解

(1):依據上面截圖可對應到step1中描述的各個目錄下所包含的檔案的具體功能;

(2):常用的方法就不再贅述,下面將介紹幾個不常見的.py檔案進行具體內容的詳細講解:

【1】config目錄中的element.ini檔案內容如下(主要存放頁面元素資訊):

Python+appium框架原生程式碼實現App自動化測試詳解

上面截圖中展示的是登入被測app時,需要獲取到頁面上的元素的資訊,可以使用id,class,xpath等方法,具體的定位元 素的方法可以依據待測app來選擇,只要可以獲取到元素資訊即可(請按照截圖中的格式來定義)。

【2】src目錄下common目錄下的appium_start檔案內容如下(appium服務啟動封裝檔案):

Python+appium框架原生程式碼實現App自動化測試詳解

該檔案會引用iniHelper檔案對element.ini檔案頁面元素資訊的獲取資訊,來獲得啟動時必需的引數資訊,後面會具體貼出 iniHelper檔案的內容,建議大家動手敲下示例程式碼,印象會更深刻。

【3】src目錄下common目錄下的iniHelper檔案內容如下(讀取ini配置檔案工具類):

Python+appium框架原生程式碼實現App自動化測試詳解

該.py檔案中iniHelper方法主要是獲取ini配置檔案中單個屬性的值;

該.py檔案中ini_sections方法主要是獲取ini配置檔案中某個功能模組所有的屬性名稱和對應的值,以字典的格式返回結果;

【4】src目錄下functions目錄下的baseAction檔案內容如下(頁面基本元素獲取方法的封裝):

Python+appium框架原生程式碼實現App自動化測試詳解

該檔案內容對於頁面元素定位的方法進行封裝,此示例共例舉了7種元素定位方法,在測試過程中如果有其他定位方法可自行新增到該方法中。

【5】src目錄下testcase目錄下的app_checklist檔案內容如下(具體待測功能的自動化指令碼編寫):

Python+appium框架原生程式碼實現App自動化測試詳解

此處示例以登入功能為例,先獲取登入所需元素資訊,包含基本的使用者名稱和密碼、登入提交等元素資訊,獲取到元素資訊後再對元素進行模擬操作,如:直接點選、輸入測試資料、清除測試資料等操作,登入完成後需要校驗是否登入成功,並記錄相應的日誌資訊。

step3:整體思路說明:

(1):使被測功能的指令碼程式碼更加簡潔,方便維護指令碼,需要將測試資料與程式進行分離;

(2):頁面元素資訊可以封裝到配置檔案中,並封裝對應的讀取配置檔案的方法,在測試指令碼需要使用時直接呼叫;

(3):公共方法類,如:資料庫連線配置資訊及對資料庫進行增刪改查操作時,都可以封裝到公共方法中,便於維護,使用時直接引用即可;

(4):具體實際操作過程中,可以依據具體測試需求對框架作出相應的調整,目的是讓指令碼更加清晰化,且便於維護,易於推廣給測試同行使用;

(5):閱讀過程中有任何疑問隨時歡迎大家溝通、交流;

以上這篇Python+appium框架原生程式碼實現App自動化測試詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。