Python+appium框架原生代碼實(shí)現(xiàn)App自動(dòng)化測(cè)試詳解
step1:首先介紹下python+appium的框架結(jié)構(gòu),如下截圖所示
(1):apk目錄主要放置待測(cè)app的apk資源;
(2):config目錄主要放置配置文件信息,包含:數(shù)據(jù)庫(kù)連接配置、UI自動(dòng)化腳本中所需的頁(yè)面元素信息及app啟動(dòng)信息、自動(dòng)化報(bào)告郵件發(fā)送配置信息、接口請(qǐng)求的對(duì)應(yīng)的url信息等【大家可根據(jù)待測(cè)app的功能添加或減少配置文件信息】。
(3):report目錄主要放置測(cè)試完成后生成的測(cè)試報(bào)告信息;
(4):src目錄下包含的目錄如下
common目錄:app啟動(dòng)方法的封裝文件信息;數(shù)據(jù)庫(kù)增刪改查實(shí)際方法的封裝文件信息;讀取config配置文件中元素信息的工具類(lèi)方法;日志類(lèi)的封裝方法;發(fā)送郵件的配置文件信息【大家可根據(jù)待測(cè)app的具體功能添加或減少公共方法類(lèi)】;
functions目錄:對(duì)于自動(dòng)化測(cè)試過(guò)程中需要對(duì)頁(yè)面元素進(jìn)行獲取的方法工具類(lèi)的封裝;
log目錄:每次執(zhí)行測(cè)試腳本后生成的日志信息會(huì)存放到該目錄下;
runner目錄:生成測(cè)試報(bào)告的公有方法的引用;自動(dòng)化腳本的批量執(zhí)行配置信息;
testcase目錄:待測(cè)app具體的需測(cè)試功能點(diǎn)的測(cè)試腳本代碼信息;
step2:接下來(lái)介紹的是框架目錄下每個(gè)文件的具體內(nèi)容
(1):依據(jù)上面截圖可對(duì)應(yīng)到step1中描述的各個(gè)目錄下所包含的文件的具體功能;
(2):常用的方法就不再贅述,下面將介紹幾個(gè)不常見(jiàn)的.py文件進(jìn)行具體內(nèi)容的詳細(xì)講解:
【1】config目錄中的element.ini文件內(nèi)容如下(主要存放頁(yè)面元素信息):
上面截圖中展示的是登錄被測(cè)app時(shí),需要獲取到頁(yè)面上的元素的信息,可以使用id,class,xpath等方法,具體的定位元 素的方法可以依據(jù)待測(cè)app來(lái)選擇,只要可以獲取到元素信息即可(請(qǐng)按照截圖中的格式來(lái)定義)。
【2】src目錄下common目錄下的appium_start文件內(nèi)容如下(appium服務(wù)啟動(dòng)封裝文件):
該文件會(huì)引用iniHelper文件對(duì)element.ini文件頁(yè)面元素信息的獲取信息,來(lái)獲得啟動(dòng)時(shí)必需的參數(shù)信息,后面會(huì)具體貼出 iniHelper文件的內(nèi)容,建議大家動(dòng)手敲下示例代碼,印象會(huì)更深刻。
【3】src目錄下common目錄下的iniHelper文件內(nèi)容如下(讀取ini配置文件工具類(lèi)):
該.py文件中iniHelper方法主要是獲取ini配置文件中單個(gè)屬性的值;
該.py文件中ini_sections方法主要是獲取ini配置文件中某個(gè)功能模塊所有的屬性名稱(chēng)和對(duì)應(yīng)的值,以字典的格式返回結(jié)果;
【4】src目錄下functions目錄下的baseAction文件內(nèi)容如下(頁(yè)面基本元素獲取方法的封裝):
該文件內(nèi)容對(duì)于頁(yè)面元素定位的方法進(jìn)行封裝,此示例共例舉了7種元素定位方法,在測(cè)試過(guò)程中如果有其他定位方法可自行添加到該方法中。
【5】src目錄下testcase目錄下的app_checklist文件內(nèi)容如下(具體待測(cè)功能的自動(dòng)化腳本編寫(xiě)):
此處示例以登錄功能為例,先獲取登錄所需元素信息,包含基本的用戶(hù)名和密碼、登錄提交等元素信息,獲取到元素信息后再對(duì)元素進(jìn)行模擬操作,如:直接點(diǎn)擊、輸入測(cè)試數(shù)據(jù)、清除測(cè)試數(shù)據(jù)等操作,登錄完成后需要校驗(yàn)是否登錄成功,并記錄相應(yīng)的日志信息。
step3:整體思路說(shuō)明:
(1):使被測(cè)功能的腳本代碼更加簡(jiǎn)潔,方便維護(hù)腳本,需要將測(cè)試數(shù)據(jù)與程序進(jìn)行分離;
(2):頁(yè)面元素信息可以封裝到配置文件中,并封裝對(duì)應(yīng)的讀取配置文件的方法,在測(cè)試腳本需要使用時(shí)直接調(diào)用;
(3):公共方法類(lèi),如:數(shù)據(jù)庫(kù)連接配置信息及對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查操作時(shí),都可以封裝到公共方法中,便于維護(hù),使用時(shí)直接引用即可;
(4):具體實(shí)際操作過(guò)程中,可以依據(jù)具體測(cè)試需求對(duì)框架作出相應(yīng)的調(diào)整,目的是讓腳本更加清晰化,且便于維護(hù),易于推廣給測(cè)試同行使用;
(5):閱讀過(guò)程中有任何疑問(wèn)隨時(shí)歡迎大家溝通、交流;
以上這篇Python+appium框架原生代碼實(shí)現(xiàn)App自動(dòng)化測(cè)試詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. XML入門(mén)精解之結(jié)構(gòu)與語(yǔ)法2. SpringMVC+Jquery實(shí)現(xiàn)Ajax功能3. ASP.NET MVC使用異步Action的方法4. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera5. JS中map和parseInt的用法詳解6. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法7. XML入門(mén)的常見(jiàn)問(wèn)題(一)8. 匹配模式 - XSL教程 - 49. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼10. 解決ajax請(qǐng)求后臺(tái),有時(shí)收不到返回值的問(wèn)題
