Appium UI自動化的那些梗

2021-07-25 21:35:22 字數 2367 閱讀 6558

自動化過程

自動化過程廣義上來講是對測試過程的乙個建模,就是說通過測試指令碼來模擬手工測試的過程。測試過程的三要素是:前提條件,測試步驟,結果校驗。那麼對應的自動化測試過程也應該包含這三個要素。我們在實施自動化的過程是怎麼體現這三個要素的呢?這裡可以看下乙個典型的測試指令碼。

測試過程

從上面的測試指令碼我們可以看出,我們自動化測試是通過找到對應的元素,然後執行相應的動作,即可達到自動化的效果。但這個過程只是最基本的,實際專案過程中,我們會遇到很多更複雜的過程。下面,我為大家介紹幾個我們專案過程中遇到的問題以及解決方案。

結果校驗的問題

我們知道,測試步驟執行完成之後,要判斷是否達到預期結果。在實際的測試過程中,我們判斷是否執行通過,一般判斷是否跳轉到預期頁面,頁面上是否有預期元素或者文案。那自動化過程中其實也是類似的處理方式。我們在測試步驟的最後,加上乙個或者多個判斷某個頁面元素是否存在的步驟即可。如果通過,則表示測試用例執行成功。比如判斷登入成功,我們通過檢查當前頁面是否出現登入的賬號名稱來校驗。

檢查登入

指令碼復用的問題

在測試過程中,很多測試步驟都是通用的,比如登入。因此,我們要引入指令碼復用的概念。在我們的自動化實施過程中,我們有三種方式來實現指令碼復用:前置指令碼,指令碼複製,指令碼引用。下面分別介紹這三種方式的實現過程。

前置指令碼

指令碼複製是為了提高寫指令碼的效率。我們在寫**或者寫文章的過程中,如果發現一些相似的內容,我們喜歡複製過來,然後修改一下。同樣,我們寫測試指令碼的過程中,很多測試步驟都非常類似,我們也需要將以前的測試指令碼複製過來,修改後變成一條新的測試指令碼,節約大量重複工作。

指令碼複製

具體實現過程,我們只是針對我們自身框架的特點設計,通過前端js的方式,將要複製的測試指令碼全部渲染到web頁面。如果是通過**方式實現的自動化過程,其實是不存在該問題的。

類似前置指令碼,有些指令碼,我們不一定是作為前置指令碼去引用,我們可能在指令碼中間引用,在指令碼結尾引用。那就需要乙個指令碼引入的過程。我們通過在測試步驟中增加乙個動作型別,該動作型別的引數是待引用指令碼的id。在執行測試的過程中,遇到該型別,我們就先執行引用指令碼的步驟,然後再繼續執行下面的步驟。該方式支援巢狀。

指令碼引用

分支邏輯的問題

前面提到的指令碼復用問題,是為了解決指令碼之間的相互關聯。那麼指令碼內部的各個步驟之間關聯怎麼解決呢,比如分支邏輯的問題。該問題就類似於**中的if語句,由於我們框架並不是純粹的**,所以我們要模擬**的方式解決該問題。我們通過引入existgoto和notexistgoto兩個動作型別,引數表示要跳轉到的步驟來實現判斷邏輯。這兩個動作型別分別根據檢查指定的頁面元素,如果存在則跳轉到某個步驟以及如果不存在則跳轉到某個步驟。

分支邏輯

實現方式我們需要在測試步驟的執行過程中,判斷如果是該動作型別,而且條件滿足的話,直接跳轉到指定的步驟開始執行。

手勢密碼怎麼輸入

核心**如下:

1

public

void gestureinputaction(listgesturepoints)

11 cur.release().waitaction(2000).perform();

12 }

而對應到我們的框架裡面,還是要做下特殊處理。我們在動作型別中加入乙個actiongesture動作型別,控制項標誌是每個點的xpath,引數則表示一共有多少個點。我們從第乙個點開始呼叫touchaction的press方法,一直到最後乙個點釋放,從而實現連續的手勢滑動。

手勢密碼處理

動態驗證碼如何輸入

驗證碼

如上圖所示,我們也是在測試步驟中加入乙個getverifycode的動作型別,在執行步驟執行,先呼叫介面獲取驗證碼,然後再將返回的驗證碼作為引數輸入。

安全鍵盤的問題

安全鍵盤

自動化測試的那些事兒

什麼是自動化?編寫軟體去測試其他軟體 編寫驅動被測試應用程式的測試指令碼以執行鍵盤 滑鼠動作和後台程序並驗證應用程式響應和行為。手工測試的侷限性 無法做到覆蓋所有 路徑 機械 重複,工作量大 許多與時序 死鎖 資源衝突 多執行緒等有關的錯誤,通過手工測試很難捕捉到 進行負載 效能測試,很難通過手工測...

二 自動化測試的那些事

1.什麼是自動化測試?首先理清自動化測試的概念,1 廣義上來講,自動化包括一切通過工具 程式 的方式來代替或輔助手工測試的行為都可以看做自動化,包括效能測試工具 loadrunner jmeter 或自己所寫的一段程式,用於生成1到100個測試資料。所以實際上從廣義上來講 效能測試 介面測試等但凡用...

測試自動化 自動化測試的定義

相關術語 automated testing test tool,automated testing test suite,automated testing test script等.具體參見 http en.wikipedia.org wiki test automation 推薦書籍 1 軟體...