博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速开始
阅读量:5824 次
发布时间:2019-06-18

本文共 2326 字,大约阅读时间需要 7 分钟。

准备

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

 

转载于:https://www.cnblogs.com/xiao-qing/p/9448663.html

你可能感兴趣的文章
Maven入门实战笔记-11节[6]
查看>>
Local declaration of 'content' hides instance variable
查看>>
ASP.NET中 HTML标签总结及使用
查看>>
Linux下日志系统的设计
查看>>
爬虫IP被禁的简单解决方法——切换UserAgent
查看>>
php生成word,并下载
查看>>
紫书 习题8-11 UVa 1615 (区间选点问题)
查看>>
asp.net mvc学习(Vs技巧与Httpcontext)
查看>>
float数据在内存中是怎么存储的
查看>>
开发经验和习惯
查看>>
dedecms 修改标题长度可以修改数据库
查看>>
Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)
查看>>
MySQL案列之主从复制出错问题以及pt-slave-restart工具的使用
查看>>
linux 查看剩余内存数
查看>>
测试人员容易遗漏的隐藏缺陷
查看>>
maven+SpringMVC搭建RESTful后端服务框架
查看>>
[BalkanOI2016]Cruise
查看>>
一本书的摘录
查看>>
重排序(转载)
查看>>
python+selenium之字符串切割操作
查看>>