作者:cryanimal QQ:164166060
本文簡要介紹了appnium自動化框架的架構、加載流程、支持語言、相關配置,以及元素定位工具等。
官方網站:
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相關:
- 拖動
- 划動
- 長按