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