Appium APP UI自动化测试简介与环境搭建

一、 app自动化测试背景

  • 移动终端越来越多,手机应用也越来越多
  • App回归测试用例越来越多,但全量回归很消耗时间
  • 移动端碎片化严重,尤其是Android端(兼容性就是碎片化的体现,有很多厂商、机型、版本)
  • 机型多,自动化测试可减少兼容性测试工作

为了减少这种重复的、大量回归的测试任务,我们迫切需要引进一些自动化测试来协助

二、 appium自动化测试简介

1. 概念
  • appium是一个开源的、免费的,适用于以下自动化测试框架:

    1)原生:native,完全用安卓自带的一些原生组件去开发的,流畅性高

    2)混合移动应用:hybrid,在原生中嵌入了一些h5页面,类似手机中的web页面一样。

  • appium应用webdriver:JSON wire protocol驱动安卓和IOS移动应用

  • 扩展:
    1)H5:相当于手机中的web页面
    2)为什么要嵌入H5:因为最早的Android开发机制是开发一个界面以后需要打成一个APP,上传到各大应用市场,用户才能够下载应用,这种方式需要各大应用市场的审核时间,是比较耗时的,可能导致应用失去时效性。H5页面就像web页面,只需要后台启动就能生效
    3)能否将所有的页面都做成H5?不可以,因为H5的性能比较差,体验性会差一点

2. appium特点
  • 支持多平台:Android、IOS等(一套代码不能同时跑安卓和苹果,因为安卓和苹果的一些控件定位和操作是不一样的,但可以使用同一套框架
  • 支持多语言(Python、Java、Ruby、JS、C#等)
  • 跨平台,可以在MAC/Windows以及Linux桌面系统上运行
    • 对于安卓:可以在MAC、Windows、Linux上搭建自动化测试框架
    • 对于IOS:只能在MAC上搭建(因为要使用底层的一些工具)
  • Appium选择了client/server的设计模式,只要client能够发送HTTP请求给server,那么client使用什么语言来实现都可以(即支持多语言)
  • Appium扩展了webdriver的协议,以前的webdriver API能够直接被继承过来,以前的selenium(webdriver)各种语言的binding都可以拿来直接使用,省去了为每种语言开发一个client的工作量。
3. Appium底层工作原理

在这里插入图片描述

通过写代码在客户端(client)发起一个请求,请求就会到appium server端,appium server就会打一个bootstrap.jar包,并将其打到手机里面,通过bootstrip去转发、分析指令,然后去调用uiautomator底层的一些框架,然后把要调用的一些控件的ID、属性、方法等传进去,uiautomator自身就有一些实现自动化的动作,从而去操作整个APP

在appium中过程如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. Appium的哲学
  • 开源免费
  • 不需要重新编译或者修改应用(不需要对apk源码进行修改,可直接进行自动化测试)
  • 不被一种语言或者框架约束
  • 不重复造轮子
5. 市面上常见的自动化测试框架
  • Monkeyrunner:使用Python实现,更多实现的是对坐标的点击,维护性差
  • Monkeytalk:基于控件定位,只支持js代码(需要往APP里插入一些代理,可能会使APP出问题)
  • Robotium:基于控件定位,只支持Java语言,也支持混合移动应用(需要重签名)

三、 appium自动化测试环境搭建

1. Python安装

之前已经安装过,此处直接进行第二步

2. JDK环境变量配置

1) 下载并安装jdk,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
在这里插入图片描述

2) 环境变量配置
安装完成后我的电脑系统变量新建用户变量,变量名:JAVA_HOME ,变量值:C:\Program Files\Java\jdk1.8.0_261 (java的安装路径)。并在系统变量path中加入%JAVA_HOME%\bin
在这里插入图片描述
在这里插入图片描述

3) 验证JDK环境是否OK
按windows+R,输入cmd,输入java –version,验证如下图即OK
在这里插入图片描述

3. SDK环境变量配置

1) 下载并安装SKD,国内下载地址:http://www.androiddevtools.cn/
2) 环境变量配置
新建系统变量,变量名: ANDROID_HOME,变量值:D:\xuehai\tools\sdk(根据你电脑sdk实际的位置确定)。并在系统变量path中加入%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools
同jdk操作类似,此处不再赘述
3) 验证SDK环境是否OK,在cmd中输入adb,返回adb的一些命令
在这里插入图片描述

4. 下载nodejs 并配置环境变量

1) 下载地址:http://www.nodejs.org/
在这里插入图片描述

下载之后默认安装即可(也可自定义安装路径)
2) 环境配置
将node安装路径D:\Program Files\nodejs(具体根据你安装的路径决定)添加到环境变量Path中
在这里插入图片描述

3) 验证nodejs环境是否OK
cmd中输入node –v或npm –v,如下图:
在这里插入图片描述

5. 下载安装appium

1) 下载地址:appium.io 有对应的downloads地址
2) 安装,直接双击安装包进行安装
3) 安装完成后打开appium,界面如下:
在这里插入图片描述

进入之后appium如下图显示,说明处于监听状态

在这里插入图片描述

  • 注意:

win7的同志们可能会遇到安装好后死活也打不开appium的问题(我就遇到了),这可能是因为兼容性问题,可找到appium.exe,然后右击选择属性,在兼容模式下选择Windows7(亲测有效),然后就可以打开了
在这里插入图片描述

6. 安装其他依赖库

在cmd下输入如下命令:
pip install selenium
pip install Appium-Python-Client

7. 安装模拟器

对于逍遥模拟器,安装之后,在cmd里面输入adb devices,如果有设备,即说明环境OK,如下图
在这里插入图片描述

  • 手机没有连接上的几种可能性:
  1. USB调试没有打开
  2. 对于模拟器来说,关闭后重新使用管理员权限打开可能就OK了
  3. 对于真机,如果提示设备offline,可能是手机没有授权(拔掉数据线重新插上,在弹出的授权页面选择确定)
  4. 对于真机,如果插上没有任何反应,说明真机驱动没有安装(手机和电脑连接需要一个驱动)。驱动安装——下载91助手,会自动安装驱动。
  • 注意:如果出现adb的版本不匹配,可以将F:\sdk\platform-tools目录下的三个文件复制到(覆盖)D:\Program Files\Microvirt\MEmu(逍遥模拟器)中
    在这里插入图片描述
    在这里插入图片描述
8. 验证环境是否OK

1) 打开模拟器,在模拟器上安装最右app
2) 打开appium
3) 打开pycharm,运行以下代码

from appium import webdriver

desired_caps = {}
desired_caps['platformName'] = 'android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'cn.xiaochuankeji.tieba'
desired_caps['appActivity'] = '.ui.base.SplashActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
driver.implicitly_wait(40)
driver.find_element_by_id('cn.xiaochuankeji.tieba:id/iconTabItem')[1].click()

如果最右APP被启动,且appium有打印输出则说明环境OK

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓晓白的软件测试进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值