操作系统: Windows 10
被测平台: Android真机
appium服务器: appium Desktop
appium客户端: python-client
测试的APP:小米计算器
安装Android SDK
在安装Android开发环境之前,需要先安装JAVA的开发环境!
Android SDK已经不再提供完整的独立下载,需要通过Android Studio安装:
Android Studio下载地址:https://developer.android.google.cn/studio
这里以windows版本为例,下载好了打开安装程序,记得勾选Android Virtual Device,然后选择安装路径并安装
首次启动Android Studio会弹出提示框,如图所示:
提示Android Studio没有检查到Android SDK,因为我们没有单独安装和配置Android SDK,所以单击“Cancel”按钮,继续安装。
勾选【Android SDK】 和【Android SDK Platform】选项,并通过【Android SDK Location】选择SDK的安装路径。
之后点击【Finish】开始下载安装SDK,整个过程比较漫长,需要等待一段时间。
安装完成后,就可以创建Android项目,因为用真机,所以在这就不讲模拟器的设置了。
配置Android 环境变量
在我的电脑右键菜单中选择【属性】→【高级系统设置】→【高级】→【环境变量】→【系统变量】下的【新建】按钮,添加ANDROID_HOME:
变量名: ANDROID_HOME
变量值: D:\Android\SDK # SDK的安装位置
单击【path】变量名,点击【编辑】按钮,追加如下配置:
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
%ANDROID_HOME%\build-tools\29.0.3 # 后面的版本自己去目录看下,不要照抄
配置完成后在命令行输入命令adb,能正常执行就好了
安装appium Desktop
appium为c/s架构,Server主要用来监听我们的移动设备,接收Client(客户端)发来的JSON请求,解析后驱动移动设备运行测试脚本。
Github下载地址:https://github.com/appium/appium-desktop
进入网站后,找到标题Download Appium Desktop下,点击Release链接就可以看到各个版本的安装包了。
下载完了后进行傻瓜式安装就好了。
安装python的appium测试库
appium client支持多种编程语言,这里以python为例,通过pip命令安装:
pip install Appium-Python-Client
至此自动化测试环境就完成了。
测试准备和编写脚本开发者模式
首先USB手机连接电脑,手机进入开发者模式(不同品牌手机操作方法不同),在开发者选项中开启USB调试。
在windows命令行中使用adb devices 查看设备连接情况,在List of devices attached下能看到一个实例ID说明监听成功:
此时windows命令行输入adb install D:\com.miui.calculator.apk可以安装小米计算器APP
注意APK的所在路径和文件名
appium Desktop
打开appium客户端,点击【start server】启动appium server:
菜单栏选择【File】下的【New Session Window】进行配置:
如何获取app的appPackage名和appActivity名?
打开windows命令行,输入命令aapt dump badging D:/com.miui.calculator.apk可以获取到,如下图所示
JSON配置信息:
{ "platformName": "Android", # 测试的平台,安卓或者ios "platformVersion": "10", # 系统版本,此处代表安卓10 "deviceName": "OnePlus 7 pro", # 设备名称,填手机型号就行,随便填也可 "app": "D:/com.miui.calculator.apk", # app的安装包的位置 "appPackage": "com.miui.calculator", # app的包名 "appActivity": "com.miui.calculator.cal.CalculatorActivity" # app的activity名 }简单配置完成后,点击右下角的【start session】
可以看到测试机打开了小米计算器
元素定位
如图,可以看到进入小米计算器的APP画面,并且出现了权限设置的问题。