目录

1.Appium设计

2.Appium环境安装

1.JDK安装配置

2.SDK安装

3.Appium desktop安装(appium server+appium inspector工具)

3.DesiredCapability(启动参数)设置

4.Appium定位方法(appium中无css selector定位)

1.id定位

2.accessibility_id定位

3.class定位

4.xpath定位

5.AndroidUIAutomator定位

5.元素的常用操作

6.TouchAction类

7.显式等待与隐式等待

1.WebDriverWait显示等待

2.implicitlyWait隐式等待

8.toast定位


1.Appium设计

Client/Server模式,客户端通过WebDriver json wire协议与服务通信,server端是由nodejs开发的http服务,可安装在任何地方,包括远程服务器;appium通过appium-xcuitest-driver来测试iOS设备(需要安装facebook的WDA(webdriver agent)来驱动测试).

WebDriver json wire协议:

webdriver是基于http协议的,第一次连接appium服务的时候会建立一个session会话,并通过post请求发送一个json告知服务端相关的测试信息.

客户端会传递 Desired Capabilities 给 Appium Server 创建一个会话,Appium Server 会调用 appium-uiautomator2-driver 同时将 UiAutomator2 Server 的两个 apk 安装到测试设备上.

2.Appium环境安装

1.JDK安装配置

1).安装JDK(1.8版本)

2).配置环境变量

a).JAVA_HOME        jdk的安装路径;

b).classpath        .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

c).path        %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

3).javac -version检查是否安装成功.

2.SDK安装

1).下载SDK后解压

2).配置Android SDK环境变量

a).ANDROID_HOME        SDK的安装路径

b).path        %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

3).adb回车检查是否安装成功.

3.Appium desktop安装(appium server+appium inspector工具)

1).下载对应系统的安装包 https://github.com/appium/appium-desktop/releases

2).如果不需要appium inspector,可直接通过npm安装appium

npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm install -g appium

3).运行appium        appium

3.ADB命令及DesiredCapability(启动参数)设置

        adb shell getprop ro.build.version.release  获取终端安卓系统版本

        adb shell pm list packages  获取包名

appPackage        app包名

appActivity        activity名

查看appPackage和appActivity名:

adb logcat | grep ActivityManager

adb logcat | grep -i displayed

adb shell dumpsys activity activities | grep mFocusedActivity

automationName        android默认使用uiautomator2,iOS默认使用XCUITest

noRest/fullReset        是否重置环境

unicodeKeyBoard/resetKeyBoard        输入中文/测试完成后重置输入法

dontStopAppOnReset        首次启动后不停止app(调试脚本时使用)

skipDeviceInitialization        跳过安装及权限设置等操作

4.Appium定位方法(appium中无css selector定位)

1.id定位

By.id("resoure-id属性值")

2.accessibility_id定位

By.AccessibilityId("content-desc属性值")

3.class定位

By.className("class属性值")

4.xpath定位

相对路径定位:        "//*[@属性名='属性值']"----->"//*[@text='text的属性值']"

多属性精准定位:      "//*[@text='text的属性值' and @resource-id='id属性值']"

5.AndroidUIAutomator定位

       androidDriver.findElementsByAndroidUIAutomator("new UiSelector().text("河南")");

实现滚动查找元素:"new UiScrollable(

new UiSelector().scrollable(true).instance(0)

).scrollIntoView(

new UiSelector().text('待查找的文本').instance(0)

)"

5.元素的常用操作

点击方法        element.click()

清除方法        element.clear()

输入方法        element.senKeys("text")

设置元素的值 element.setValue("text")

获取属性值     element.getAttribute("属性名")

是否可见        element.displayed()        返回true/false

是否可用        element.enabled()          返回true/false

是否被选中     element.isS elected()     返回true/false

获取元素文本 element.text

获取元素坐标 element.location

获取元素尺寸 element.size

6.TouchAction类

TouchAction可用事件

press        手势按下

release        手势抬起,释放

moveTo        移动

tap        点击,轻敲

wait        等待

longPress        长按

cancel        取消

perform        执行

7.显式等待与隐式等待

页面加载流程:

title出现-->

dom树出现(presence还不完整)-->

css出现(可见visibility)-->

js出现,js特效执行(可点击clickable)

html是自上而下加载,js文件加载会阻塞html内容的加载,有些使用js异步加载的方式来完成js加载 ;css样式表下载完成后会跟之前的样式表一起进行解析,会对之前的元素重新渲染.

1.WebDriverWait显示等待

显示等待针对当个元素控件,有些等待较长时间的元素用显示等待,如果用隐式等待,

比如等待20s,则全局的元素在定位报错时都要等待20s才会抛出异常,所以用显示等待.

显示等待需要与ExpectedConditions条件连用

wait=new WebDriverWait(driver,10,500)

wait.until(ExpectedConditions.visibilityOfElementLocated(by)).click();

2.implicitlyWait隐式等待

尽量脚本中都加上,时间设置3~6s,为所有查找元素操作设置缓冲.

driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

8.toast定位

appium使用uiautomator底层机制来分析抓取toast,并把toast放到控件树中,但toast本身并不属于控件.

toast必须使用xpath定位

//*[@class='android.widget.Toast']

Appium实现app自动化测试相关推荐

  1. 使用appium进行app自动化测试时遇到AppActivity设置正确但报Connect Appium Server Fail.A new session could not be created

    appium 部分服务关键字如下: PlatformName=Android PlatformVersion=4.4.4 AppPackage=com.xxxxx.xxxx AppActivity=. ...

  2. Python +Appium 实现app自动化测试

    Python +Appium 实现app自动化测试 一.Appium简介 Appium是一款开源工具,用于自动化iOS.Android和Windows桌面平台上的本地.移动web和混合应用程序.原生应 ...

  3. 基于Appium的APP自动化测试基础--美团APP的实例

    前段时间用一种流行语言,一个主流工具,一个实用框架,写了一个美团app自动化测试的Demo,利用appium+python+unittest+uiautomatorviewer,编写了测试用例,并通过 ...

  4. python 手游自动化测试_Python+Appium实现APP自动化测试

    一.环境准备 1.脚本语言:Python3.x IDE:安装Pycharm 2.安装Java JDK .Android SDK 3.adb环境,path添加E:\Software\Android_SD ...

  5. python+Appium 实现app自动化测试详细讲解

    一.环境准备        1.脚本语言:python   安装:pycharm         2.安装 Java jdk  .Android sdk 3.安装appium 二.首先,双击电脑中已经 ...

  6. python手机自动化测试脚本语言_Python+Appium实现APP自动化测试

    一.环境准备 1.脚本语言:Python3.x IDE:安装Pycharm 2.安装Java JDK .Android SDK 3.adb环境,path添加E:\Software\Android_SD ...

  7. Python+Appium实现APP自动化测试

    一.环境准备 1.脚本语言:Python3.x    IDE:安装Pycharm 2.安装Java JDK .Android SDK 3.adb环境,path添加E:\Software\Android ...

  8. python app自动化测试框架_appium+python,app自动化测试框架

    基于appium的app自动化测试框架 基于appium框架的app自动化测试 App自动化测试主要难点在于环境的搭建,appium完全是基于selenium进行的扩展,所以app测试框架也是基于we ...

  9. 【Python+Appium】开展自动化测试(十二)通过坐标定位元素

             目录 前言 1,通过绝对坐标定位(不推荐) 2,通过相对坐标定位(推荐) 写在最后 前言 在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能 ...

最新文章

  1. BigChainDB
  2. 趣学python3(28)-pygame-蛇身随机运动(可gameover )
  3. 《软件工程》实验报告——软件设计
  4. 学计算机的事物多线程看不懂,看不懂CPU?学会看CPU只需明白这5点,如此简单!...
  5. Android之解决TabLayout里面每个Tab项的间距和修改指示线的长度(非反射)和修改选中字体大小
  6. 采用计算机发布调度命令时 必须严格遵守,实用文档其他之铁路调度命令格式图片调度命令规范格式...
  7. WAP2.0(XHTML MP)基础介绍
  8. Hibernate向MySQL插入中文数据--乱码解决
  9. Http请求URL长度限制
  10. svnserver配置文件详解
  11. win10c语言关机,win10电脑自动关机命令
  12. 如何得到给定序列的互补序列以及反向互补序列
  13. Django 编写您的第一个Django应用
  14. BMP文件二进制格式详解
  15. 电脑Win10 企业版如何激活
  16. Linux琐碎知识汇总
  17. 【论文读后感】:A simple yet effective baseline for 3d human pose estimation
  18. GMS快速高鲁棒性特征学习
  19. MP9486开关电源芯片
  20. 从键盘输入两个数作为除数和被除数。要求程序中捕获NumberFormatException 异常和ArithmeticException 异常, 而且无论在哪种情况下,“程序执行结束”这句话都会在控制

热门文章

  1. FSC-COC供应链管理体系认证、认证培训标准、审核清单、认证公司
  2. 莫比乌斯函数摘录笔记
  3. C#结合OpenGL绘图之Tao库
  4. 火星坐标-地球坐标的由来 以及转换方式:
  5. 语音助手APP测试点
  6. 省际漫游价格调整从全球通商旅卡开始
  7. ASP初学者的一些基本代码
  8. 如何才能学好zbrush,成为3D建模大神,腾讯角色设计大佬给出的秘典
  9. 凸透镜成像规律的证明
  10. Flv.js全面解析