APP自动化基础之环境准备
APP自动化测试所需要的环境
以下是进行app自动化测试前需要准备的环境清单:
- 手机
- appnium client
- appnium server
- jdk
- android sdk
APP自动化测试环境与web自动化测试环境的比较
web自动化测试中所需要准备的环境如下:
- selenium client。也就是python中写selenium代码所需的开发环境
- selenium server。也就是webserver,根据浏览器不同又分ChromeDriver、FirefoxDriver、IEDriver等
- 浏览器。又分为谷歌浏览器、火狐浏览器、IE浏览器等
APP自动化测试所需要准备的环境如下:
- appnium client。也就是python中写appnium代码所需的开发环境。与selenium client相对应
- appnium server。由于appnium同时支持ios和Android,所以只根据工作方式的不同分为桌面程序和命令行程序。与selenium server相对应
- 手机。分为真机和模拟器,根据设备的不同又分为安卓和苹果。与浏览器相对应
环境准备
手机
真机
真机也就是真实的手机,在测试时需要开启开发者模式。
安卓端的开发者模式一般在关于手机-Android版本中点击多次,弹出一个Android版本的画面即可开启开发者模式:
而ios上开启开发者模式就比较麻烦些,不仅要在手机端进行设置,还需要一个开发者账号,而账号是需要每年交一笔钱的。
模拟器
现在市场上的手机模拟器一般是用来打手游的居多。比较出名的模拟器有以下几款:
- 雷电
- 夜神
- 逍遥
- genymotion(国外的)
这里一般推荐雷电模拟器,另外两款模拟器在程序目录下自带了自己的adb,需要手动把Android sdk中的adb替换上去,不然在adb上执行adb devices时会出现多个设备;而雷电模拟器在执行adb devices时只会出现一个设备。
在雷电模拟器安装好之后,需要查看设置是否正确(一般保持默认的就行):
两者比较
真机与模拟器相比较,更贴近真实的环境,测试效果也是最完美的。因为模拟器毕竟在电脑上面运行的程序,所以本质上还是用着电脑端CPU的wintel的架构(分为x86和x64);而手机的架构与电脑架构完全不同,它的CPU是分为ARM、联发科等架构的,所以模拟器并不能完全代替手机进行测试,但如果公司没有真机资源的条件下,只能使用模拟器进行测试。
appnium client
appnium client的安装是所有环境准备中最简单的,只需要执行:pip install Appium-Python-Client即可。
appnium server
appnium的服务端根据工作方式不同又分为桌面程序及命令行工具。这里一般推荐使用桌面程序,因为它的功能比命令行工具要丰富些。
桌面程序
下载
进入appnium官网提供的github下载地址:
https://github.com/appium/appium/
由于高版本容易出现问题,所以这里推荐使用1.13版本:
https://github.com/appium/appium-desktop/releases/tag/v1.13.0
安装
安装时需要注意以下两点:
- 需选择仅为自己安装。不然到时执行时可能会出现权限相关问题:
- 没得指定安装路径。所以安装完成后需要记住安装路径。一般放在用户目录下的AppData\Local\Programs\Appium下。
基本设置
打开appium,可进行一些基本的设置,一般只需要设置红色框的这4个配置就ok了:
运行
点击Start Server,弹出如下信息,即证明安装成功:
命令行工具
appnium server的命令行程序由于是用JavaScript写的,所以需要安装js的环境:Nodejs
Nodejs安装
进入官网:http://nodejs.cn/
如果安装的是msi,则安装完毕后会自动导入nodejs的路径到Path变量中:
如果是选择其他的进行安装而没有自动导入环境变量,需要手动设置。
环境变量没问题之后,打开cmd输入node --version,弹出版本号则表明安装成功:
如果提示不是内部命令,则可尝试重启cmd再执行。
appium命令行安装
执行:npm install -g appium即可进行安装:
端口占用
appium命令行端口号默认为4723,而appium桌面程序默认端口也为4723,所以为了两个端口号不冲突,需更改下命令行端口号或桌面程序端口号。命令行端口号更改命令为:appium -p 指定端口号
JDK
为什么要装JDK呢?因为安卓系统就是JAVA写的,app除了web应用之外,也一般都是java写的,需要JAVA的环境运行。
由于jdk官网下载较慢且很麻烦(需要登录),所以这里提供华为的jdk镜像下载地址:
https://repo.huaweicloud.com/java/jdk/
jdk安装这里就不再详细赘述了。需注意以下两点即可:
- 必须安装1.8以上的64位的版本,不然后面测试可能会出错:
- 配置环境变量。JAVA_HOME与Path。
android SDK
下载
android SDK官方下载地址:
https://developer.android.google.cn/studio/
环境变量设置
-
ANDROID_HOME
1.在系统变量新建:ANDROID_HOME,变量值为sdk所在路径: -
Path
Path添加两个变量:%ANDROID_HOME%\tools和%ANDROID_HOME%\platform-tools:
配置好环境变量后,在cmd中执行:adb,出现如下信息即安装成功:
查找手机
打开模拟器或连接手机
这里我们打开雷电模拟器:
adb devices
在cmd中输入adb devices,检测到手机设备:
第一个demo
从appium包中导入webdriver,然后通过webdriver的Remote来初始化设备。从这里我们可以看出appium的初始化手机设备与selenium初始化浏览器是相似的,这是因为appium其实是继承selenium的基本类,然后在上面拓展自己的代码。
from appium import webdriver
driver = webdriver.Remote()
接下来我们看下Remote类中要传的参数:
def __init__(self, command_executor: str = 'http://127.0.0.1:4444/wd/hub',
desired_capabilities: Optional[Dict] = None, browser_profile: str = None, proxy: str = None, keep_alive: bool = True, direct_connection: bool = False):
super().__init__(
AppiumConnection(command_executor, keep_alive=keep_alive),
desired_capabilities,
browser_profile,
proxy
)
这里主要要传两个参数:command_executor及desired_capabilities。command_executor是设置appium server的url,注意要与appium server端的IP和port相对应:
desired_capabilities是一个列表,传入测试所需要的一些环境参数。以下是最主要的几个参数:
-
platformName:平台名称,是Android还是Ios
-
deviceName:设备名称,与adb devices中的名称相对应
-
app:app所在路径。这里可以填写本地路径,也可填写网上的url路径。
执行前得先打开appium server及模拟器或连接真机;执行代码后会在appium server端打印日志信息。如下即为执行成功:
在模拟器上也打开了应用:
本文地址:https://blog.csdn.net/weixin_44885027/article/details/112761628