python自动化005:app自动化入门环境搭建
原理:Python脚本将代码给到Appium, Appium将Python脚本编译成ADB命令给到手机, 手机接收到ADB后, 根据ADB命令来操作手机。Appium相当于是一个中间软件,将脚本转换成手机认识的ADB,最终达到操作手机的目的。
环境说明:Python+Appium+模拟器。接下来开始教程......
第一步:安装python和pycharm
这两个工具安装相对简单,这里就不描述了
第二步:配置好java jdk环境
这个需要安装16.0.2这个版本,不要安装比16高的版本,否则后续配套的软件可能会不适配而引起失败。对于自动化来说, 只要能实现自动化过程即可,无需为最新版本而纠结。安装过程比较简单,请看此篇文章安装就行:https://www.cnblogs.com/FBGG/p/15103119.html
如果已经安装好了, 验证一下是否可用,cmd命令输入:java --version 和 javac --version 能看到如下版本号则说明OK了。

第三步:安装Android SDK环境
下载android SDK-夸克网盘链接:https://pan.quark.cn/s/ef081d15e1fc 。下载完后, 将文件解压到某一个路径中,注意解压路径不能有中文, 解压后文件如下

然后配置Android SDK环境变量,进入电脑的环境变量,在(系统变量)新建名称为:ANDROID_HOME;值是上面Android sdk 的解压路径,注意路径不能有中文

在path变量中增加"platform-tools"和"tools"所在路径


然后用cmd命令来验证一下是否配置成功,cmd输入"adb version",出现以下版本号说明安装成功

第四步:运行sdk下"SDK Manager.exe"文件,下载6个工具包。
首先得清空系统默认勾选17个内容

然后勾选以下6个工具包



然后点击安装

安装以下图片来勾选上


等待它安装完成

第五步:安装Appium
打开下载网址:http://appium.io/ 选择exe或zip文件下载都行,建议exe下载,方便。


下载完成后点击exe程序运行

安装完成后打开,会得到如下图,选择View可以切换中文

点击“编辑配置”,如果能看ANDROID_HOME和JAVA_HOME框内有默认值,则说明上面所配置的变量是成功的, 如果没有出现默认值,则需要检上面的ANDROID_HOME和JAVA_HOME变量配置

第六步:配置测试机环境
建议:这里建议使用"模拟器"而不是手机,因为如果你的测试用例里面如果涉及到操作手机"设置",比如说打开WiFi会报错,除非你的手机Root,Root手机是一个比较麻烦的一个过程,除非项目要求必须用手机。
6.1、安装夜神模拟器,这个可以在网上搜索下载(这里推荐使用夜神,兼容性比较好),然后将设置调整如下图,要注意的是分辨率不要调太高,否则有可能会卡,其它按电脑性能来配置

6.2、 按照下图, 打开USB调试功能

6.3、cmd输入"adb devices", 如果出现如下,则说明夜神模拟器安装成功

第七步:用Python脚本操作模拟器
7.1、 启动Appium

7.2、在Pycharm中下载Appium包,注意这里必须是2.11.1版本,其他版本可能会导致报错,命令:pip install appium-python-client==2.11.1

7.3、在pycharm中填写以下代码
from appium import webdriver# 定义一个字典,告诉系统我要操作哪个(设备、系统、app、界面)
desired_caps = {# 设备名称'deviceName':'127.0.0.1:62001',# 系统名称'platformName':'Android',# 需要操作的app名称'appPackage':'com.android.settings',# 需要操作的界面'appActivity':'.Settings$WifiSettingsActivity'}# appium的(服务器)和(客户端)之间通信地址
appium_url = 'http://127.0.0.1:4723/wd/hub'# 创建连接
driver = webdriver.Remote(appium_url, desired_caps)# 关闭链接
driver.quit()
右键运行,观察夜神模拟器,如果能自动打开(设置)进入(wifi)界面, 则说明基础环境已经配置正确

设备名称:在cmd命令中输入"adb devices"可以得到

系统名称:安卓(Android),苹果(iOS)
需要操作的app、需要操作的界面:cmd中输入命令"adb shell dumpsys window windows | findstr mFocusedApp" 获得。斜杠前面是app名, 后面是所在界面。这个命令需要配合模拟器获取,它相当于是获取当前模拟器当前界面所在app和界面名称

