app自动化测试3---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界面

app自动化测试3---appium_第1张图片

  • 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的端口号,记住这一点就好。

app自动化测试3---appium_第2张图片

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。所以我们所做的自动化测试是使用这些工具去调用他们公布出来的框架的方法,然后再去执行。

app自动化测试3---appium_第3张图片

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下面的一个工具。

你可能感兴趣的:(Appium自动化测试)