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,新建两个资源路径
- D:\app\android_sdk_test\platform-tools
- D:\app\android_sdk_test\tools
2.3 安装appium客户端
- 安装appium客户端,启动服务器
- 版本:Appium-windows-1.15.1.exe
- 直接点击下一步完成即可
python环境中安装appium第三方库
- pip install Appium-Python-Client==2.11.1
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.入门案例
1 import time 2 3 from appium import webdriver 4 5 # 配置手机连接的参数信息 6 # 字典格式:所有参数键是固定的,值是对应的设备参数 7 desired_caps = {} 8 # 设备的名字 9 desired_caps['deviceName'] = "127.0.0.1:62001" # adb devices查看 10 # 系统的名字 11 desired_caps['platformName'] = "Android" 12 # 需要连接的app名字 13 # desired_caps['appPackage'] = "com.android.settings" # adb shell dumpsys window windows|findstr mFocusedApp命令查看 14 desired_caps['appPackage'] = "com.android.browser" 15 # 需要连接的app对应的界面名字 16 # desired_caps['appActivity'] = ".Settings" 17 desired_caps['appActivity'] = ".BrowserActivity" 18 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps) 19 20 time.sleep(5) 21 22 # 关闭驱动 23 driver.quit()
需要测试不同的app,那么连接参数配置设置不同的app名字以及对应的app界面即可