• 快速开始


    准备

    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,它在.androidsdk oolsin下面

    手机和电脑连接之后,打开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

  • 相关阅读:
    ionic app打包和签名
    js时间戳与日期格式的相互转换
    js获取选中日期的当周的周一和周日
    Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap
    CSS媒体查询 @media
    [ng:areq] Argument 'XXXXCtrl' is not a function, got undefined
    plsql如何导出查询结果
    angularjs的$http请求方式
    JQuery请求数据的方式
    后台返回xml格式转json
  • 原文地址:https://www.cnblogs.com/xiao-qing/p/9448663.html
Copyright © 2020-2023  润新知