app自动化测试3---appium

本文介绍了Appium这一自动化测试工具的基础知识,包括其支持的平台类型、如何配置测试环境及参数,以及Appium的工作原理等内容。

参考:appium API中文文档

appium

appium介绍

appium是一个自动化测试的开源工具,支持iOS和安卓平台上的原生应用、web应用、混合应用

  • 移动原生应用:用iOS或Android sdk写的应用。
  • 移动web应用:使用移动浏览器访问的应用(appium支持iOS的Safari,Android的Chrome)
  • 混合应用:原生代码封装网页视图----原生代码和web代码交互。开发者使用web技术开发应用,然后用原生代码封装。(做自动化测试时,需要从原生页面切换到web页面,或web页面切换到原生APP)

appium核心是一个web服务器,它提供了一套rest接口。服务器收到客户端的连接、请求,接着在移动设备上执行这些命令,然后将执行结果放在http响应中返回给客户端。

appium界面


  • application path:选择路径,选择一个需要测试的APP在本地的路径。所以事先需要下载一个APP在本地中。勾选上该选项后,每次启动appium,运行代码都会重新安装APP到设备中,可以不勾选该选项,在测试设备中事先安装APP,先登录,则脚本可以跳过登录步骤。
  • package:每个APP都有一个package,而且每个APP的package都是唯一的。在做自动化测试时,在启动参数中需要添加appPackage,appium服务器才会知道哪个APP进行自动化测试。选择application path后,会自动生成。
  • Lanch Activity:启动的activity,选择application path后会自动生成。
  • Wait for Activity:和Lanch Activity差不多。
  • Launch Device:标签下面的东西用得相对比较少。
  • Capabilities:启动参数设置。
  • Plaform Name:测试APP的类型,安卓选Android。
  • Aotumation Name:测试引擎,选appium。当测试的app安装的机器时在4.0或之前的版本时那么这里的引擎你就必须选择Selendroid。
  • Plaform Version:测试APP安装的设备的版本,Android是几点几的版本。
  • Device Name:设备的名称,adb devices可以查看。在测试安卓时只连接一台手机,可以不输入设备名称。iOS则输入错误或不输入是不行的。
  • Advanced:这个标签是在你想同一台电脑同时控制多台手机的时候才能使用,需要更改Bootstrap Port的端口号,记住这一点就好。


General Setting

  • Server address:配置appium的服务地址,一般情况下不需要更改。当需要配置多台手机启动多个appium服务,name需要配置不同的端口。启动多个appium都是同一个端口是不行的。
  • Override Existing Session:session覆盖,session是会话的唯一标示。
  • Log To File:默认状态是没有任何数据,但是在做自动化时建议选择,因为选择之后appium在运行时产生的日志都会保留到你设置的问题件,这个对后期的bug定位有相当大的帮助。
  • 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • 开发者设置:(左边第三个按钮)很少用,可以忽略。
  • 关于:(左边第四个按钮),查看当前appium的版本信息。
  • 元素侦测:(右边第二个按钮):这个按钮的功能和firebug的定位工具功能类似,但是他还有一个功能,他会检测你的各个系统配置是否正确,如果前面各项参数不正确时,使用该功能会报错。如果你不正常连接手机也不行。还是建议用sdk工具里面自带的uiautomatorviewer。
  • 启动服务(右边第一个按钮):所有参数配置好后你需要做的就是启动appium服务,只有启动之后你才能够做自动化。
  • 清除日志(右下角):在写脚本、调试过程中会产生很多的日志,但是你可能想看的只是中间某个时间段的,那么你在这个时候可以将页面的日志清除。

appium工作原理

做Android或iOS自动化测试时,考虑到安全等因素都不是直接去操作APP的,都是借助appium本身公布出来的工具,Android的是Automator,iOS借助的是UIAutomation。所以我们所做的自动化测试是使用这些工具去调用他们公布出来的框架的方法,然后再去执行。


appium是基于webdriver协议的:

它可以把你的自动化测试脚本,翻译成UIAutomator能识别的Java语言,然后调用UIAutomator来执行测试。   -------》Android自动化测试
它也可以把你的自动化测试脚本,翻译成UIAutomation能识别的JavaScript语言,然后调用UIAutomation来执行测试。-------》iOS自动化测试
它只是一个中间人。

Android:

我们电脑(client)运行已经编写好的自动化测试脚本,这些脚本调用的是webdriver的接口,appium Server接收到client的发过来的命令后,将这些脚本转化成uiautomator认识的Java语言,然后由由UIAutomator执行自动化。

iOS:

ios使用的是UIAutomation,首先client发送脚本请求,再到我们的appium服务,这里appium会调用instruments去启动一个server,然后让他去执行后面的操作来完成自动化。备注:UIAutomation是instruments下面的一个工具。

### 环境配置要求 要在 Mac 环境下使用 Python 进行 Appium 自动化测试,需要配置多个组件以确保测试框架的正常运行。以下是详细的配置指南: #### 安装 Python 首先确保安装了 Python,推荐使用 3.x 版本。可以通过访问 Python 官方网站下载最新版本[^4]。如果需要特定版本(如 Python 3.6),可以参考其他资源下载。安装完成后,在终端输入 `python3` 来验证安装是否成功。 #### 安装 Appium Appium 可以通过 npm(Node.js 的包管理器)安装。确保已安装 Node.js,然后在终端运行以下命令: ```bash npm install -g appium ``` 此外,也可以选择安装 Appium Desktop,它提供了图形界面,便于调试和测试。下载并安装 Appium Desktop 后,可以直接启动 Appium Server[^1]。 #### 安装 Xcode 和 iOS SDK 为了进行 iOS 自动化测试,需要安装 Xcode,它包含了 iOS SDK 和必要的工具。可以从 Mac App Store 下载安装最新版本的 Xcode。安装完成后,还需要安装 WebDriverAgent,这是 Appium 用来与 iOS 设备交互的工具。可以通过以下命令安装: ```bash npm install -g appium-xcuitest-driver ``` #### 配置设备和模拟器 对于 iOS 测试,可以选择使用真实设备或模拟器。如果使用模拟器,可以通过 Xcode 创建和管理。对于真实设备,需要确保设备的信任证书已被添加,并且设备的 UDID 已经被正确识别。 #### 安装必要的 Python 库 为了使用 Python 编写 Appium 测试脚本,需要安装 Appium 的 Python 客户端库。可以通过 pip 安装: ```bash pip install Appium-Python-Client ``` #### 编写第一个测试脚本 编写一个简单的测试脚本,连接到 Appium Server 并启动一个应用。以下是一个示例代码: ```python from appium import webdriver desired_caps = {} desired_caps['platformName'] = 'iOS' desired_caps['platformVersion'] = '10.3.3' desired_caps['deviceName'] = 'iPhone 5S' desired_caps['app'] = '/path/to/your/app' driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 进行一些操作... driver.quit() ``` 确保 Appium Server 正在运行,并且设备或模拟器已经准备好。运行脚本后,应该能够看到应用被启动,并执行相应的操作。 #### 常见问题和解决办法 在配置过程中可能会遇到各种问题,例如环境变量未设置、依赖库缺失、设备连接问题等。建议查阅官方文档和社区论坛,寻找解决方案。同时,保持耐心,因为环境配置可能需要多次尝试和调整才能成功[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值