02 APP 自动化-Appium 运行原理详解

环境搭建见 01 APP 自动化-环境搭建

文章目录

        • 一、Appium及Appium自动化测试原理
        • 二、Appium 自动化配置项
        • 三、常见 ADB 命令
        • 四、第一个 app 自动化脚本
一、Appium及Appium自动化测试原理

Appium 跨平台、开源的 app 自动化测试框架,用来测试 app 应用程序,支持Android/iOS 操作系统

为什么通过代码操作不同的操作系统(Android/IOS)不同版本的手机终端的应用程序?

  • web自动测试:如何通过代码,实现操作pc端的浏览器进行对应的操作?
    代码->selenium 中 webdriver->xxx浏览器驱动->操控浏览器实现对应操作
  • app自动化测试: 代码-----? 操控手机端的应用程序,实现对应 app 自动化测试
二、Appium 自动化配置项

不同系统不同版本可能用到不同的软件包/框架----》python 脚本指定操作终端的这些参数设置
Desired Capabilities - Appium

常用必备参数:

  • platformName 操作系统(iOS/android) Android

  • platformVersion 系统版本 16.0

  • deviceName 设备名称 127.0.0.1:62001

  • app/appPackage 包名 'com.tal.kaoyan'

  • appActivity 入口启动页面 'com.tal.kaoyan.ui.activity.SplashActivity' ---Android only

    {
    "platformName": "iOS",
    "appium:options": {
    "platformVersion": "14.4",
    "deviceName": "iPhone 11",
    "app": "Some-App.app.zip",
    "automationName": "XCUITest"
    }

三、常见 ADB 命令

ADB 命令:命令调试桥

  • 1、连接模拟器 命令:
    • 查看连接设备:adb devices 或者 连接设备: adb connect 127.0.0.1:62001
    • 不同模拟器端口号不同:雷神:5555 夜神:62001 mumu:7555 逍遥:21503
  • 2、获取包名及入口启动页面 aapt dump badging 包路径
    • 进入 aapt.exe 所在的路径(D:\Andriod_SDK\Andriod_SDK\build-tools\29.0.3)或者把所在路径也配置到系统变量中
    • 再输入命令:aapt dump badging C:\Users\x\Desktop\kaoyan3.1.0.apk
    • 注意:包路径不要包含中文
    • 获取包名:
    • 获取启动页面appActivity 的值:
四、第一个 app 自动化脚本

以上环境配置完成后,按照下面步骤,即可实现 app 自动化启动

1、通过 appium 命令启动 appium server 服务

2、电脑链接手机,或者打开模拟器

  • 通过adb devices 查看连接状态,保证是已连接状态
  • 若不是连接状态,通过adb connect 127.0.0.1:62001命令连接设备

3、编写以下脚本代码进行运行:

复制代码
# -*- coding=utf-8 -*-

from appium import webdriver
from appium.options.android import UiAutomator2Options

# 设置操作终端的配置参数
desired_caps = dict(
    platformName='Android', # 指定操作系统
    platformVersion='7.1.2',# 指定操作系统版本
    automationName='Uiautomator2',# 默认框架
    deviceName='127.0.0.1:62001',# 指定设备名称
    appPackage='com.tal.kaoyan',# 被操作的应用程序包名
    appActivity='com.tal.kaoyan.ui.activity.SplashActivity',# 启动页面
    noReset='false',# true--不重置  false--重置
    app='F:\Pycharm\AppAuto\kaoyan3.1.0.apk'  # apk文件所在路径
)
# 发送命令给 appium server
driver = webdriver.Remote('http://127.0.0.1:4723', options=UiAutomator2Options().load_capabilities(desired_caps))

具体实现原理:

  • 1、自动化脚本发送 http 请求到 appium server

  • 2、创建会话 session

  • 3、确认终端设备是否连接,并且确认安卓的版本 确认设置其他参数与终端是否一致

  • 4、 appium会推送一个包 'AppiumBootstrap.jar'

    AppiumBootstrap.jar:实现 appium server 与手机终端进行数据交互

  • 5、下一个 http 请求

相关推荐
Rvelamen1 小时前
LLM-SECURITY-PROMPTS大模型提示词攻击测评基准
人工智能·python·安全
【本人】1 小时前
Django基础(一)———创建与启动
后端·python·django
七夜zippoe2 小时前
破解 VMware 迁移难题:跨平台迁移常见问题及自动化解决方案
运维·自动化·vmware
SHIPKING3933 小时前
【python】基于pygame实现动态粒子爱心
开发语言·python·pygame
kk_stoper4 小时前
如何通过API查询实时能源期货价格
java·开发语言·javascript·数据结构·python·能源
java1234_小锋4 小时前
【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 架构搭建
python·自然语言处理·flask
音程6 小时前
(已解决) 如何使用密钥连接远程服务器jupyter notebook从而在本地浏览器上打开
运维·服务器·python·jupyter
Norvyn_77 小时前
LeetCode|Day11|557. 反转字符串中的单词 III|Python刷题笔记
笔记·python·leetcode
我爱一条柴ya7 小时前
【AI大模型】BERT微调文本分类任务实战
人工智能·pytorch·python·ai·分类·bert·ai编程
墨尘游子7 小时前
一文读懂循环神经网络(RNN)—语言模型+n元语法(1)
人工智能·python·rnn·深度学习·神经网络·语言模型