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服务器已启动正在运行。你可以在任何地方启动。

安装 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 开始安装。

环境变量

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

目录结构

​1. ANDROID_HOME

​2. platfrom

安装uiautomator2驱动

appium driver install uiautomator2

运行完成后显示:

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

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

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

手机设备连接

adb devices


代码测试(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 = '<http://localhost:4723>' # **处为你的设备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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值