Appium安装与配置——2023年8月18日

在实现自动化 APP 打卡行为的项目前,需要先了解以下方面的知识或技术:

  • Android 系统和 APP 的基本原理和架构,包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)、意图(Intent)等组件的作用和用法,以及 Android 系统的权限机制和安全策略。

  • Android 应用开发的基本工具和环境,包括 Android Studio、Gradle、ADB、Logcat、Emulator 等工具的安装和配置,以及如何创建、编译、运行、调试和测试 Android 项目。

  • Android 应用自动化测试的基本框架和方法,包括 Espresso、UI Automator、Appium、Robotium 等框架的特点和用法,以及如何编写、执行和分析自动化测试用例。

  • Android 应用逆向工程的基本技巧和工具,包括 APKTool、dex2jar、JD-GUI、Frida、Xposed 等工具的作用和用法,以及如何反编译、分析、修改和重打包 Android 应用。


我为何选择Appium?

  • 不需要了解Android的编译原理

  • 不需要为此额外学一门语言

  • 跨平台

  • 多语种

    • Java

    • Python

    • Ruby

    • JS

    • ……

  • 稳定的API

Appium介绍

  • HTTP服务端

  • 除非你想编写原生的raw HTTP来调用或者使用cURL,否则使用APPium自动化设计你所选择的编程语言使用Appium

  • C/S分离


应用层

npm i --location=global appium

在PowerShell内输入:appium。出现Welcome to appium v.*.*则表示Appium服务器已启动正在运行。你可以在任何地方启动。

Appium安装与配置——2023年8月18日_第1张图片

安装 UiAutomator2 驱动程序

设置Android自动化

  1. SDK工具

  2. 设置环境变量

  3. 下载JDK(8或9均可)

  4. 下载Android Studio ——> 创建和管理虚拟设备 连接手机设备后,运行adb devices来查看设备是否连接 安装教程

安装并打开 Android Studio 后,请按以下步骤安装 Android版本SDK:

  1. 依次点击 Tools > SDK Manager。

  2. 在 SDK Platforms 标签中,选择 Android 10 (29)。

  3. 在 SDK Tools 标签中,选择 Android SDK Build-Tools 29(或更高版本)。

  4. 点击 Apply 开始安装。

Appium安装与配置——2023年8月18日_第2张图片

环境变量

SDK安装好后,进入到SDK目录,将其设置为ANDROID_HOME变量

目录结构

Appium安装与配置——2023年8月18日_第3张图片

​1. ANDROID_HOME

Appium安装与配置——2023年8月18日_第4张图片

​2. platfrom

Appium安装与配置——2023年8月18日_第5张图片

安装uiautomator2驱动

appium driver install uiautomator2

运行完成后显示:

√ Installing 'uiautomator2' using NPM install spec 'appium-uiautomator2-driver'
i Driver [email protected] successfully installed
- automationName: UiAutomator2
- platformNames: ["Android"]

Appium安装与配置——2023年8月18日_第6张图片

​如果你喜欢用npm来管理Appium以及它的驱动可以查看:管理指南扩展

再次在PowerShell处运行appium。你应该会看到:Available drivers的内容

Appium安装与配置——2023年8月18日_第7张图片

手机设备连接

adb devices

Appium安装与配置——2023年8月18日_第8张图片


代码测试(Python)

安装Appium库

pip install Appium-Python-Client
import unittest
from appium import webdriver
from appium.webdriver.common.appiumby import  AppiumBy

capabilities = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    language='cn',
    locale='CN'
)

appium_server_url = '' # **处为你的设备IP地址

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, capabilities)

    def tearDown(self) -> None:
        if self.driver:
            self.driver.quit()

    def test_find_battery(self) -> None:
        el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@test="Battery"]')
        el.click()

if __name__ == '__main__':
    unittest.main()

运行出错:writing to settings requires:android.permission.WRITE_SECURE_SETTINGS

Appium安装与配置——2023年8月18日_第9张图片

你可能感兴趣的:(自动化测试,appium)