快速開始
準備
1、被測試的app應用(apk包)
2、運行appium server 就是appiumdesktop
啟動後,點擊Adcanced
勾選Allow Session Override
然後點擊start Server 啟動appium server
3、啟動被測app的運行環境
真實設備或者模擬器
4、把apk包安裝到運行環境(3中)
虛擬器直接拖拽
真機可以使用命令安裝或者直接放到手機中安裝
下面寫腳本例如開發者頭條中的登錄註冊功能
腳本略過
查看包名稱用aapt dump badging XXX.apk > d:\a.txt && d:\\a.txt
選擇APP界面元素
查看工具
web自動化開發的時候,要找到元素,我們是根據瀏覽器開發者工具(F12)來查看元素的特性,根據這些特性,比如:id,classname,tagname,或者CSS和xpath選擇到元素。
而安卓查看界面元素,最常用的是Android SDK中的uiautomator,它在.\android\sdk\tools\bin\下面
手機和電腦連接之後,打開uiautomator.bat就能查看手機頁面中元素
跟web的不同點:
不能自動刷新
鼠標移動到某個元素上,某個元素就有虛線紅框子,同時右邊會高亮顯示當前的元素,確定要查看元素,就單擊一下,虛線變實線
還有一種查看元素的方法,用appiumserver中的inspect,這個工具可以查看元素是否能定位到,便於調試相當於web頁面中的ctrl+F
元素屬性
index:
text:
resource-id:
class:
package:
contet-desc:用來描述元素的用途和特性
bounds:界面中元素的位置,左上角和右下角的坐標
選擇元素的代碼
find_element_by_XXX:查找符合條件的第一個元素
find_elements_by_xxx:查找符合條件的所有元素
選擇元素的方式
1、ID(就是resource-id)
2、classname
3、XPATH
web自動化的時候,最靈活的定位方式就是CSS和xpath了,經常用他們來定位一些比較難定位到的元素,例如沒有ID,沒有唯一name的屬性,甚至幾乎沒有什麽屬性,因為css和xpath可以根據上層節點的相對位置來定位
在appium中,不支持使用css可以使用xpath來定位元素
寫法如下:
driver.find_element_by_xpath(‘//eles//ele2[@attr="a1"]‘)
特別註意的是,以前做web自動化的時候xpath中每個節點名是html的tagname,在appium中,每個節點名對應的是class屬性的內容
註意:
@1:appium不支持by_name,可以使用find_element_by_AndroidUiAutomator("text("我的")")
@2:不支持by_cssselector,可以使用by_Xpath
如何查看元素是否唯一:把xml導出到文件中,uiautomator左上角第四個圖標
操作元素
webelement常用的調用方法是send_keys和click方法
1、tap
tap和click類似,都是點擊界面,最大的區別,tap是針對坐標而不是針對找到的元素。有時候,我們難易定位怨毒的時候可以使用這個tap方法
寫法如下:
driver.tap([(650,1250)],300) 兩個參數,第一個表示點擊的坐標,第二個表示停留的時間毫秒
2、swipe
滑動
寫法如下:
driver.swipe(50,500,50,1230,1000) 5個參數分別表示,起始位置的X坐標、起始位置的Y坐標、結束位置的X坐標、結束位置的Y坐標,滑動所消耗的時間,短表示滑動的快,時間長表示滑動的慢
3、通知查看
系統通知:比如短信通知、微信通知、自己應用對應的通知,安卓打開通知的方式,可以是從屏幕頂端下滑來查看通知。其實appium提供了可以直接打開通知欄的方法
寫法如下:
driver.open_notifications()
4、按鍵操作
press_keycode(數字)
比如,返回鍵。keycode_back,對應數字4
driver.press_keycode(4)
home鍵盤,數字3
查看按鍵對應的數值,網址:https://developer.android.google.cn/reference/android/view/keyEvent.html
使用真實設備進行自動化
有時候要坐不同手機的兼容性測試,必須在真實的手機設備上進行測試
有的應用在模擬器上,種種原因,運行不了。比如微信。
1、USB線連接手機
2、打開開發者選項中的USB調試模式
3、電腦的命令窗口中輸入adb devices -l
快速開始