Appium 自动化测试环境搭建

  • Appium 介绍
    #Introduction

  • Appium 的概念
    #Concepts

  • 相关环境安装
    #install

    • 安装JDK
      #jdk

    • 安装Android SDK
      #sdk

    • 安装Appium Client
      #client

    • 安装Appium 
      #server

  • 运行测试

Appium 介绍

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

Appium 的概念

客户端 / 服务器架构

 Appium的核心是一个公开REST API的Web服务器。它接受来自客户端的连接,监听命令并在移动设备上执行,答复 HTTP 响应来描述执行结果。

Session(会话)

 自动化始终在一个会话的上下文中执行,这些客户端程序库以各自的方式发起与服务器的会话,但最终都会发给服务器一个 POST /session 请求,请求中包含一个被称作「Desired Capabilities」的 JSON 对象。此时,服务器将启动自动化会话并使用用于发送更多命令的会话 ID 进行响应。

Desired Capabilities

 Desired Capabilities 是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),用于告诉服务器我们想要启动什么类型的自动化会话。还有各种功能可以在自动化过程中修改服务器的行为。

Appium Server

 Appium是用Node.js编写的服务器。它可以

从源代码
https://appium.io/docs/en/contributing-to-appium/appium-from-source/index.html

构建和安装,也可以直接从

NPM
https://www.npmjs.com/package/appium

安装

Appium Clients

 有一些客户端程序库(分别在 Java、Ruby、Python、PHP、JavaScript 和 C# 中实现),它们支持 Appium 对 WebDriver 协议的扩展。

Appium Desktop

 Appium Desktop是一款适用于Mac,Windows和Linux的应用程序,它以美观而灵活的UI提供了

Appium
http://appium.io/

自动化服务器的强大功能。它基本上是Appium服务器的图形界面。您可以设置选项,启动/停止服务器,查看日志等...您也不需要使用Node/ NPM来安装Appium,因为Node运行时与Appium Desktop捆绑在一起

 注意:Appium Desktop与Appium不是一回事。Appium Desktop是Appium的图形前端,带有其他工具。


相关环境安装

  • 安装JDK

  • 安装 Android SDK   

          查看

Android SDK 安装步骤
https://www.cnblogs.com/liho/p/16006051.html%20

  • 安装Appium Client 

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

          如果报错,查看具体步骤 [

https://www.cnblogs.com/liho/p/16520+286.html
https://www.cnblogs.com/liho/p/16520286.html

]

  • 安装Appium 

  Appium可以通过以下两种方式之一进行安装:通过NPM或下载Appium Desktop,这是一种基于桌面的图形化方式来启动Appium服务器。

          下载Appium Desktop

           地址找到对应的版本 [

https://github.com/appium/appium-desktop/releases
https://github.com/appium/appium-desktop/releases

下载成功后点击安装,根据程序提示一致下一步安装即可。

             

      


     启动Appium服务器 

1、打开Appium Desktop

   打开Appium Desktop时,看到服务器启动窗口。基本选项是启动具有所有默认值的Appium服务器以及修改主机和端口的功能。start 按钮知道正在运行的是哪个版本的Appium服务器。

 

2、启动服务器

 点击Start启动服务器,它将在指定的主机和端口上启动,并打开一个显示服务器日志输出的新窗口


运行测试

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

1、adb检查是否连接设备

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

2、启动Appium并配置选项

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

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

     Desired Capabilities是在 JSON 对象中编码的键和值,在请求新的自动化会话时由 Appium 客户端发送到服务器,每个Appium客户端都以特定于客户端语言的方式构建功能,但最终,它们会作为JSON对象发送给Appium。

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

(2)platformName : 操作系统名称   可填写:Android和IOS

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

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

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

 

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

配置成功后右侧显示对应的JSON对象。

3、点击 Start Session 启动会话 

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

 

4、编写测试脚本

确保已经安装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("启动成功")

运行成功后,模拟器中自动启动测试的APP

Appium Service 中显示运行的日志

环境搭建完成,测试成功,可以进行自动化测试。

每日一句

种一棵树,最好的时间是十年前,其次,就是现在了。