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 请求