app自动化测试环境安装和原理解析
1.移动测试的基本介绍
定义:
- 测试手机程序:app
App程序测试点:
- 功能测试
- 安装卸载测试
- 升级测试
- 兼容性测试
- 不同的手机的系统使用测试环境不同
- android
- ios
- 其他:基于Android二次开发系统
- 华为:鸿蒙系统
- 小米:澎湃系统
- 不同的手机的系统使用测试环境不同
- 网络切换
- 网络终端
- 使用中来电,短信
- 横竖屏切换
- 健壮性测试
- 耗电量,流量消耗,崩溃恢复...
2.移动测试的环境搭建
2.1 app自动化测试环境搭建配置
-
安装java环境
- 版本jdk-8u401-windows-x64.exe
- 使用适配的版本
- 安装步骤:参考:https://www.cnblogs.com/lgs-tech/p/17882007.html
- 安装Android的环境
- 打开Android安装包,双击解压即可
- android_sdk_test.7z
- 解压在app文件夹下即可
- 配置Android的环境变量
2.2 配置Android环境变量
前置条件:
- Android SDK
- 解压
- 配置 ANDROID_HOME 和 PATH(不要有中文特殊字符)
配置环境变量:
- 打开高级系统设置
- 点击新建
- 变量名:固定:ANDROID_HOME
- 变量值:安卓sdk的文件夹路径:D:\app\android_sdk_test
- 编辑环境变量path,新建两个资源路径
- %ANDROID_HOME%\platform-tools
- %ANDROID_HOME%\tools
2.3 安装appium
- 安装node.js
- https://nodejs.org/en/
- 打开cmd,输入npm
- 安装Appium
- npm install -g appium
- 安装uiautomator2
- appium driver install uiautomator2
- 验证安装完成,命令行输入appium
- 正确安装结果
-
python环境中安装appium第三方库
- pip install appium-python-client
2.4 安装手机模拟器
- 推荐使用夜神模拟器:nox_setup_v7.0.2.7_full
- 双击打开安装包,一直下一步即可完成安装
- 也可以使用真机机械能测试,配置步骤
- ·将手机通过usb数据线连接到电脑
- 在手机上面打开文件传输
- 前提:通知栏显示手机正在充电
- 在电脑上会出现一个CD驱动器,里面是手机的驱动
- 找到手机的驱动双击安装驱动,电脑的设备管理中就可以查看到手机的型号
- 继续在手机上面打开开发者模式
- 手机---设置---关于手机---版本号---对着版本号连续点击8次及以上激活状态
- 系统会提示信息:已经打开开发者模式
- 最后打开usb调试
- 手机---设置---开发者选项--usb调试功能---点击打开即可
- 使用夜神模拟器需要与安卓环境的adb文件保存一致
- 去夜神手机模拟器位置找到adb.exe
- 打开夜神模拟器所在文件文件:"D:\Program Files\Nox\bin\adb.exe"
- 将adb.exe文件放置在桌面
- 接下来找到安卓环境中的adb.exe文件,进行替换
- 位置:D:\app\android_sdk_test\platform-tools\adb.exe
- 找到夜神模拟器的nox_adb.exe
- 位置:D:\Program Files\Nox\bin\nox_adb.exe
- 将桌面的adb.exe改名为nox_adb.exe
- 将桌面的nox_adb.exe,替换掉夜神模拟器中的nox_adb.exe
- 去夜神手机模拟器位置找到adb.exe
一定要保证安卓的adb和夜神模拟器中的adb版本保存一致才能进行连接
3.移动测试的环境验证
- 启动appium客户端,开启服务器
- 设置成中文:view菜单--Languages--中文
- 检测java环境变量和Android环境变量是否配置成功
- 点击编辑配置,会看到android环境变量和java环境变量配置信息
- 如果自动显示路径信息,如图
- 环境变量配置成功,保存并启动即可
- 点击编辑配置,会看到android环境变量和java环境变量配置信息
- 打开夜神模拟器,查看appium服务器是否连接到手机
- 打开终端,输入命令:adb devices
-
如果出现ip以及端口号,那么表示连接成功
4.ADB命令
关系:
- 电脑appium客户端会创建一个appium服务器,也叫做ADB服务器
- 手机连接上电脑之后,会自动检测服务连接
- 想要发送指令给手机,那么就必须通过appium客户端发送指令到服务器(ADB服务器)
- app自动化脚本执行流程
- pycharm写入脚本代码然后开始运行
- 脚本执行的过程中会交给appium客户端进行编译成adb命令
- 然后将adb命令发送给appium服务器,接收到命令,开始按照命令操作手机
- 也就是说操作手机的是通过代码编译的adb命令
定义:
- ADB含义:Android-debug-bridge
- 代表的含义是安卓调试的桥梁
- 包含adb服务器,也包含服务器对应的客户端
作用:
- 通过编译python的脚本代码生成adb命令去控制手机
4.1 常用的adb命令
开启服务器:adb start-server
关闭服务器:adb kill-server
如果发现appium服务器无法自动连接手机设备,那么可以重启appium服务器进行连接
查看当前连接设备:adb devices
进入手机的终端:adb shell
获取手机版本号:adb shell getprop ro.build.version.release
获取当前手机启动的app及界面:adb shell dumpsys window windows|findstr mFocusedApp
一个app程序可能由多个界面组成
app名字:com.android.settings
界面名:.settings
5.入门案例
from appium import webdriver from appium.options.android import UiAutomator2Options driver = webdriver.Remote( 'http://127.0.0.1:4723', options=UiAutomator2Options() ) driver.get_screenshot_as_file("page.png")
6.App自动化测试的原理
6.1 appium是什么?和selenium是什么关系?
appium是selenium的子类,继承
- 截图
- 定位元素
- 执行命令
- 其他
6.2 appium是如何控制手机的
Appium:接受来自Python的http请求
AppiumDriver:调用Android Sdk中的adb的工具
adb:获取、修改系统信息,安装、卸载app,支持其他的操作
自动化的原理
python 调用 appium 调用 sdk 调用 adb 调用 手机(模拟器)
分类:
python之app自动化
标签:
python之app自动化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)