1. 程式人生 > >快速開始

快速開始

web自動化 不能 tool send 通知 界面 如何 keycode 使用命令

準備

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

快速開始