快速开始
準(zhǔn)備
1、被測試的app應(yīng)用(apk包)
2、運行appium server 就是appiumdesktop?
啟動后,點擊Adcanced
勾選Allow Session Override
然后點擊start Server 啟動appium server
3、啟動被測app的運行環(huán)境?
真實設(shè)備或者模擬器
4、把apk包安裝到運行環(huán)境(3中)
虛擬器直接拖拽
? ? ? ?真機可以使用命令安裝或者直接放到手機中安裝
下面寫腳本例如開發(fā)者頭條中的登錄注冊功能
腳本略過
查看包名稱用aapt dump badging XXX.apk > d:\a.txt && d:\\a.txt
選擇APP界面元素
查看工具
web自動化開發(fā)的時候,要找到元素,我們是根據(jù)瀏覽器開發(fā)者工具(F12)來查看元素的特性,根據(jù)這些特性,比如:id,classname,tagname,或者CSS和xpath選擇到元素。
而安卓查看界面元素,最常用的是Android SDK中的uiautomator,它在.\android\sdk\tools\bin\下面
手機和電腦連接之后,打開uiautomator.bat就能查看手機頁面中元素
跟web的不同點:
不能自動刷新
鼠標(biāo)移動到某個元素上,某個元素就有虛線紅框子,同時右邊會高亮顯示當(dāng)前的元素,確定要查看元素,就單擊一下,虛線變實線
還有一種查看元素的方法,用appiumserver中的inspect,這個工具可以查看元素是否能定位到,便于調(diào)試相當(dāng)于web頁面中的ctrl+F
元素屬性
index:
text:
resource-id:
class:
package:
contet-desc:用來描述元素的用途和特性
bounds:界面中元素的位置,左上角和右下角的坐標(biāo)
選擇元素的代碼
find_element_by_XXX:查找符合條件的第一個元素
find_elements_by_xxx:查找符合條件的所有元素
選擇元素的方式
1、ID(就是resource-id)
2、classname
3、XPATH
web自動化的時候,最靈活的定位方式就是CSS和xpath了,經(jīng)常用他們來定位一些比較難定位到的元素,例如沒有ID,沒有唯一name的屬性,甚至幾乎沒有什么屬性,因為css和xpath可以根據(jù)上層節(jié)點的相對位置來定位
在appium中,不支持使用css可以使用xpath來定位元素
寫法如下:
driver.find_element_by_xpath('//eles//ele2[@attr="a1"]')
特別注意的是,以前做web自動化的時候xpath中每個節(jié)點名是html的tagname,在appium中,每個節(jié)點名對應(yīng)的是class屬性的內(nèi)容
?
注意:
@1:appium不支持by_name,可以使用find_element_by_AndroidUiAutomator("text("我的")")
@2:不支持by_cssselector,可以使用by_Xpath
如何查看元素是否唯一:把xml導(dǎo)出到文件中,uiautomator左上角第四個圖標(biāo)
使用uiautomator定位元素
javacode = "new UiSelector().recourceId("android.com.XX")"? #java代碼
driver.find_element_byandroidUiautomator(javacode)
具體參考Android UI 自動化測試之UiSelector:https://blog.csdn.net/qq_33544833/article/details/77370329
操作元素
webelement常用的調(diào)用方法是send_keys和click方法
1、tap
tap和click類似,都是點擊界面,最大的區(qū)別,tap是針對坐標(biāo)而不是針對找到的元素。有時候,我們難易定位怨毒的時候可以使用這個tap方法
寫法如下:
driver.tap([(650,1250)],300) 兩個參數(shù),第一個表示點擊的坐標(biāo),第二個表示停留的時間毫秒
2、swipe
滑動
寫法如下:
driver.swipe(50,500,50,1230,1000) 5個參數(shù)分別表示,起始位置的X坐標(biāo)、起始位置的Y坐標(biāo)、結(jié)束位置的X坐標(biāo)、結(jié)束位置的Y坐標(biāo),滑動所消耗的時間,短表示滑動的快,時間長表示滑動的慢
3、通知查看
系統(tǒng)通知:比如短信通知、微信通知、自己應(yīng)用對應(yīng)的通知,安卓打開通知的方式,可以是從屏幕頂端下滑來查看通知。其實appium提供了可以直接打開通知欄的方法
寫法如下:
driver.open_notifications()
4、按鍵操作
press_keycode(數(shù)字)
比如,返回鍵。keycode_back,對應(yīng)數(shù)字4
driver.press_keycode(4)
home鍵盤,數(shù)字3
查看按鍵對應(yīng)的數(shù)值,網(wǎng)址:https://developer.android.google.cn/reference/android/view/keyEvent.html
使用真實設(shè)備進行自動化
有時候要坐不同手機的兼容性測試,必須在真實的手機設(shè)備上進行測試
有的應(yīng)用在模擬器上,種種原因,運行不了。比如微信。
1、USB線連接手機
2、打開開發(fā)者選項中的USB調(diào)試模式
3、電腦的命令窗口中輸入adb devices -l
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiao-qing/p/9448663.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: 基于继承类的属性模版中无法绑定的原因和解
- 下一篇: SqlServer高级特性--存储过程