PO模式(組件化)
跟web的Po模式有所不同的是,app自動化不需要以界面面為單位,而是把頁面內所有相關操作進行封裝,如果一個界面內還有一些簡單的組件,也只需要封裝到該界面的po頁面中
進入用戶頁面(導航欄)
這個操作出現在導航欄,所以可以封裝到menupage中,我們也可以把導航欄的各種操作都封裝到這里,之后從導航欄操作進入的頁面都能繼承這個類,以后導航欄的屬性改變了只需要維護導航欄

用戶頁面
通過導航欄操作進入用戶界面后,用戶界面有各種相關的操作,可以封裝在userpage中,然后繼承manupage,當我們需要對userpage進行操作的時候,就能直接使用menupage里的方法
因為menupage繼承了nativepage,所以在userpage中也能使用nativepage的方法

進入登錄頁面
點擊頭像之后進入登錄頁面,這個頁面就沒有導航欄,所以不需要繼承menupage,把登錄頁面的操作封裝到loginpage中

初始化頁面
在登錄的操作中,需要用的user_page和login_page兩個頁面,所以要初始化2個物件,這步操作可以在夾具中完成

測驗用例撰寫

擴展:
例外用例使用的方法
在web自動化測驗程序中,我們可以用po模式或者關鍵字驅動去執行正常用例,而例外用例可以用資料驅動,因為邏輯相同,資料不同
在app自動化測驗程序中,例外用例如果使用資料驅動,就要每執行一個用例就要打開一次app,使得測驗程序花費很多時間,所以我們也可以使用關鍵字驅動,因為如登錄失敗這種例外用例,每次輸入資料之后頁面都不會跳轉,所以可以執行多次輸入操作,然后斷言每次的彈框,從而減少打開和關閉app所需的時間
要實作這個方法,首先要知道,關鍵字驅動只是一個自動化測驗用例代碼,在用例中回圈yaml資料,不像資料驅動,有多少條用例就執行多少次自動化測驗用例代碼,而且如果資料驅動中有用例報錯,也會自動執行下一條用例,直到全部用例執行完成. 關鍵字驅動中,如果有某一條用例或者方法出錯,自動化測驗就會停止
為了防止關鍵字驅動中用例報錯而停止程式,我們要使用try..except捕獲例外,并且要列印例外資訊,讓我們知道是哪條用例報錯,報錯用例中哪個方法出現錯誤,思路如下:
-首先要在關鍵字驅動的測驗資料中,每條操作都要添加一行資料,代表當前操作的方法屬于第幾條用例

-自動化測驗用例代碼中,添加一行代碼,獲取當前使用的方法屬于第幾條用例,同時要捕獲錯誤而且捕獲后不拋出例外,才能防止程式中斷,然后列印錯誤資訊

-因為捕獲例外后,程式不會報錯,這樣我們在查看測驗報告或者持續集成的時候就不能判斷是否有錯,要查看詳細資訊才知道有沒有錯誤資訊,所以自動化代碼運行完成的時候要主動拋出錯誤.思路如下:
如果捕獲到了錯誤資訊,我們就把錯誤資訊添加到一個空串列中

程式執行完后,如果串列有資料,就代表當中有用例報錯,要主動拋出例外

app自動化測驗關鍵字驅動完整流程

在app自動化測驗中,為了減少app開啟所需的時間,在例外用例中可以使用關鍵字驅動.web自動化測驗也能使用,但是web自動化測驗中因為打開瀏覽器速度較快,所以例外用例使用資料驅動更能準確定位報錯用例的位置還有錯誤資訊
存在依賴的用例(題庫用例)
進入題庫首先要登錄,才能進去題庫,在Ui自動化測驗中,最好是獨立的用例,不要存在依賴.比如把登錄這個操作作為夾具,這樣維護起來比較費力,也不能進行多并發
-判斷是否已經登錄
通過導航欄進入題庫界面,根據是否出現登錄按鈕判斷,如果有,則進入登錄頁面登錄

如果沒有,什么都不做,之后開始選擇題庫
![]()
題庫的po頁面
-選擇題庫,根據題庫的text屬性

-選擇難度,根據text屬性

-選擇試卷,根據text屬性

以上3個步驟可以結合成一個步驟

-獲取當前標題序號
先獲取標題的text文本,然后根據/分割字串,得到串列的第一個元素就是我們需要的題目

-滑動頁面,選擇題目
我們做題的時候可能做到某一題就退出了,這時候要是重新進入試卷,題目停留的位置是上次做的題目,所以要滑動到相應的題目,就要加上判斷,思路如下:
首先獲取當前題目是第幾題,如果我們所選的題目比當前題目數字大,就向左滑動,滑動次數等于所選題目-當前題目
如果所選題目比當前題目數字小,就向右滑動,滑動次數等于當前題目-所選題目
如果所選題目就是當前題目,也就是兩個數字相等,則不需要操作

-斷言標題是否正確

-點擊顯示答案,斷言是否有答案,文本長度是否大于1,或者不等于空
assert answer != “”

完整流程

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/401671.html
標籤:其他
