凌晨三点,你手机上的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 versionAndroid Debug Bridge version 1.0.32Revision 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 devicesList of devices attached127.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」可免费获取。
本公众号的全部文章以整理成目录,后台回复「目录」可查看所有文章。
凌晨三点,你手机上的APP在自动签到相关推荐
- 对安卓手机上的APP做monkey压力测试
之前对安卓手机上的APP做了monkey测试,今天来总结一下如何使用安卓自带的monkey命令去做测试. 首先,PC端要对安卓手机进行monkey测试的话,必须要有以下条件: 1.电脑中必须配有ADB ...
- Android Studio项目打包生成可安装在自己手机上的App安装包文件
点击上方"码农的后花园",选择"星标" 公众号 精选文章,第一时间送达 Android程序开发完后,如果要发布在互联网上供别人使用,就要将自己的程序打包成And ...
- 用JS任意控制手机上的APP
用JS控制手机上的APP 1. 控制代码 可以用如下简单的JS代码,控制手机上的第三方APP的行为,实现自动测试等功能 再加上流行的UI交互,可以快速做成牛皮的自动化工具 开源文档:RobotJS文档 ...
- 在andriod手机上video视频播放时自动置顶自动全屏的问题
问题:h5开发人员在做直播的时候,会发现视频在播放的时候会置顶,文字什么的根本加不上去 查了很多资料,有人说用样式层级方法,有人说用canvas画布来实现,反正我是没实现 也查看了各大视频APP分享到 ...
- 手机上的APP是如何与服务器通信的
文章转自本人公众号:机械猿,本人之前在四川某汽轮机从事结构强度设计,目前在阿里巴巴淘宝事业部担任高级开发工程师,有机械工程同行想转行IT,或者有想入职BAT的可以找我内推~ 絮叨 讲解CS通信之前,先 ...
- 苹果手机利用itune和手机上的app电脑互传数据
苹果手机可以利用APP和电脑互传数据.
- android UiAutomator一个在京东app里面自动签到领流量的方法
京东app里面有一个能签到领流量的功能,我几乎每天想起来就用一下,感觉挺好用的,但是近期京东流量口令实在找得令人心烦,故写了一个自动的方法,测试通过. clean();//清理后台 UiDevice. ...
- 手机上app测试总结
手机上的app分为基于HTML5的app(类似于pc上的b/S应用)和本地app(类似于C/S结构). 所以 测试上我们也可以充分吸收 web的b/s和c/s测试经验.但是不同于pc上的应用测试 ...
- 华为鸿蒙系统有望搭载手机上吗,华为智选车载智慧屏将12月上市:有望搭载鸿蒙系统...
日前在华为Mate40系列发布会上正式发布了华为智选车载智慧屏,不过由于时间限制,华为并没有过多的透露该产品信息. 11月5日,华为在深圳举办"2020华为智选品鉴会"上宣布,华为 ...
最新文章
- 姚班学霸蝉联第一,清华再霸榜,湘潭大学表现亮眼,第四届 CCF CCSP落下帷幕...
- 清除浏览器缓存之后为什么还是显示旧的html页面_H5缓存机制浅析-移动端Web加载性能优化...
- Lucene--FuzzyQuery与WildCardQuery(通配符)
- [云炬ThinkPython阅读笔记]1.6 形式语言和自然语言
- django3.2.8使用simpleui注意事项
- C语言编译器不检查数组下标越界
- ios怎么创建html文件夹,ios 创建html文件
- 是该为硬核创新的寒武纪说句公道话了
- 配置Mac自带的Apache http服务器
- Atitit webdav的使用与配置总结attilax总结 目录 1. 支持的协议	2 1.1. http File unc	2 2. 应用场景	2 2.1. 远程文件管理实现功能 文件建立
- Oracle临时表GLOBAL TEMPORARY TABLE
- python可以用于工业机器人编程与操作_工业机器人用什么语言编程?
- Ubuntu下安装QQ(wineQQ)
- Visio2016 层次方框图
- Python常用模块13-python的cx_Oracle模块
- 2020-04-13
- List.toArray
- javascript彩色喷泉
- 各种水果使用套袋的材料选择
- 【Elasticsearch】基本操作
热门文章
- python读取rtsp流_python cv2读取rtsp实时码流按时生成连续视频文件方式
- mysql从删库到坐牢_刷机越狱也有后悔药 苹果iOS8.3、iOS8.4 入狱完整教程
- linux 图片 ascii,asciiviewer - 将图像转换为ASCII艺术
- BGRABitmap图像操作8:生成纹理,基本的Perlin噪声地图
- 转修改TM2013聊天记录保存目录final版
- flutter dart list 遍历数据
- 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据
- 软件项目业务外包之路——起点
- 2019高考数学理科Ⅱ卷解析版[解答题]
- SQLServer 计算两个日期间的工作日(排除周六和周日,不排除节假日)