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