Appium 自动化测试环境搭建

学习目录


Appium 介绍  


  1. Appium是一个开源工具,用于自动化IOS手机、Android手机和Windows 桌面平台上的原生、移动 Web 和混合应用。
  2. Appium 是跨平台的它允许你用同样的 API 对多平台(iOS、Android、Windows)写测试。做到在 iOS、Android 和 Windows 测试套件之间复用代码。

Appium 的概念


  1. Appium的核心是一个公开REST API的Web服务器。它接受来自客户端的连接,监听命令并在移动设备上执行,答复 HTTP 响应来描述执行结果。
  2. Session(会话),自动化始终在一个会话的上下文中执行,这些客户端程序库以各自的方式发起与服务器的会话,但最终都会发给服务器一个 POST /session 请求,请求中包含一个被称作「Desired Capabilities」的 JSON 对象。此时,服务器将启动自动化会话并使用用于发送更多命令的会话 ID 进行响应。
  3. Desired Capabilities 是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),用于告诉服务器我们想要启动什么类型的自动化会话。还有各种功能可以在自动化过程中修改服务器的行为。
  4. Appium Server,Appium是用Node.js编写的服务器。它可以从源代码构建和安装,也可以直接从NPM安装
  5. Appium Clients,有一些客户端程序库(分别在 Java、Ruby、Python、PHP、JavaScript 和 C# 中实现),它们支持 Appium 对 WebDriver 协议的扩展。
  6. Appium Desktop是一款适用于Mac,Windows和Linux的应用程序,它以美观而灵活的UI提供了Appium自动化服务器的强大功能。它基本上是Appium服务器的图形界面。您可以设置选项,启动/停止服务器,查看日志等...您也不需要使用Node/ NPM来安装Appium,因为Node运行时与Appium Desktop捆绑在一起

 注意:Appium Desktop与Appium不是一回事。Appium Desktop是Appium的图形前端,带有其他工具。而Appium 只是一个 HTTP 服务器。它坐下来等待来自客户端的连接,然后指示 Appium 启动哪种会话,以及启动会话后执行哪种自动化行为。这意味着您永远不会单独使用 Appium。总是必须将它与某种客户端库一起使用。

环境安装


1.安装JDK

 Windows

  1. 下载并安装jdk1.8
  2. 新建 JAVA_HOME 环境变量,变量值是自己安装JDK 的路径,如:C:\Program Files\Java\jdk1.8.0_151   
  3. 新建 CLASSPATH 环境变量,值为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;  
  4. 编辑PATH变量 新增路径:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;   
  5. 验证环境是否配置成功 ,打开cmd命令行窗口, 在命令行窗口中输入java -version

  设置环境变量路径:进入我的电脑 -> 属性 -> 高级系统设置 -> 环境变量,编辑环境变量

2、安装 Android SDK   

  1. 下载adb并安装
  2. 新建 ANDROID_HOME 环境变量,变量值是安装路径,如:D:\android\sdk 
  3. 编辑PATH变量 新增路径:%ANDROID_HOME%\platform-tools;%ANDROID_ HOME%\tools
  4.  验证环境是否配置成功,打开cmd命令行窗口, 在命令行窗口中输入adb version

    具体查看 Android SDK 安装步骤

3.安装Appium Client 

  在pycharm中安装Appium Client ,在命令窗口执行:pip install Appium-Python-Client

4.安装Appium 

 1、下载Appium Desktop,默认安装

   下载地址: https://github.com/appium/appium-desktop/releases 

     

      

 2、安装成功,启动Appium服务器 

  1. 打开Appium Desktop,看到服务器启动窗口。基本选项是启动具有所有默认值的Appium服务器以及修改主机和端口的功能。start 按钮知道正在运行的是哪个版本的Appium服务器。
  2. 点击Start启动服务器,它将在指定的主机和端口上启动,并打开一个显示服务器日志输出的新窗口, Appium 启动后窗口显示一条欢迎消息,显示正在运行的 Appium 版本以及它正在侦听的端口(默认为4723)

       

测试


Appium连接模拟器环境


使用 Appium 运行测试应用(测试设备:Android )

1、adb检查是否连接设备

首先,必须确保adb连接了一个且只有一个Android模拟器或设备。检查是否连接设备运行:adb devices

2、启动Appium并配置选项

1、点击“Start Server”启动Appium

  Appium界面右上角有三个选项分别为:Start inspector session 启动检查器会话、 Get Raw Logs 获得原生日志、 Stop Server 停止服务

2、点击Start inspector session启动检查器->选择 Automatic Server(自动化服务)->填写 Desired Capabilities

  • deviceName : 自动化设备名称   
  • plaformVersion:自动化的平台版本
  • platformName : 自动化的平台的名称 
  • appPackage : 测试APP的包名 
  • appActivity : activity程序主入口   

 

(1)deviceName: 自动化设备名称   获取方式:通过 adb devices 获取  127.0.0.1:62001

(2)plaformVersion:要自动化的平台版本 查看系统版本

(3)platformName : 要自动化的平台的名称 可填写:Android和IOS

(4)appPackage : 测试APP的包名 ,获取方式 可输入:adb shell pm list packages -3 查看包名,测试包名:com.youdao.calculator

(5)appActivity : activity程序主入口如:com.youdao.calculator.activities.MainActivity

   获取方式:输入命令 adb logcat | findstr START  同时点击要启动的app,即可获取到包名和activity

注意:Activity 的名字是指从你的包中所要启动的 Android acticity。他通常需要再前面添加 . (例如 使用 .MainActivity 代替 MainActivity) 

3、点击 Start Session 启动会话 ,左侧显示APP界面测试成功。

 显示测试APP的界面,可以定位元素

Appium连接真机测试


手机环境设置

1、在设置中找到“开发者”选项,开启“USB调试”功能

2、通过USB将手机和电脑连接

3、连接的同时,手机上会出现,是否接受USB调试,允许即可

注意:有的手机必须开启安全权限,否则报错不支持修改和删除权限(需在设置->更多设置->开发者选项同时开启:USB调试和USB调试(安全设置))

Appium环境设置

1、打开Appnium Desktop,设置主机地址和端口(目前是默认地址),点击“Start Server ”启动服务器

2、点击右上角放大镜菜单“Start Inspector Session”启动会话

3、设置启动参数,通过adb命令获取一些参数,如下所示:

4、完成后点击“Start Session

参数获取方式:

adb drivers -l 获取设备名称

或 adb shell getprop ro.product.model

adb shell getprop ro.build.version.release 查看系统版本

获取正在运行中的包名及活动名称

(1)先启动APP

(2)在输入命令:adb shell dumpsys activity top | find "ACTIVITY",查询已开启的包名(以计算器为例)

在如下界面添加对应的参数

点击“start Sesion”后,手机会提示安装自动化相关的应用,点击安装,连接手机成功。

 

 

使用Python+Appnium启动APP


应用场景

使用appium 自动化启动模拟器,打开测试APP计算器应用程序

前置步骤

  1. 打开appium工具
  2. 打开手机模拟器,使用模拟器需先下载并安装
  3. 利用python编写测试脚本,运行并查看结果

  确保已经安装Appium Client

"""
    @Time : 2022/7/22 17:03
    @Author :LH
    @desc :  测试自动启动APP
"""
from appium import webdriver
# import time


desired_caps = { }
desired_caps['deviceName'] = '127.0.0.1:62001'  # 测试设备名称
desired_caps['platformName'] = 'Android'  # 测试系统
desired_caps['plaformVersion'] = '7.1.2'  # 版本号
desired_caps['appPackage'] = 'com.youdao.calculator'  # app 包名
desired_caps['appActivity'] = '.activities.MainActivity'  # App最先启动的Activity
# 打开APP,返回webdriver对象
# 连接APP server (需要先启动appium server)
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)


print("启动成功")

运行测试项目,可以看到已经指定了 Appium 端口并构建了 Desired Capabilities ,且自动打开测试APP

Appium Service 中显示运行的日志

注意:

1、Appium在启动App时,默认会对已安装的应用进行重新安装。如果你不希望每次启动App时都重新安装,可以通过设置noReset参数为true来避免重新安装。

posted @ 2022-08-08 16:37  萧兮易  阅读(727)  评论(0编辑  收藏  举报