APP自动化测试-robotframework框架做APP自动化测试

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

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

本文教大家用脚本启动了安卓模拟器中的 APP 并进行签到操作。

 

内容概要

  • 初识 adb 命令
  • 安卓模拟器安装
  • Appium 安装和启动
  • 第三方库appiumlibrary安装
  • 自动化打开APP签到

初识 adb 命令

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

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

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

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

2、启动 adb server 命令:

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

3、停止 adb server 命令:

adb 命令安装包下载地址:

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

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

安卓模拟器安装

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

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

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

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

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

Appium 安装和启动

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

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

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

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

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

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

安装 SDK

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

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

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

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

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

第三方库appiumlibrary安装

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

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

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

自动化打开APP签到

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

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

以上信息前部分 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哥原创,我在我的公众号: Python 知识圈 上会分享更多心得体会,你也可以关注。

***版权申明:本文为 Python知识圈 pyzhishiquan.com 原创,没有Python知识圈书面授权,请勿以任何形式转载,摘编,复制或镜像。***

为您推荐

发表评论

电子邮件地址不会被公开。