標籤:
cryanimal QQ:164166060 本文簡要介紹了appnium自動化架構的架構、載入流程、支援語言、相關配置,以及元素定位工具等。 官方網站:
http://appium.io
Appnium是由SauceLabs支援,一家業界領先的測試產品公司, 有成熟的企業測試解決方案
Appium支援的平台
- Android上使用了instrumentation和uiautomator兩套技術
- iOS使用uiautomation
- 同時還支援firefox, 並可擴充其他平台
Appium的優點
- 跨架構,native hybrid webview
- 跨裝置,android iosfirefoxos
- 跨語言,java python ruby nodejsphp
- 跨app, 可以在多個app之間互動
- 不依賴原始碼
- 不限制測試架構和平台
Appium在Android上的架構
Appium在iOS上的架構
Appium的安裝
詳見:http://blog.csdn.net/kaka1121/article/details/51698700
Appium的啟動,上文中也有詳解
通過命令:Appium–help 可以看到一些選擇性參數
預設開啟4723連接埠接受webdriver請求
預設開啟4724用於和android通訊
視頻示範:http://v.youku.com/v_show/id_XNjM0ODIxNTUy.html
Appium自動化所需工具及android開發環境安裝
依賴工具包括uiautomatorviewer、abd、DDMS等
詳見:http://blog.csdn.net/kaka1121/article/details/51698745
Appium的載入流程
Appium支援主流語言
Appium webdriver的capabilities配置
Capabilities是由用戶端發送給Appium伺服器端的用來告訴伺服器去啟動哪種我們想要的會話的一套索引值對集合。當中也有一些索引值對是用來在自動化的過程中修改伺服器端的行為方式。
必填的項目:
deviceName :我無論填寫什麼值,在我機器上都可以跑通測試,但是這項又是必填。我用得Appium版本是V1.2.2。
app :如果填寫了,appium會在目標機器上安裝測試目標app,如果沒有的話,會根據appActivity和appPackage去目標機器尋找目標app
appPackage : 可以通過sdk內建工具aapt獲得
appActivity:同樣可以通過以上工具獲得。
有一點需要注意的是,值可以附加packageName,也可以不附加。
也就是說以下兩種填寫方式都是對的“.NotesList"和”com.example.android.notepad.NotesList"
通用配置:
android only:
IOS ONLY
配置原文參見:http://blog.sina.com.cn/s/blog_700be1c00102vgha.html
java Demo樣本
詳細情況,參見我的另一篇博文
元素定位
- Android和iOS的原生控制項以及webview控制項映射為特定的命名, 比如把所有平台的按鈕映射為button元素
- 把當前的結構樹映射為html文檔
- 通過xpath來選擇元素
三種定位方式
- Name: id,label text
- Tag_name: component type
- Xpath
查看元素的屬性以及xpath,使用uiautomatorview
元素互動
Webdriver已經支援
Mobile相關:
附錄:業界top架構綜合對比
Appnium移動自動化架構初探