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

第一时间关注 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在自动签到相关推荐

  1. 对安卓手机上的APP做monkey压力测试

    之前对安卓手机上的APP做了monkey测试,今天来总结一下如何使用安卓自带的monkey命令去做测试. 首先,PC端要对安卓手机进行monkey测试的话,必须要有以下条件: 1.电脑中必须配有ADB ...

  2. Android Studio项目打包生成可安装在自己手机上的App安装包文件

    点击上方"码农的后花园",选择"星标" 公众号 精选文章,第一时间送达 Android程序开发完后,如果要发布在互联网上供别人使用,就要将自己的程序打包成And ...

  3. 用JS任意控制手机上的APP

    用JS控制手机上的APP 1. 控制代码 可以用如下简单的JS代码,控制手机上的第三方APP的行为,实现自动测试等功能 再加上流行的UI交互,可以快速做成牛皮的自动化工具 开源文档:RobotJS文档 ...

  4. 在andriod手机上video视频播放时自动置顶自动全屏的问题

    问题:h5开发人员在做直播的时候,会发现视频在播放的时候会置顶,文字什么的根本加不上去 查了很多资料,有人说用样式层级方法,有人说用canvas画布来实现,反正我是没实现 也查看了各大视频APP分享到 ...

  5. 手机上的APP是如何与服务器通信的

    文章转自本人公众号:机械猿,本人之前在四川某汽轮机从事结构强度设计,目前在阿里巴巴淘宝事业部担任高级开发工程师,有机械工程同行想转行IT,或者有想入职BAT的可以找我内推~ 絮叨 讲解CS通信之前,先 ...

  6. 苹果手机利用itune和手机上的app电脑互传数据

    苹果手机可以利用APP和电脑互传数据.

  7. android UiAutomator一个在京东app里面自动签到领流量的方法

    京东app里面有一个能签到领流量的功能,我几乎每天想起来就用一下,感觉挺好用的,但是近期京东流量口令实在找得令人心烦,故写了一个自动的方法,测试通过. clean();//清理后台 UiDevice. ...

  8. 手机上app测试总结

     手机上的app分为基于HTML5的app(类似于pc上的b/S应用)和本地app(类似于C/S结构). 所以 测试上我们也可以充分吸收 web的b/s和c/s测试经验.但是不同于pc上的应用测试 ...

  9. 华为鸿蒙系统有望搭载手机上吗,华为智选车载智慧屏将12月上市:有望搭载鸿蒙系统...

    日前在华为Mate40系列发布会上正式发布了华为智选车载智慧屏,不过由于时间限制,华为并没有过多的透露该产品信息. 11月5日,华为在深圳举办"2020华为智选品鉴会"上宣布,华为 ...

最新文章

  1. 姚班学霸蝉联第一,清华再霸榜,湘潭大学表现亮眼,第四届 CCF CCSP落下帷幕...
  2. 清除浏览器缓存之后为什么还是显示旧的html页面_H5缓存机制浅析-移动端Web加载性能优化...
  3. Lucene--FuzzyQuery与WildCardQuery(通配符)
  4. [云炬ThinkPython阅读笔记]1.6 形式语言和自然语言
  5. django3.2.8使用simpleui注意事项
  6. C语言编译器不检查数组下标越界
  7. ios怎么创建html文件夹,ios 创建html文件
  8. 是该为硬核创新的寒武纪说句公道话了
  9. 配置Mac自带的Apache http服务器
  10. Atitit webdav的使用与配置总结attilax总结 目录 1. 支持的协议 2 1.1. http File unc 2 2. 应用场景 2 2.1. 远程文件管理实现功能 文件建立
  11. Oracle临时表GLOBAL TEMPORARY TABLE
  12. python可以用于工业机器人编程与操作_工业机器人用什么语言编程?
  13. Ubuntu下安装QQ(wineQQ)
  14. Visio2016 层次方框图
  15. Python常用模块13-python的cx_Oracle模块
  16. 2020-04-13
  17. List.toArray
  18. javascript彩色喷泉
  19. 各种水果使用套袋的材料选择
  20. 【Elasticsearch】基本操作

热门文章

  1. python读取rtsp流_python cv2读取rtsp实时码流按时生成连续视频文件方式
  2. mysql从删库到坐牢_刷机越狱也有后悔药 苹果iOS8.3、iOS8.4 入狱完整教程
  3. linux 图片 ascii,asciiviewer - 将图像转换为ASCII艺术
  4. BGRABitmap图像操作8:生成纹理,基本的Perlin噪声地图
  5. 转修改TM2013聊天记录保存目录final版
  6. flutter dart list 遍历数据
  7. 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据
  8. 软件项目业务外包之路——起点
  9. 2019高考数学理科Ⅱ卷解析版[解答题]
  10. SQLServer 计算两个日期间的工作日(排除周六和周日,不排除节假日)