写点什么

软件测试 | 录制 Appium 测试用例

  • 2023-02-17
    北京
  • 本文字数:2623 字

    阅读完需:约 9 分钟

Appium 是一款运行于 Windows 和 linux 等平台上的开源工具,它提供了 AppiumServer、Appium Inspector 以及相关的工具组合。Appium Desktop 是 Appium 包含的一个图形界面应用,我们在其界面上可以进行设置选项、启动/停止服务器、查看日志等操作。使用 Appium Inspector 可以查看 App 程序内的元素,并可进行基本的页面交互,以及可以录制测试脚本等操作。

1.下载及安装 Appium Desktop

用户在 GitHub 网站上下载与自己计算机系统对应的 Appium 版本,安装 Appium Desktop 之后,启动 Appium Desktop,然后在其界面上点击 “Start Server” 按钮,启动 Appium Server。


在启动 Appium Server 成功页面上点击右上角的放大镜,进入到创建 Session 页面,在这个页面上配置好 desirecapability 信息之后,点击 “Start Session” 项启动会话后展示出图 5-2 所示的页面—Appium Inspector 元素定位页面,该页面包括的内容介绍如下。


左侧为屏幕快照:可以在左侧使用鼠标选择 UI 元素,会看到被选择的 UI 元素高亮显示。


中间为页面 DOM 树结构:在 App 结构中会直接将元素的属性值标记在树结构上,这对于用 Appium 定位 App 元素很方便。


右侧为 App 元素的详细信息:当 App 元素被选中,右侧会展示出 App 元素的鲜呼吸属性信息列表。这些属性将决定测试人员定位 Appium 元素的策略。


另外,Appium Inspector 还提供了页面刷新,页面操作,录制,元素的点击、输入等功能。

2.Appium 自动化测试用例录制

Appium Inspect 提供了定位元素与录制用例的功能,使用 Appium Inspect 可以查看 App 的 UI 布局结构,方便脚本的编写和生成。下面以 Android 系统为例。在 Android 模拟器上安装 ApiDemos-debug.apk 应用。


测试 App 下载地址:

https://GitHub网站/appium/sample-code/raw/master/sample-code/apps/ApiDemos/bin/ApiDemos-dubug.apk
复制代码


现在该 App 的 apk 格式文件并安装到测试设备上,然后我们基于该 App 进行自动化测试演示。

在录制测试用例(脚本)前先启动装有该 App 的测试设备,并且通过命令行查看该设备已与计算机连接成功。使用下面的命令查看设备是否连接成功。


$ adb devices
复制代码


若展示出下面的内容,即说明设备已连接。


List of devices attachedemulator-5554   device
复制代码


展示的内容中,“emulator-5554” 代表设备的名称,“device” 代表设备的状态,说明设备已连接。如果是其他状态,需要重新连接设备,或者在设备上检查是否开启开发者模式及打开 USB 调试模式。

3.获取 App 包名和页面名称

移动端的包名(也就是 Package)作为每个 App 的唯一标识,每个 APP 都有自己的 包名,且每个设备上相同的包名的 APP 只允许安装一个。


Activity 是 Android 组件中最基本,也是最常见的四大组件之一,可以把它理解为一个页面就是一个 Activity。在移动端设备打开一个 App 的页面,在操作 App 页面的时候会发生页面的跳转,也就是 Activity 之间发生了切换。在编写测试脚本之前,我们首先要获取 App 的包名以及启动页的 Activity 名字。


获取包名的操作步骤如下。


(1)打开终端,进入 aapt 工具所在的目录(Android SDK 下的 build-tools 目录)。


(2)输入命令'aapt dump badging[App 名称].apk'。


aapt dump badging [app名称] .apk
复制代码


运行结果(见图 5-3).


图 5-3 中 “package:name” 对应的结果是包名,“launchable-activity:name” 对应的结果是 “包名+页面名”。但是有些应用通过 aapt 工具无法获取到页面名称。


针对这个问题,可以通过命令的方式来获取页面名称等消息,在命令行中输入如下命令(macOS/Linux 系统)即可:

4.测试用例录制

(1)启动 Appium Server


使用 Appiuim Inspector 录制测试用例,首先需要启动 Appium,在启动页面点击 “ Start Sever”项,会出现图 5-5 所示的界面。


(2)打开 Appium Inspect 工具


点击右上角放大镜按钮,跳转到新的页面,界面如图 5-6 所示。

Appium Inspector 是探测器工具,我们通过给它设置相应的参数,用它可以分析移动端 App 的界面,还可以使用它录制测试用例,也可以用它导出多种语言版本的测试用例(脚本)。

(3)配置 Desired Capabilites 信息(见图 5-7)


下面介绍一下图 5-7 中配置项的用处。


1)platfromName:使用哪个移动操作系统平台,这里可以填 Android、iOS 以及 FirefoxOS


2)deviceName:录入使用的移动设备或模拟器,这里可以随便填,但必须得有此项


3)appPackage:录入你要启动的 android 应用程序包,我们填“io.appium.android.apis”


4)appActivity:录入 App 启动的首个 Activity,我们填“.ApiDemos”或者“io.appium.android.apis/.ApiDemos”


(4)启动 Session


在图 5-7 中点击 “Start Session” 按钮,录制测试用例(脚本)。


Appium 的初学者可以通过录制功能,将测试用例录制出来,通过录制出来的测试用例,可以分析和了解录制操作使用的 API 以及测试用例编写规范等。


点击 “Start Recording” 按钮(小眼睛图标)开始录制测试用例,如图 5-8 所示。


在开始录制测试用例的界面左侧,选择被测 App 的页面元素,在右侧选择对页面元素要做的操作,如图 5-9 所示。


利用图 5-9 所示的 1 步和 3 步组合,就可以实现对 App 的测试操作。例如,在页面左侧用鼠标点击 “Views” 项,在右侧出现一些选项卡,再点击 “Tap” 选项卡,这时(如果开启了录制功能)就会将这步是操作自动录制生成一段代码,如图 5-10 所示。


默认生成的测试用例(脚本)为 Java 语言格式,如果想生成其他语言格式的测试用例(脚本),只要在图 5-10 中的语言选择框点击下拉栏选择相应语言选项即可,如切换成 Python 语言。


把上述操作生成的测试用例(脚本)复制到编辑器中,这是可以运行的代码,具体如下


from appium import webdriver
caps = {}caps["platformName"] = "android"caps["deviceName"] = "demo"caps["appPackage"] = "io.appium.android.apis"caps["appActivity"] = ".ApiDemos"caps["autoGrantPermissions"] = "true"driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
el2 = driver.find_element_by_id("tv.danmaku.bili:id/expand_search")el2.click()el3 = driver.find_element_by_accessibility_id("搜索查询")el3.send_keys("霍格沃兹测试学院")driver.quit()
复制代码


上面是录制出来的测试用例(脚本)。录制生成的代码在使用前需要手动优化,在代码中添加必要的单元测试框架(如 pytest),以便使代码的运行更高校。代码录制对刚入门的人来说还是比较实用的,但是它的缺点很明显:


1)所有的代码都在一个文件里,显得代码非常冗余;


2)不能解决工作中大部分的测试场景。


搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核

用户头像

社区:ceshiren.com 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | 录制Appium测试用例_测试_测吧(北京)科技有限公司_InfoQ写作社区