天天看點

Appium 實踐 | 讓測試更快更穩更可靠:片狀測試建立 Session 片狀

本文為霍格沃茲測試學院對 Appium Pro 的系列原創翻譯文章之一,旨在普及最先進的測試開發技術。進階學習,文末加群。

使用 Appium 時,會遇到又慢又不穩定的情況。Appium 使用的底層工具可能會限速,在功能測試中,許多環境問題也會導緻自動化測試不穩定。其實有一些方法可以避開這些問題。本篇文章是系列中的一篇,後面也會有相應文章讨論穩定性和速度。

建立 Session 片狀

片狀其實就是不可能靠的意思--如果在本地測試成功,在未來它可能運作失敗,這是不是不可靠?這個問題很複雜,Appium 确實會出現不穩定問題,但你需要找出問題所在!

  • 你是否了解 App 或者裝置的速度,App 穩定性,螢幕大小,或者動态内容?是否毫無根據的假設這些值;
  • App 本身就不穩定(也許是 App 自身存在的問題或者人為,人工操作是否也會出現這個問題);

    裝置記憶體和處理器計算不足;

  • 網絡問題(用 HTTP 發送到後端可能失敗);
  • 裝置問題(裝置會出現各種奇怪的問題);

如果你說,上面這些情況都沒問題,問題肯定就出在 Appium 上!其實,Appium 隻是衆多技術的一環,下面這個圖說明了 iOS 測試的底層技術棧:

Appium 實踐 | 讓測試更快更穩更可靠:片狀測試建立 Session 片狀

看到沒,Appium 并不是一個龐大的怪獸,相反,它使用了許多底層工具,問題可能出在這些底層工具上(比如 XCUITest 和 UiAutomator2 )。希望你能調查清楚問題所在。某種問題并不孤立,而是在整個建構中随機出現。當你檢查日志時,你會發現這種片狀現象總是在一天的某個時間發生。這是非常重要資訊,這可能有一個計時代碼正在執行!詢問其他團隊,他們可能知道問題所在。

後面的文章會詳細讨論這些問題,現在我給出一些在 CI 上的建議:

  1. 将測試添加到建構前,檢測是否有片狀問題。多次運作它 (可能 100 次 ?) 以確定可靠,如果 100% 通過,很好,merger 這個commit 到 master 分支吧。
  2. 如果測試有一些沒有通過,說明存在不可靠或者片狀問題。花點時間調查原因,也許僅僅因為定位或者等待問題。Appium日志和一步一步的截圖很重要。
  3. 當發現問題時,如果能解決,就解決它。如果解決不了,可以向 Appium 或者 Apple提供錯誤報告,你還可以丢棄這個測試或者注釋掉(如果有時間,也可以手動測試)。
  4. 如果您在建構中了保留測試并允許建構在失敗時重試測試,您必須跟蹤重試次數的統計資料,并設定一些可靠性門檻值,超過該門檻值再進行調查研究。如果測試随着時間的推移,片狀問題越來越多,你的應用程式可能有問題。

Appium 測試是功能測試,不是單元測試。單元測試與其他任何東西都是隔離的,而功能測試則生活在真實的世界中,要混亂得多。功能測試不可能覆寫所有代碼問題,應該隻考慮關鍵的使用者操作,并通過少量測試捕獲 bug,從 bug 中提取有價值的資訊。

與此同時,要確定那些少量的測可能可靠。通過強化一些測試,你将了解關于應用程式和整個環境的很多資訊。這樣就能從一開始就把學到的東西投入到新的測試中去,而不是在以後的道路上一遍又一遍的解決同樣的問題。

更多技術文章分享及測試資料點此擷取

繼續閱讀