移动端测试之APP自动化测试框架 --- appium

APP自动化测试框架 --- appium

Appium 是一款流行的开源自动化测试框架,用于测试移动应用程序的用户界面(UI)和功能。它支持多种移动操作系统,包括 Android、iOS 和 Windows,以及多种编程语言,如 Java、Python、Ruby 等。Appium 提供了一系列 API 和工具,可以实现测试用例的编写、测试设备的管理、测试结果的记录和分析等功能,从而提高测试效率和测试质量。

Appium 的主要特点包括以下几个方面:

  1. 跨平台支持:Appium 支持多种移动操作系统和编程语言,可以运行在 Windows、macOS 和 Linux 等操作系统上。

  2. 开源免费:Appium 是一款开源自动化测试框架,在 Apache 2.0 许可下发布,可以免费使用和修改。

  3. 多种测试框架支持:Appium 支持多种测试框架,如 TestNG、JUnit、PHPUnit、RSpec 等,可以方便地与其他测试工具和框架集成。

  4. 多种测试类型支持:Appium 支持多种测试类型,如功能测试、UI测试、性能测试等,可以满足不同测试需求。

  5. 多设备支持:Appium 支持多种测试设备,包括真机、模拟器和云测试设备等,可以方便地管理和控制测试设备。

总的来说,Appium 是一款功能强大、灵活易用的自动化测试框架,可以帮助开发人员和测试人员快速、高效地测试移动应用程序的功能和界面,提高应用程序的质量和用户体验。

appium测试框架原理

appium有几个重要的部分组成,分别是appium client、web driver以及 appium server。Appium server,负责接受客户端请求并与移动设备进行通信。它使用WebDriver协议来与客户端进行通信,并使用移动设备的原生测试框架Ui automation2或者XCUITest来执行自动化测试。appium自动化app的所有指令都是基于W3C的web driver协议的。所以如果你认真看过appium的log的话,会发现每一个动作查找元素或者点击元素都是一次http请求。官方给我们提供的driver有UIautomator和XCUITest,所以我们可以直接对Android以及iOS平台进行通讯,如果是其他平台的话,比如webOS TV,那我们就要根据web driver协议自定义一份适合webOS 的driver来完成跟webOS应用通讯的目的。对于自定义driver有兴趣的可以了解下web driver协议以及base driver。

appium安装和组件

appium的安装很简单,可以直接使用 npm i -g appium@next进行全局安装,也可以在github上clone代码,git@github.com:appium/appium.git本地启动appium,当然官网也有详细的教程可以follow,地址在这里:Install Appium - Appium Documentation

appium提供了分析app页面元素的应用,inspector,可以在应用中连接到对应的模拟器打开应用,并分析页面元素。

同时该工具提供了用例的录制功能。可以使用该工具进行简单的用例录制,导出脚本的时候支持多种语言,java, python, js等。

appium capability详解

在原理部分可以得知appium的所有行为都是基于W3C提供的web driver协议的,这也是它跨平台特性的根本原因。要遵循协议创建连接,填写相关的信息。最早的是selenium框架的出现提出了该协议,随着其流行逐渐变成了行业标准,所以我们至今都能在协议中看到这样的描述。

1.1 Compatibility

This specification is derived from the popular Selenium WebDriver browser automation framework. Selenium is a long-lived project, and due to its age and breadth of use it has a wide range of expected functionality. This specification uses these expectations to inform its design. Where improvements or clarifications have been made, they have been made with care to allow existing users of Selenium WebDriver to avoid unexpected breakages.

CapabilityTypeRequired?Description
platformNamestringRequiredAndroid/iOS/其他根据app类型填写
appium:automationNamestringRequired填写appium driver的名字,UIautomator2 或者XCUITest
browserNamestring如果驱动程序支持网络浏览器的特殊情况,要启动和自动化的浏览器的名称
appium:appstring需要安装app的话,这里填写安装路径
appium:deviceNamestring要自动化的特定设备的名称,例如,iPhone 14(目前只有在指定iOS模拟器时实际有用,因为在其他情况下,通常建议通过appium:udid能力使用特定的设备ID)。
appium:platformVersionstring平台的版本,例如,对于iOS,16.0
appium:newCommandTimeoutnumberAppium服务器在决定客户端已经离开并关闭会话之前,应等待客户端发送命令的秒数。
appium:noResetboolean如果为true,指示Appium驱动程序在会话开始和清理期间避免其通常的重置逻辑(默认为false)。
appium:fullResetboolean如果为true,指示Appium驱动程序用额外的步骤增强其通常的重置逻辑,以确保最大的环境可重复性(默认为false)。
appium:eventTimingsboolean如果为true,指示Appium驱动程序收集事件时间(默认为false)。
appium:printPageSourceOnFindFailureboolean如果为true,每当查找元素的请求失败时,就会收集页面源并将其打印到Appium日志中(默认为false)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值