Python+Appium+夜神模拟器 全流程从环境搭建到实现自动化(APP自动化)

**

文末有小礼物!

**

希望此次分享能够帮助小伙伴们,按照当前文章可自主搭建APP自动化测试环境和实现计算机控制模拟器APP执行操作!

(一)环境依赖(jdk、sdk)

  1. 安装jdk(地址):jdk下载地址→https://www.oracle.com/cn/java/technologies/downloads/archive/

在这里插入图片描述
2. jdk系统环境变量配置 右键我的电脑或此电脑→属性→高级系统设置→环境变量→在系统变量下新建(JAVA_HOME)变量值为jdk安装的路径名→点击确定→在系统变量中找到path双击 →将(%JAVA_HOME%\bin)添加到path中

在这里插入图片描述
检查jdk是否安装成功:java -version 出现下面类似的信息代表jdk安装成功

在这里插入图片描述

  1. 安装SDK:SDK下载地址→https://www.androiddevtools.cn/在这里插入图片描述根据对应版本号下载所需SDK,使用模拟器时注意Android版本号要与SDK版本号对应
    4.SDK与jdk环境变量配置方式相同,最终需要将(%ANDROID_SDK_HOME%\platform-tools 和 %ANDROID_SDK_HOME%\tools 都加到path中)

    5.点击SDK Manager.exe (SDK Manager用来更新android sdk api,比如安卓系统出新系统,就需要更新这边sdk api版本(api和系统对应关系29=》10.0、30=》11.0、31=》12)在这里插入图片描述
    需要下载的工具:
    在这里插入图片描述
    在这里插入图片描述

(二)python+pycharm安装

  1. 安装python:python下载地址→http://www.python.org/download/
    点击图中的windows

在这里插入图片描述
选择需要下载的python,下载安装包

在这里插入图片描述
点击upgrade now,等待安装。

在这里插入图片描述

出现下面这个界面代表安装成功

在这里插入图片描述

配置python环境变量:将安装python的路径复制下来,放到path的环境变量中去
打开命令行窗口→win+R,出现以下信息代表配置成功

在这里插入图片描述
2. 安装pycharmhttps://www.jetbrains.com/pycharm/download/#section=windows

在这里插入图片描述
3. 找到下载PyCharm的路径,双击.exe文件进行安装,点击下一步

在这里插入图片描述
4.尽量不要选择带中文和空格的目录

在这里插入图片描述
5. 进入 Installation Options(安装选项)页面,全部勾选上。点击 Next,直至安装完成。(建议将…to the path勾选上,这样就省去了配置环境变量的过程)

在这里插入图片描述
配置解释器,点击settings,按照图中指示选择python解释器,我下载的是python3.8

在这里插入图片描述

(三)Appium安装

  1. Appium安装:https://github.com/appium/appium-desktop/releases

在这里插入图片描述 2.这就是appium的主界面了,点击Edit Configurations进行基础配置

在这里插入图片描述
3. 如果按照上面安装的步骤和操作的话,你的配置和我的配置是一毛一样的,如果没有配置系统环境变量的话,就需要手动填入所对应的路径地址了。

在这里插入图片描述

(四)夜神模拟器安装

  1. 夜神模拟器安装:https://www.yeshen.com/

在这里插入图片描述

(五)adb命令验证设备连接成功

1.**adb devices** ---查看是否连接到设备
如果出现如下情况,按照图中操作即可:
在这里插入图片描述
2.获取包名的命令:
可直接获取到正在运行的APP包名:

adb shell dumpsys window | findstr mCurrentFocus

(六)真机连接以及相关基础操作

1.找到手机版本号,多次点击进入开发者模式,进入开发者选项,将USB调试模式打开(如果都打开了还是检查不到设备,需要将连接改为USB传输文件格式)

在这里插入图片描述
在这里插入图片描述

2.使用adb devices命令查看手机连接情况

在这里插入图片描述

3.使用adb命令安装apk以及卸载软件

(1)安装APP
adb -s 设备名 install apk的路径

(2)卸载APP
获取APP包名,运行安装的APP,在命令行进入shell环境,adb -s 设备名 shell
进入命令行后输入,dumpsys window | grep mCurrent
找到包名,输入以下命令卸载apk
获得所有应用的包名。adb shell pm list packages
adb -s 设备名 uninstall 包名
在这里插入图片描述

4.adb相关命令

(1)获得包名和活动页信息
打开APP,进入shell环境,输入命令dumpsys window | grep mCurrentFocus
可直接获取到运行的APP包名和活动页信息
在这里插入图片描述
(2)直接打开上述查询到的活动页
在shell环境内输入,am start -n com.tencent.mm/com.tencent.mm.ui.LauncherUI

(3)清空当前APP缓存。adb shell pm clear 包名

(4)传输文件
adb push 电脑路径 手机路径
adb pull 手机路径 电脑路径

理解:以电脑为对象,推送时从电脑推送,拉取文件时想从哪拉取,当前解释为第一个路径位置

(5)adb命令查看日志
V - 明细 verbose (最低优先级)
D - 调试 debug
l - 信息 info
W - 警告 warn
E - 错误 error
F - 严重错误 fatal
S - 无记载 silent (最高优先级,绝不会输出任何内容)

adb logcat 打印默认日志数据
adb logcat -v tims 打印时间
adb logcat -v color 使用不同的颜色来显示每个优先级
adb logcat -f 将日志输出到文件
adb logcat > log.log 保存日志到PC上
adb logcat -c 清理已存在的日志

(6)查看性能指标
adb shell dumpsys cpuinfo 查看CPU的占用情况
adb shell dumpsys meminfo 查看系统内存占用情况
adb shell top | findstr “包名” 查看某个软件的性能指标

(7)adb+monkey
adb -s 001 127.0.0.1:62001 shell monkey -p com.ulang.jjk
–pct-touch 60 --pct-motion 20 --pct-majornav 10 --pct-anyevent 10
-s 12 --throttle 500
–ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes
-v -v -v 100 > D:\jjk_monkey1.txt
指定一个APP执行压力测试,延时操作300毫秒

(常用事件)

命令解释
–pct-touch触摸、点击屏幕
–pct-motion滑动(一般是直线滑动,途经若干个坐标点)
–pct-trackball无规则的轨迹球滑动(曲线滑动)
–pct-syskeys系统级事件,系统按键,比如Home键、音量键、Back回退、Menu菜单键、下拉通知栏
–pct-nav方向导航事件,比如光标上移
–pct-majornav主要导航事件操作,比如应用中的菜单选项,返回按钮(虚拟键操作)
–pct-appswitchApp切换窗口,比如应用内部窗口切换、应用之间的窗口切换
–pct-flip键盘事件,比如键盘弹起、收回
–pct-anyevent其它事件
–pct-pinchzoom缩放事件,比如多指触控 放大、缩小
–ignore-crashes忽略崩溃
–ignore-timeouts忽略超时(由于未响应)
–ignore-security-exceptions忽略安全异常
–monitor-native-crashes监控本地崩溃代码
–ignore-native-crashes忽略本地崩溃

根据关键词查找分析日志,关键词:
anr(应用无响应)、crash(崩溃)、exception(异常)、error(错误)、GC(内存异常:内存溢出-GC Error 内存空间满了,空间回收不及时)、force_closed(强制退出)…

(七)实现用代码控制APP

from time import sleep
from appium import webdriver

# 连接移动设备必须的参数
desired_caps = {}
k = 1    #不清楚为什么要加k=1,去掉的话你就发现还是加上比较好
# 当前要测试的设备名称
desired_caps["devicename"] = "127.0.0.1:62001"
# 要启动的APP的包名
desired_caps["appPackage"] = "com.android.settings"   #设置的包名
# 要启动APP哪个页面
desired_caps["appActivity"] = ".Settings"    #设置界面
# 操作系统
desired_caps["platformName"] = "Android"
# android系统的版本
desired_caps["platformVersion"] = "5.1.1" 

driver = webdriver.Remote(command_executor="http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_caps)

sleep(3)

driver.close_app()
driver.quit()

问题记录:
1.在pycharm中run显示–Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
有可能是appium未打开的结果

2.如果出现–AttributeError: can’t set attribute
可能是忘记安装appium-python-client
命令是:pip install appium-python-client

3.如果一直报5037端口、500错误,大多数都是模拟器的手机版本和SDK版本不一致导致的,将SDK中的adb.exe文件复制到夜神安装目录中,注意要将夜神中的nox_adb.exe文件内容也要换成SDK中adb文件的内容。

看到这里,也算有缘!最后送小伙伴们一张原创的电脑壁纸吧!加油!

                                   --等风,也等你--

像疯一样

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像疯一样!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值