欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

APP自动化基础之环境准备

程序员文章站 2022-06-15 09:36:31
APP自动化测试所需要的环境以下是进行app自动化测试前需要准备的环境清单:手机appnium clientappnium serverjdkandroid sdkAPP自动化测试环境与web自动化测试环境的比较web自动化测试中所需要准备的环境如下:selenium client。也就是python中写selenium代码所需的开发环境selenium server。也就是webserver,根据浏览器不同又分ChromeDriver、FirefoxDriver、IEDriver...

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版本的画面即可开启开发者模式:
APP自动化基础之环境准备
APP自动化基础之环境准备
而ios上开启开发者模式就比较麻烦些,不仅要在手机端进行设置,还需要一个开发者账号,而账号是需要每年交一笔钱的。

模拟器

现在市场上的手机模拟器一般是用来打手游的居多。比较出名的模拟器有以下几款:

  • 雷电
  • 夜神
  • 逍遥
  • genymotion(国外的)
    这里一般推荐雷电模拟器,另外两款模拟器在程序目录下自带了自己的adb,需要手动把Android sdk中的adb替换上去,不然在adb上执行adb devices时会出现多个设备;而雷电模拟器在执行adb devices时只会出现一个设备。
    在雷电模拟器安装好之后,需要查看设置是否正确(一般保持默认的就行):
    APP自动化基础之环境准备

两者比较

真机与模拟器相比较,更贴近真实的环境,测试效果也是最完美的。因为模拟器毕竟在电脑上面运行的程序,所以本质上还是用着电脑端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/
APP自动化基础之环境准备
由于高版本容易出现问题,所以这里推荐使用1.13版本:
https://github.com/appium/appium-desktop/releases/tag/v1.13.0

安装

安装时需要注意以下两点:

  • 需选择仅为自己安装。不然到时执行时可能会出现权限相关问题:APP自动化基础之环境准备
  • 没得指定安装路径。所以安装完成后需要记住安装路径。一般放在用户目录下的AppData\Local\Programs\Appium下。

基本设置

打开appium,可进行一些基本的设置,一般只需要设置红色框的这4个配置就ok了:
APP自动化基础之环境准备

运行

点击Start Server,弹出如下信息,即证明安装成功:
APP自动化基础之环境准备

命令行工具

appnium server的命令行程序由于是用JavaScript写的,所以需要安装js的环境:Nodejs

Nodejs安装

进入官网:http://nodejs.cn/
APP自动化基础之环境准备
如果安装的是msi,则安装完毕后会自动导入nodejs的路径到Path变量中:
APP自动化基础之环境准备
如果是选择其他的进行安装而没有自动导入环境变量,需要手动设置。
环境变量没问题之后,打开cmd输入node --version,弹出版本号则表明安装成功:
APP自动化基础之环境准备
如果提示不是内部命令,则可尝试重启cmd再执行。

appium命令行安装

执行:npm install -g appium即可进行安装:
APP自动化基础之环境准备

端口占用

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位的版本,不然后面测试可能会出错:
    APP自动化基础之环境准备
  • 配置环境变量。JAVA_HOME与Path。

android SDK

下载

android SDK官方下载地址:
https://developer.android.google.cn/studio/

APP自动化基础之环境准备

环境变量设置

  • ANDROID_HOME
    1.在系统变量新建:ANDROID_HOME,变量值为sdk所在路径:APP自动化基础之环境准备

  • Path
    Path添加两个变量:%ANDROID_HOME%\tools和%ANDROID_HOME%\platform-tools:
    APP自动化基础之环境准备
    配置好环境变量后,在cmd中执行:adb,出现如下信息即安装成功:APP自动化基础之环境准备

查找手机

打开模拟器或连接手机

这里我们打开雷电模拟器:
APP自动化基础之环境准备

adb devices

在cmd中输入adb devices,检测到手机设备:
APP自动化基础之环境准备

第一个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相对应:
APP自动化基础之环境准备

desired_capabilities是一个列表,传入测试所需要的一些环境参数。以下是最主要的几个参数:

  • platformName:平台名称,是Android还是Ios

  • deviceName:设备名称,与adb devices中的名称相对应
    APP自动化基础之环境准备

  • app:app所在路径。这里可以填写本地路径,也可填写网上的url路径。

执行前得先打开appium server及模拟器或连接真机;执行代码后会在appium server端打印日志信息。如下即为执行成功:
APP自动化基础之环境准备
在模拟器上也打开了应用:
APP自动化基础之环境准备

本文地址:https://blog.csdn.net/weixin_44885027/article/details/112761628

相关标签: APP自动化测试