Python Appium介紹以及移動端自動化測試工具
歡迎加入學習交流QQ群:657341423
1、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統傳送偽隨機的使用者事件流,如按鍵輸入、觸控式螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試,也有日誌輸出。實際上該工具只能做程式做一些壓力測試,由於測試事件和資料都是隨機的,不能自定義,所以有很大的侷限性。
2、MonkeyRunner也是Android SDK提供的測試工具。嚴格意義上來說MonkeyRunner其實是一個Api工具包,比Monkey強大,可以編寫測試指令碼來自定義資料、事件。缺點是指令碼用Python來寫,對測試人員來說要求較高,有比較大的學習成本。
3、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許你對應用程式做更為複雜的測試,甚至是框架層面的。通過Instrumentation你可以模擬按鍵按下、抬起、螢幕點選、滾動等事件。Instrumentation是通過將主程式和測試程式執行在同一個程式來實現這些功能,你可以把Instrumentation看成一個類似Activity或者Service並且不帶介面的元件,在程式執行期間監控你的主程式。缺點是對測試人員來說編寫程式碼能力要求較高,需要對Android相關知識有一定了解,還需要配置AndroidManifest.xml檔案,不能跨多個App。
4、UiAutomator也是Android提供的自動化測試框架,基本上支援所有的Android事件操作,對比Instrumentation它不需要測試人員瞭解程式碼實現細節(可以用UiAutomatorviewer抓去App頁面上的控制元件屬性而不看原始碼)。基於Java,測試程式碼結構簡單、編寫容易、學習成本,一次編譯,所有裝置或模擬器都能執行測試,能跨App(比如:很多App有選擇相簿、開啟相機拍照,這就是跨App測試)。缺點是隻支援SDK 16(Android 4.1)及以上,不支援Hybird App、WebApp。
5、Espresso是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特點是規模更小、更簡潔,API更加精確,編寫測試程式碼簡單,容易快速上手。因為是基於Instrumentation的,所以不能跨App。配合Android Studio來編寫測試的簡單例子
6、Selendroid:也是基於Instrumentation的測試框架,可以測試Native App、Hybird App、Web App,但是網上資料較少,社群活躍度也不大。
7、Robotium也是基於Instrumentation的測試框架,目前國內外用的比較多,資料比較多,社群也比較活躍。缺點是對測試人員來說要有一定的Java基礎,瞭解Android基本元件,不能跨App。
8、Athrun是淘寶出的一個移動測試框架/平臺,同時支援iOS和Android。Android部分也是基於Instrumentation,在Android原有的ActivityInstrumentationTestCase2類基礎上進行了擴充套件,提供一整套物件導向的API。這裡有詳細介紹。
9、Appium是最近比較熱門的框架,社群也很活躍。這個框架應該是是功能最強大的,
它的優點:
開源;
支援Native App、Hybird App、Web App;
支援Android、iOS、Firefox OS;
Server也是跨平臺的,你可以使用Mac OS X、Windows或者Linux;
它的哲理是:
用Appium自動化測試不需要重新編譯App;
支援很多語言來編寫測試指令碼,Java、Javascript、PHP、Python、C#、Ruby等主流語言;
不需要為了自動化測試來重造輪子,因為擴充套件了WebDriver。(WebDriver是測試WebApps的一種簡單、快速的自動化測試框架,所以有Web自動化測試經驗的測試人員可以直接上手);
移動端自動化測試應該是開源的;
它的設計理念:
Client/Server架構,執行的時候Server端會監聽Client端發過來的命令,翻譯這些命令傳送給移動裝置或模擬器,然後移動裝置或模擬器做出響應的反應。正是因為這種架構,所以Client可以使用Appium client libraries多種語言的測試指令碼,而且Server端完全可以部署在伺服器上,甚至雲伺服器。
Session,每個Client連線到Server以後都會有一個Session ID,而且Client傳送命令到Server端都需要這個Session ID,因為這個seesion id代表了你所開啟的瀏覽器或者是移動裝置的模擬器。所以你甚至可以開啟N個Session,同時測試不同的裝置或模擬器。
Desired Capabilities,其實就是一個鍵值對,設定一些測試的相關資訊來告訴Server端,我們需要測試iOS、還是Android,或者換是WebApp等資訊。
Appium Server是Node.js寫的,所以可以直接用NPM來進行安裝。
Appium Clients,Mac OS和Win下提供GUI,不需要裝Node.js,方便測試人員操作。
相關限制:
如果你在Windows使用Appium,你沒法使用預編譯專用於OS X的.app檔案,因為Appium依賴OS X專用的庫來支援iOS測試,所以在Windows平臺你不能測試iOS Apps。這意味著你只能通過在Mac上來執行iOS測試。
總結:
在iOS部分是封裝了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就說Appium同時封裝了UiAutomator和Instrumentation。所以Appium擁有了以上幾大框架的所有優點:跨App,支援Native App、Hybird App、Web App,還支援N種語言來編寫你的測試指令碼。
Appium教程:
http://www.cnblogs.com/nbkhic/p/3803804.html
https://github.com/appium/python-client
相關文章
- appium uiautomator 移動端自動化測試工具APPUI
- [opendx] 基於 appium 的移動端 UI 自動化測試平臺-介紹篇APPUI
- 【自動化測試】移動端測試輔助工具 - adb
- Python自動化測試框架介紹Python框架
- 『與善仁』Appium基礎 — 8、Appium自動化測試框架介紹APP框架
- 自動化測試框架介紹框架
- 移動端 UI 自動化測試框架對比UI框架
- T框架介紹(自動化測試框架)框架
- loadrunner 新手必看《自動化測試工具介紹LR篇》
- 搭建appium+python自動化測試環境APPPython
- UI自動化測試介紹及入門UI
- 自動化測試工具Cucumber的簡單介紹,入門篇!
- python+appium+pytest做app自動化測試PythonAPP
- Appium自動化(15) - 針對 webview 進行自動化測試APPWebView
- 移動裝置的自動化測試工具,如何選型?
- 國產自動化測試工具
- python自動化測試Python
- QAliber - 介紹一款開源的GUI自動化測試工具GUI
- iOS appium UI 自動化測試配置可控 xpathiOSAPPUI
- Jenkins整合appium自動化測試(Windows篇)JenkinsAPPWindows
- iOS自動化測試驅動工具探索iOS
- 基於python+appium+yaml安卓UI自動化測試分享PythonAPPYAML安卓UI
- Appium+Python實現iOS自動化測試~環境搭建APPPythoniOS
- 【效能測試】移動測試md知識總結第1篇:移動端測試課程介紹【附程式碼文件】
- 自動化測試系列 —— UI自動化測試UI
- 2022 年 11 種最佳移動自動化測試工具
- iOS自動化測試工具Appium在mac上安裝和使用教程iOSAPPMac
- python 介面自動化測試Python
- Appium 做 flutter 自動化測試實踐&採坑APPFlutter
- Appium自動化測試之常用的adb命令APP
- 自動化運維工具Ansible介紹運維
- bats-Bash自動化測試工具BAT
- 微軟自動化測試工具palywright微軟
- Linux GUI自動化測試工具LinuxGUI
- python自動化測試工具selenium使用指南Python
- 介面自動化測試錄製工具,讓python selenium自動化測試指令碼開發更加方便Python指令碼
- appium自動化APP
- 【自動化測試入門】自動化測試思維