Appium自动化测试最新详细入门教程

一.引言

        在移动应用自动化测试领域,Appium 是一款广受欢迎的开源工具,它允许测试人员使用多种编程语言对 iOS 和 Android 应用进行自动化测试,我们今天主要讲解Android应用。而 Appium Inspector 则是 Appium 生态系统中的一个重要组件,它为我们提供了可视化的界面,方便我们查看应用的 UI 结构、定位元素以及调试自动化脚本。

二.环境准备

1.安装Java 

        建议Java1.8或Java11版本。网上有具体安装教程,这里不做讲解。java -version查看。

2.安装Android SDK

        测试 Android 应用,需要安装 Android SDK。我是从 Android 开发者官网下载 Android Studio,安装过程中会自动安装 Android SDK,同时配置好环境变量。

3.Node.js 环境 

        安装命令行版本的 Appium Server 需要 Node.js 环境。建议使用版本不小于 18.0.0。确保正确安装 Node.js 以便启动 Appium 服务。Node.js下载官网,按照本机对应的操作系统下载,选择对应的安装路径,添加环境变量。

最后在命令行中验证:

        node -v         //显示node.js版本

        npm -v         // 显示npm版本

4.安装appium

        在命令行输入:npm install -g appium


        或者安装 Appium Desktop(GUI 版) Appium-Desktop官方下载

安装 Appium Doctor(环境检测工具):        npm install -g appium-doctor

检查Android环境是否完整:        appium-doctor --android  

保证没有红色error,如果有需要一条一条解决

部分warn可选择实际情况安装或者不安装工具

5.uiautomator2驱动安装

Appium对Android应用程序自动化的最大支持是通过Uiautomator2  driver实现的

命令行输入:appium driver install uiautomator2

 6.安装Appium Inspector

 官网下载

三.使用教程 

1.启动Appium Server

appium --base-path=/wd/hub

2.打开Appium Inspector

配置 Capabilities

在 Capability Builder 区域,我们需要填写一系列参数来指定测试设备和应用的相关信息。常见的参数如下:

  1. platformName:设备的平台名,对于 Android 设备,填写Android;对于 iOS 设备,填写iOS
  2. platformVersion:Android 内核版本号,可以通过adb shell getprop ro.build.version.release命令获取。
  3. deviceName:设备名,可以使用 ADB 命令adb devices -l获取设备的详细信息,其中包含设备名。也可以使用设备的序列号(udid)。
  4. appPackage:apk 的包名,在 Android 系统中是判断一个 App 的唯一标识。如果被测对象是自研的 APP,可以直接询问开发人员获取包名。也可以通过 ADB 命令获取,连接手机,打开想操作的 APP,在命令行中输入adb shell "dumpsys window | grep mCurrentFocus",命令输出结果中packageName后面的内容即为包名。
  5. appActivity:应用的启动 Activity,可以理解为启动名或启动页。获取方式与appPackage类似,使用上述 ADB 命令,输出结果中activityName后面的内容即为启动 Activity。
  6. noReset:可选参数,默认为false。如果设置为true,则在每次启动应用程序时不会重置应用程序的状态,例如不会清除应用数据、登录状态等。
  7. automationName:指定 Appium 使用的自动化测试框架的名称,对于 Android 设备,一般使用UiAutomator2,这是推荐的自动化引擎。

配置好 Capabilities 后,点击 “Start Session” 按钮,Appium Inspector 会尝试连接测试设备并启动指定的应用。

从图中我们发现Appium Inspector已经启动,下面再详细讲解一下里面的功能

Appium Inspector 的主要功能如下:

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

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

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

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

总之,Appium Inspector 是一个强大的工具,提供了图形界面和交互式的功能,帮助开发人员和测试人员在进行移动应用程序的 UI 分析、元素定位和自动化测试脚本编写时更加便捷和高效。

左侧 - 快照视图(Snapshot View)

显示应用程序的屏幕截图,我们可以在这个视图中直观地看到应用的界面。通过点击 “Select Elements” 按钮,然后在屏幕截图中点击要查看的元素,右侧的元素信息视图会显示该元素的详细信息,包括xpathindexpackageclasstextresource - id等。

中间 - 元素层次结构视图(Element Hierarchy View)

以 XML 格式展示应用程序的层次结构,通过单击树节点或者点击快照视图中的元素,可以导航这棵树,被选中的元素会在视图中突出显示。在应用层次结构中,元素的resource - id值会直接标记在树上,方便我们快速查看元素是否有唯一标识,这对于 Appium 定位元素非常有帮助。

右侧 - 元素信息视图(Element Information View)

当在快照视图或元素层次结构视图中选中一个元素时,这里会显示该元素的详细信息以及对该元素的潜在操作。例如:

  1. Tap:模拟点击操作。
  2. Send Keys:如果元素是输入框,可以使用这个选项来填写对应的内容。
  3. Clear:清除输入框中的内容。
  4. Copy Attributes to Clipboard:复制当前页面元素的属性信息到剪贴板。
  5. Download Screenshot:下载当前元素的截图。
  6. Get Timing:获取选中的元素响应所需的时长。

3.定位元素

如图,这就是我们的元素定位区域,我们可以通过xpath,resource-id定位

例如在Java中:

 driver.findElement(By.xpath("//android.widget.TextView[@text=\"Calculator\"]"));
 driver.findElement(By.id("com.rp.calculator:id/negative"));

这部分的功能区分别为Tap,Send Keys,Clear,Copy,Download Screenshot,Get Timing

4.录制自动化脚本

点击上方的Start Recording后

在预览画面中使用鼠标模拟用户操作,元素定位区实现点击,输入等效果。

操作完成后,点击Pause Recording结束录制 

完成录制后,点击Recorder查看录制的脚本。如图就是脚本的源代码。我们可以自行选择自动化测试框架

总结

        如上就是简单的入门操作。我们通过配置好环境,运行Appium server和Appium Inspector,这部分需要对安卓APP有一定的基础,了解adb命令。进入session后,我们就可以在Appium Inspector 中操作,我们可以模拟用户操作录制脚本,也可以查看脚本的源代码。Appium Inspector 为我们提供了便捷的可视化界面,帮助我们更好地理解应用的 UI 结构,快速定位元素,从而为编写高效的自动化测试脚本奠定基础。更多appium知识可以查看官方文档,学习更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值