凌晨三点,你手机上的APP在自动签到

点击上方蓝色文字,选择"置顶公众号"

第一时间关注 Python 技术干货!

阅读文本大概需要 5 分钟。

前两篇文章讲到了自动化框架 RF 的搭建和自动化操作你的浏览器。还没上车的戳下面查看。

Python自动化测试入门,看这一篇就足以

Python自动化操作浏览器,解放双手,这感觉真爽

如今是智能手机的时代,我们工作和生活中的大部分都伴随着 APP,APP 给我们的生活的带来了便利。工作中有些公司的 APP 产品需要自动化测试。生活中,你是不是经常忘记在有些 APP 上签到或者薅羊毛,今天 pk 哥就教你怎么自动化操作你的 APP。

下图是效果动态图,我用脚本启动了安卓模拟器中的 APP 并进行签到操作。

内容概要
  • 初识 adb 命令

  • 安卓模拟器安装

  • Appium 安装和启动

  • 第三方库appiumlibrary安装

  • 自动化打开APP签到

初识 adb 命令

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。

为什么需要用 ADB 命令,因为我们需要知道电脑是否正常连接上了手机或其他移动端设备。

本次需要用到的简单命令如下:

1、查询已连接设备/模拟器命令:

adb devices

2、启动 adb server 命令:

adb start-server

一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。

3、停止 adb server 命令:

adb kill-server

adb 命令安装包下载地址:

http://adbshell.com/downloads

下载 ADB Kits (525 KB) 并把 adb.exe 路径配置到环境变量 path 中。

通过命令来验证 adb 是否安装成功,显示 adb 的版本表示 adb 命令正常可用。

C:\Users>adb version
Android Debug Bridge version 1.0.32
Revision eac51f2bb6a8-android
安卓模拟器安装

为了方便,这次我选择的安卓模拟器,安卓模拟器可以让手机应用程序运行在电脑上的软件,它能在电脑上模拟安卓手机系统。对于安卓移动端的自动化,在没有真机的情况下,用模拟器还是比较好的。当然你也可以通过数据线连接你的真实移动设备。

模拟器连接电脑步骤如下:

1、右键桌面模拟器图标,选择属性,查看模拟器安装路径并复制该路径。

2、cmd 窗口或者 mac 的 Terminal 下输入以下命令,如显示 already connected to 127.0.0.1:62001表示连接成功,命令中的端口是可以变的,不要和其他的冲突就行了。(左右滑动查看全部)

E:\软件安装\夜神\Nox\bin>nox_adb.exe connect 127.0.0.1:62001.
already connected to 127.0.0.1:62001

3、输入adb devices 命令检查下,如果连接的列表中有刚才的设备表示已连接成功。(左右滑动查看全部)

E:\软件安装\夜神\Nox\bin>adb devices
List of devices attached
127.0.0.1:62001 device
Appium 安装和启动

操作移动端 APP,我们得需要安装一个工具,这个工具叫 Appium,什么是 Appium 呢?

Appium 是一个自动化测试开源工具,支持 iOS 和 android 平台上的移动原生应用、移动 Web 应用和混合应用。Appium 是一个跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。

1、在 Appium 官网下载并安装 appium。

http://appium.io/

2、打开 appium 进行相应配置,安卓设备设置和基本设置两个页面,配置内容见图中圈起来的部分。

设置完成后点击右上角启动按钮启动 Appium。

出现 debug 信息表示启动成功,启动失败的话会有报错信息。

安装 SDK

已安装 SDK 的可以跳过,安装前确认电脑有 Java 环境,否则先安装 Java,Java 环境安装好后,如果忘记了 SDK 的位置,可以通过下面命令来查看。

set | findstr /I android


在路径中找到 SDK Manager 可执行文件,双击打开后进行如下配置。

1、在 SDK Manager 最上方的工具条中找到 tools 打开进入 options。(左右滑动查看全部)

(1)在 HTTP Proxy Server 中填 mirrors.neusoft.edu.cn

(2)在HTTP Proxy Port中填 80

(3)勾选 Others 下的  Force 和 Enable 这两个选项

2、在 SDK Manager 中勾选 tools 下的 android SDK tools 和 Android SDK Platform-tools 这两个选项,点击下方 Install xx packages。等待安装。

3、添加环境变量,path 的末尾添加  SDK 安装路径和 SDK 安装路径 /platform-tools,这两个路径都添加好。

第三方库appiumlibrary安装

安装第三方库 appiumlibrary,用 pip 命令进行安装。

pip install robotframework-appiumlibrary

在 Pycharm 解释器中安装这个包,在 Library 导入这个库。

*** Settings ***
Library           AppiumLibrary

库名书写注意大小写,不然会报错。

自动化打开APP签到

为了方便,这次我选择的移动端是安卓模拟器,我在「夜神」安卓模拟器上装了「有道云笔记的」APP。

我们先要获取我们需要启动的 APP 的信息,包括 appPackage 和 appActivity,我们打开这个 app 的同时,终端下输入以下命令定位当前的 Activity 即可查看,以下是我打开模拟器上 app 输入命令时获取的信息。(左右滑动查看全部)

C:\Users>adb shell dumpsys activity | findstr "mFocusedActivity"
  mFocusedActivity: ActivityRecord{4a94fa00 u0 com.youdao.note/.activity2.SplashActivity t8}


以上信息前部分 com.youdao.note 为 appPackage,整个部分但是需要去掉「/」为 appActivity:com.youdao.note.activity2.SplashActivity。

信息获取了,我们就用 AppiumLibrary 库中的启动 APP 的方法 Open Application 来打开对应的 APP。

我来解释下这个关键字的后面的主要参数的含义:

  • http://localhost:4723/wd/hub:Appium所在的url路径(这里appium搭建在本机,所以url格式固定不变)

  • platformName:被测的平台名称,Android或ios。

  • deviceName:设备名称,即运行得模拟器或真机的设备型号。

  • appPackage:app 的包名。

  • appActivity:app 的 activity 名。

启动之后我们需要定位 APP 中元素的属性,上篇文章中浏览器可以用自带的工具,定位 APP 我们可以用 SDK 中自带的 uiautomatorviewer 工具,这个工具我的部分路径是 Android\android-sdk\tools\uiautomatorviewer.bat。

启动之后点击捕捉页面按钮就可以获取页面元素属性了。

我们还是和之前说的原则一样,有 id 属性就用 id 来定位。点击元素还是用的 上篇文章讲到的  Click Element 方法。这样你的 APP 就会在你的脚本操作下进行指定的操作了。

如果,你真要做到凌晨三点自动签到的话,你需要借助集成工具 jenkins,这个集成工具可以设置自动执行脚本的时间。这个工具下次再给大家详细讲解。

今天的内容配置项比较多,demo 的脚本不多,如需要脚本的话,在公众号后台回复「app」获得脚本

今天的内容就分享到这里,希望对你有帮助,祝进步!

「pk哥」以梦为马,不负韶华

长按识别二维码关注

觉得不错,点赞、赞赏、转发都是一种支持。

欢迎点击下方小程序给 pk哥留言

推荐阅读:

Python爬取微信,我发现了之前没发现的秘密!

Python爬虫下载喜马拉雅音频文件

自从会了Python之后,我就没用过PS了!3秒带你将照片变成素描图片!

Python图形用户界面GUI入门

Python自动化测试你觉得有必要学吗?

大量 IT 资源免费送,包括但不限于 Python、Java、人工智能、PMP,等等,在公众号内回复「1024」可免费获取。

本公众号的全部文章以整理成目录,后台回复「目录」可查看所有文章。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值