快速开始

准备

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左上角第四个图标

使用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常用的调用方法是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

 

posted @ 2018-08-09 14:20  小青~  阅读(243)  评论(0编辑  收藏  举报