用最简单的话术,描述最难理解的问题。

【原理】:

  用简单的话来说就是python操作appnium,appnium操控android SDK,android SDK通过命令操控手机,就实现了app自动化

Android使用命令实现自动化 安卓app自动化_python

 

第一步:搭建python环境。(python自动化脚本)

这个就很简单了,安装好python环境就行。当然不一定要python,其它语言也行,这里用python语言讲解。安装完后,cmd输入python验证一下,出现以下则说明环境安装成功。还有别忘了安装pycharm工具

 

第二步:安装android SDK环境

安装java jdk环境:首先得配置好java jdk环境,安装比较简单,不会请看此篇文章,按照里面的一步步来即可 

如果之前已经安装有了,验证一下是否可用:java --version  和  javac --version  能看到版本号则说明OK了。

Android使用命令实现自动化 安卓app自动化_python_02

 

 安装android SDK:网址:http://sdk.android-studio.org/  ,推荐zip下载。当然你也可以从官网或其它地方下载。

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_03

 

 下载完后, 将文件解压到某一个路径中,注意解压路径不能有中文

Android使用命令实现自动化 安卓app自动化_java_04

 

进入文件双击SDK Manager.exe

Android使用命令实现自动化 安卓app自动化_android_05

 

 

 

打开文件之后,会得到下图,根据图片描述勾选下载即可。Tool 下勾选这3个, 下图的Android SDK Build-tools都是一样的, 只是版本不一样(个人习惯,不想用最新版本) 

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_06

Android使用命令实现自动化 安卓app自动化_java_07

 

Android使用命令实现自动化 安卓app自动化_java_08

 

Android使用命令实现自动化 安卓app自动化_python_09

 

Android使用命令实现自动化 安卓app自动化_python_10

 

Android使用命令实现自动化 安卓app自动化_android_11

 

Android使用命令实现自动化 安卓app自动化_python_12

 

Android使用命令实现自动化 安卓app自动化_java_13

更新下载完成后, Android SDK就安装好了,下一步配置环境变量

 

第三步:配置电脑环境变量 

新建系统环境变量

ANDROID_HOME:值是Android-sdk 的解压路径

 

Android使用命令实现自动化 安卓app自动化_android_14

 

编辑系统的path 路径

注意, win10有新旧版本两个编辑界面,而且两个都是不一样,增加的变量也是不一样的, 用哪一个都可以。

C:\sdk\android-sdk-windows\platform-tools

C:\sdk\android-sdk-windows\tools

Android使用命令实现自动化 安卓app自动化_android_15

 

旧版本是以% 开头的,如下图, 在最前面直接增加这段代码:  %ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_16

 

adb version

Android使用命令实现自动化 安卓app自动化_android_17

 

第四步:配置真机环境

注意:这里建议使用木木模拟器(我使用过多个模拟器,木木模拟器能让你避开很多坑),当然也可以用真机(不建议用自己的手机,会把自己手机弄得一团糟)

连接方式的话,手机就用USB连接(要注意,有些数据线是不支持连接的)。不建议用WIFI。

 

这里用木木模拟器讲解,打开模拟器的USB调试功能,如果不知道怎么打开百度一下

Android使用命令实现自动化 安卓app自动化_java_18

 

 

 

注意:如果你使用的是OPPO手机,则需要打开(OEM解锁)和(禁止权限监控),如下图。如果不打开后续运行时会拦截appium命令执行从而报错。

Android使用命令实现自动化 安卓app自动化_java_19

 

然后在cmd输入命令:adb connect 127.0.0.1:7555  这个命令来连接电脑。(127.0.0.1是电脑的主机地址,7555是木木模拟器的专属端口,每一个模拟器的端口都不一样,可以自行网上查)

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_20

 

 

 

再输入:adb devices  命令, 检查一下是否连接成功

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_21

 

 

 

 

如果是真机,先用数据线连接手机和电脑, 查看电脑硬盘是否出现手机驱动标识。如下图,如果没有出现,一般有三种情况,一是数据线不支持数据传输,更换数据线即可;二是电脑接口不支持,换个电脑接口重新插一下数据线;三是驱动没识别到,在电脑和手机下载一个(互传),尝试使用(互传)连接,调起驱动就行可以了(要注意,调起驱动后要把互传退出,否则后续步骤就会报错)。

Android使用命令实现自动化 安卓app自动化_python_22

 

第五步:安装appnium

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

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_23

 

 

 华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_24

 

 

 

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

Android使用命令实现自动化 安卓app自动化_python_25

 

安装完成后打开appium,会得到下图。主机、端口默认不用修改。

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_26

点击(编辑配置)

Android使用命令实现自动化 安卓app自动化_android_27

第一个输入 Android sdk的安装路径, 第二个输入java sdk的安装路径, 点击(保存并重新启动)

Android使用命令实现自动化 安卓app自动化_python_28

点击(启动服务)

Android使用命令实现自动化 安卓app自动化_java_29

 

小技巧:这里可以切换语言

Android使用命令实现自动化 安卓app自动化_android_30

操作完以上场景后,自动化环境就搭建好了。如何验证呢?可以看该篇文章:

 

但是还没结束,做app自动化需要对app应用元素进行定位,所以我们还需要安装元素定位工具。这里有三个工具可以用

第一个工具:UIAutomatorView(sdk自带的工具),不建议使用这个

第二个工具:Appium Inspector(这个工具是appium server提供的一个工具)建议使用

第三个工具:Weditor(UIautomator2  python第三方库 appUI自动化测试框架)这个也建议使用

 

第一个:UIAutomatorView,这个是android SDK自带元素定位工具,无需下载。怎么使用呢?

打开android SDK安装路径,进入tools,在目录最下面有一个 uiautomatorviewer.bat 这个就是工具

Android使用命令实现自动化 安卓app自动化_android_31

 

 

 

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_32

 

打开 uiautomatorviewer.bat ,使用之前需要连接手机

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_33

 

得到下图说明成功。但是不建议使用这个工具,界面丑,元素信息少。

Android使用命令实现自动化 安卓app自动化_android_34

 

第二个元素定位工具:Appium Inspector(这个工具是appium server提供的一个工具)

下载地址:https://github.com/appium/appium-inspector/releases

Android使用命令实现自动化 安卓app自动化_python_35

 

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_36

 

 下载完成之后,双击傻瓜式安装就行了 。下图是安装完成之后的图标

Android使用命令实现自动化 安卓app自动化_python_37

 

因为是这个工具是和appium server 关联的,所以要先启动appnium server

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_38

 

然后再启动Appium Inspector

Android使用命令实现自动化 安卓app自动化_python_39

 

 安装下图来配置Appium Inspector参数。

Android使用命令实现自动化 安卓app自动化_python_40

 

"platformName": "Android"。 设备类型,安装就填Android ,苹果就填ios

"appium:deviceName": "c84b98fd"。设备名:在cmd输入:adb devices 就可以看到你的设备名。 如果是模拟器, 需要使用命令:adb connect 127.0.0.1:62001来连接设备,再输入adb devices就可以看到连接的设备了

"appium:appPackage": "com.tencent.mobileqq"。要操作的APP应用包名(下面有介绍怎么用,app包名获取命令:aapt dump badging "app包的路径" | findstr package)

"appium:appActivity": ".activity.SplashActivity"。app应用程序主入口。(下面有介绍怎么用,app主程序入口命令:aapt dump badging app包的路径 | findstr activity)

"appium:noReset": true。这个的意思是,每次启动程序, 不清空缓存。(拿微信程序来操作的小心了,这个一定要填写, 否则你微信里面的东西全部不见了)

 

app包名获取方法:

打开CMD,进入SDK的 C:\sdk\android-sdk-windows\build-tools\30.0.0-preview 路径,如下图

Android使用命令实现自动化 安卓app自动化_java_41

如果不会cmd命令可以从文件夹进入,然后在文件上方输入cmd即可进入

Android使用命令实现自动化 安卓app自动化_python_42

 

然后输入命令:aapt dump badging app包的路径 | findstr package

可以先输入:aapt dump badging ,然后将apk托入cmd窗口,然后再将管道命令附上去 | findstr package,回车就可以得到包名

Android使用命令实现自动化 安卓app自动化_java_43

主程序入口获取方法: aapt dump badging app包的路径 | findstr activity

Android使用命令实现自动化 安卓app自动化_Android使用命令实现自动化_44

 

 

填写完信息,点击“保存”。 自己起个名字, 然后点击“启动会话”

Android使用命令实现自动化 安卓app自动化_android_45

Android使用命令实现自动化 安卓app自动化_python_46

上面这个工具,还是不建议使用,原因,没有下面这个工具完美。

 

第三个工具:Weditor(UIautomator2  python第三方库 appUI自动化测试框架)

安装:

cmd命令01:pip install UIautomator2

Android使用命令实现自动化 安卓app自动化_android_47

cmd命令02:python -m uiautomator2 init

Android使用命令实现自动化 安卓app自动化_java_48

 

 

cmd命令03:pip install weditor

Android使用命令实现自动化 安卓app自动化_android_49

 

检查是否安装是否成功,cmd命令:weditor --help

Android使用命令实现自动化 安卓app自动化_android_50

 

如果提示:(“weditor”不是内部或外部命令,也不是可运行的程序或批处理文件), 则直接在pycharm中直接安装weditor模块

Android使用命令实现自动化 安卓app自动化_android_51

 

 

都安装完成之后,启动weditor,cmd输入命令:weditor或python -m weditor 来启动服务。

Android使用命令实现自动化 安卓app自动化_android_52

 

然后等一下会得到如一下界面。操作一下界面之前,需要检查一下设备是否连接,输入adb devices,如果没有连接输入adb connect 127.0.0.1:62001连接设备在启动weditor

Android使用命令实现自动化 安卓app自动化_java_53

 

 工具使用后续介绍,建议使用第三个工具。

 

坑、经验:

对于小白的我而言,就搭建环境而言, 这个花费了我两天时间, 过程中遇到的问题太多太多, 归根结底原因就是环境搭建需要很多步骤, 而且网上很少有完整的教程,凑起来的教程不在同一个时期,会踩到狠多坑。建议各位参考资料时,看一下发布日期。

安装过出现的问题以及解决方法:

入坑1: 无法验证“apks/appium-UIAutomator2-Server-V4.15.0.apk”的签名。 解决方法:卸载重新安装手机里的Appnium Settings

入坑2: 报以下图错误。 解决方法:java8 已经不适用了, 需要更新java 8以上的版本。 最好更新到java 16。

Android使用命令实现自动化 安卓app自动化_android_54

入坑3: 出现下图问题,程序入口名不对,或者这个app不支持。 试着换一个app试试

Android使用命令实现自动化 安卓app自动化_python_55

 

入坑4:模拟器连接时,如果出现下图情况,解决方法:请将SDK的platform-tools文件夹中的adb.exe复制出来,将它粘贴到模拟器bin目录中,并改名为“nox_adb.exe”, 模拟器本身就有一个“nox_adb.exe”, 将它删掉。重启模拟器,appnium连接模拟器就不会断开了。

Android使用命令实现自动化 安卓app自动化_android_56

入坑5:环境搭建过程中电脑不能安装杀毒软件,类似360、电脑管家都不行,还有把连接软件(互传、应用宝等)也要关掉,否则安装过程会报错。