【L1.第四章】 Appium Inspector 自动化用例录制

1、Appium Inspector 是什么?

Appium Inspector 是 Appium 的一个工具,用于帮助开发人员和测试人员分析和调试移动应用程序。它提供了图形界面和交互式的功能,使您能够轻松地检查应用程序的 UI 元素、获取元素属性、执行操作和生成自动化测试脚本。

在这里插入图片描述

2、Appium Inspector 主要功能有那些?

  • 元素定位和查看:Appium Inspector 允许通过简单的点击来选择和定位应用程序中的 UI 元素。可以直接在应用程序界面上点击元素,然后 Inspector 会显示元素的属性信息,如 ID、类名、文本内容等。这样就可以轻松地确定元素的定位策略和属性,用于后续的测试脚本编写。

  • 执行操作:Appium Inspector 提供了一些操作按钮,可以模拟用户在应用程序上的操作。例如可以点击按钮、输入文本、滑动屏幕等。这样可以验证应用程序的交互和功能。

  • 自动化脚本生成:Inspector 还具有自动化脚本生成功能,可以根据用户在应用程序上的操作生成相应的自动化测试脚本。这样可以快速生成测试脚本的起点,然后进行进一步的定制和扩展。

  • 元素搜索和筛选:Inspector 提供了搜索和筛选功能,可以找到特定的 UI 元素。可以使用属性值、文本内容等条件来搜索和筛选元素,从而快速定位到目标元素。

3、Appium Inspector 配置 Desired Capablility 信息

在这里插入图片描述

1、获取被测 App 信息

配置 Desired Capabilities 需要获取被测 App 的包名与启动 Activity 名。可以按照以下命令获取。

第一种方式:依次执行以下三条命令,通过需要找的软件名称执行 monkey 命令,得到具体页面的 Activity。

# 找到当前设备里所有的软件
adb shell pm list packages

# 根据关键词 筛选出需要找的软件的包名
# MacOS
adb shell pm list packages | grep "软件名"
# Windows
adb shell pm list packages | findstr "软件名"

# 在指定的应用程序上执行一个 Monkecy 测试事件,并输出详细的日志信息
adb shell monkey -p "包名" -vvv 1
#     // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=io.appium.android.apis/.ApiDemos } in package io.appium.android.apis

第二种方式:打印并筛选 adb 的日志,等待日志刷新结束,重新打开需要测试的 APP,即可得到 package 和 activity。

# Mac
adb logcat ActivityManager:I | grep "包名"
# Windows
adb logcat ActivityManager:I | findstr "包名"

2、验证 Activity

使用 adb 启动应用命令,验证获取到的包名和 Activity 是否可以成功启动被测应用。

adb shell am start -W -S -n 包名/.ApiDemos

Stopping: 包名
Starting: Intent { cmp=包名/.ApiDemos }
Status: ok
Activity: 包名/.ApiDemos
ThisTime: 437
TotalTime: 437
WaitTime: 452
Complete

命令中的 -S 代表先停止目标应用,再启动;-W 代表展示启动时间信息。
可以成功启动,代表包名与启动 Activity 正确无误。

3、配置 Remote Path

Remote Path:/ & /wd/hub
Remote Host:127.0.0.1 & 服务器IP地址
Remote Port:4723 & 自定义端口号

在这里插入图片描述

跟 Appium Server GUI 中的配置对应,分别为 IP、端口和地址,其中地址默认配置 /wd/hub 即可。

IP 如果是本机就配置 127.0.0.1,如果 Appium Server 和 Appium Inspector 不是同一台机器,那么就需要配置 Appium Server 所在机器的 IP(Appium Server GUI 的 HOST 也需要配置本机 IP,不能配置为 0.0.0.0)。

4、配置 Desired Capablility

初始化参数(Capability)是 JSON 数据类型编码的键和值,当一个新的自动化会话被请求时,Appium 客户端发送此参数到服务端。用来告诉 Appium 驱动程序做哪些特定的测试。通过设置参数可以传递给 Appium Server 对应的配置信息。

4.1、设置 Capablility

  • platformName(必填):平台,Android/iOS
  • appium:automationName(必填):驱动:uiautomator2/XCUITest
  • appium:deviceName:设备名
  • appium:appPackage:应用的包名
  • appium:appActivity:应用启动 Activity 名
{
   "platformName": "android",
   "appium:automationName": "uiautomator2",
   "appium:deviceName": "设备名",
   "appium:appPackage": "应用的包名",
   "appium:appActivity":"Activity 名"
}

4.2、保存 Capablility

如果要保存当前的 Desired Capabilites 配置,可以点击 Save as 按钮,然后在弹出的框中输入名字,就可以保存成功了。
这样重启 Appium Inspector 后,下次直接选择保存的配置就可以,不需要重新输入配置信息。

Attach to Session

如果 Appium 已经有连接到手机的 Session ,那么直接选择 Session ID,加入即可,不需要再进行配置。

4.3、启动 Session

配置好 Capablility 后,点击 Start Session 按钮,即可启动 Session,进入 Inspector 页面。

在这里插入图片描述
在这里插入图片描述

4、Appium Inspector 基础功能详解

  • Native App Mode:原生态 APP 模式。
  • Web/Hybrid App Mode:Web 和混合模式移动应用。
  • Select Elements:选择元素。
  • Swipe By Coordinates:通过坐标点滑动。
  • Tap By Coordinates:通过坐标点点击。
  • Back:返回按键。
  • Refresh Source & Screenshot:刷新按钮,同步移动端页面。
  • Start Recording:录制按钮。
  • Search for element:搜索定位表达式。
  • Quit Session & Close Inspector:退出当前 Session。
    在这里插入图片描述

Native app mode:原生态 APP 模式,点击此按钮定位原生态元素。

Web/Hybrid App mode:Web 和混合模式移动应用,有 web view 时需要定位元素需要选择此按钮。

查看元素:当想要查看某一元素时,点击如下图“选择元素”按钮,然后在屏幕截图中点击要查看的元素,最后在最右侧区域可以看到元素的 xpath、id 等定位元素。

滑动坐标:点击如下“滑动坐标”按钮,即可在屏幕截图上进行滑动操作

点击坐标:点击如下"点击坐标点"按钮,即可在屏幕上进行坐标点击操作跟直接操作手机一样了。注意此功能和选择元素按钮互斥,两个只能选一个。

回退按钮:相当于手机的返回键。当我们想要查看返回上一个操作查看页面信息,可以通过点击“返回”按钮。此时 Inspector 窗口和手机都会同时回到上一个操作的界面。(等同于 android 手机上的返回键)。

刷新按钮:刷新按钮,当我们在手机上对 APP 进行操作后,Inspector 窗口的屏幕截图不会自动更新,需要我们通过点击“刷新源和屏幕截图”按钮,更新应用的最新页面。

用例录制:录制按钮,点击此按钮后可以进行录制。当我们想知道如何编写操作界面的代码时,可以点击“录制”按钮,然后对屏幕截图进行操作,即可以实现操作的代码录制功能,非常实用。注意的是录制时,需要使手机页面变成可操作状态。

搜索定位表达式:根据 ID 或 Xpath 定位元素,检测表达式是否正确。选择一个属性 id(resource-id)、name(text)、xpath、className(class) 等。输入属性对应的值,点击 Search,即可搜索到界面对应元素的按钮。

退出 Session:退出当前 Session,点击后返回到 Appium Inspector 的 Start Session 页面。

4.1、元素定位与查看

同步到移动端页面后,点击 Select Elements 按钮进入选择元素模式。
点击页面元素后,即可查看元素源码和元素的属性信息。
在这里插入图片描述

4.2、查看页面源码

在 App Source 界面中,可以查看当前选中的元素在的源码,以 XML 树的形式,展示界面上的控件布局。

在这里插入图片描述

对于源码,可以进行如下操作

  • 复制页面源码
  • 下载页面源码

4.3、查看元素属性

在 Selected Element 界面中,可以查看当前选中元素的详细属性信息。
做自动化测试需要定位元素,就需要用到元素的这些属性信息。
对于选中的元素还可以进行操作:

  1. 点击:选择一个元素后,还可以“点击”元素,当您使用一个元素执行 Tap 操作时,Inspector 将发送命令到 Appium,它将执行它。如果操作成功,左侧将生成一个新的屏幕截图,您将看到应用程序的更新状态和 XML。如果不成功,您看到错误消息。

  2. 输入文本:选择一个元素后,还可以“发送内容”到元素(前提:它是一个输入框 EditText)。同样 Inspector 将发送命令到 Appium 执行它。

  3. 清空文本:选择一个元素后,还可以对元素“清空内容”(前提:它是一个输入框 EditText)。同样 Inspector 将发送命令到 Appium 执行它。

  4. 复制元素属性:可以将元素属性以 JSON 格式保存到粘贴板。

5、使用 Appium Inspector 例录制自动化用步骤

  • 点击 Start Recording 按钮进入录制状态
  • 在同步过来的界面中选择元素
  • 在 Selected Elements 界面中进行操作
  • 测试操作结束后点击 Pause Recording 结束录制
  • 在 Recorder 界面展示录制脚本
    在这里插入图片描述

录制自动化测试步骤:

  • 打开 API Demo 应用
  • 点击 OS,进入下个界面
  • 点击【Morse Code】
  • 输入内容【ceshiren.com】
  • 返回上一个页面
  • 返回上一个页面
  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Appium自动化测试用例可以通过使用Appium Inspector进行录制和生成。首先,需要配置待测应用并连接移动设备成功后,在Appium Inspector中点击录制按钮开始录制用例。在录制过程中,可以通过点击操作选中元素,并进行相应的操作,如点击、输入等。录制完成后,可以生成用例脚本。\[3\] 生成的用例脚本可以包含以下内容: - 使用driver.find_element方法找到元素,并使用相应的操作方法进行操作,如点击、输入等。例如:el1 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="OS") el1.click() - 可以对生成的用例脚本进行优化,添加capability信息、初始化webdriver、添加setup和teardown、添加隐式等待和noReset属性等,以增强用例的稳定性。\[3\] 此外,还可以添加断言来验证测试结果的准确性。通过添加断言,可以判断测试过程中的期望结果是否与实际结果一致,从而判断测试用例是否通过。\[3\] 总结来说,Appium自动化测试用例可以通过使用Appium Inspector进行录制和生成,然后可以对生成的用例脚本进行优化和添加断言来增强用例的稳定性和准确性。 #### 引用[.reference_title] - *1* *2* *3* [【App自动化测试】(三)使用Appium进行自动化用例录制](https://blog.csdn.net/gjj920318/article/details/127996223)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一禅(OneZen)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值