自动化测试-Appium使用

Appium

Appium可以使用命令行也可以用GUI工具,为了方便我们使用GUI工具来做功能演示。
打开Appium-GUI工具,下面演示用的是1.9.1版本

打开后进入首页,安装默认配置就行,点击start server开始启动server。

这里说下为什么启动appium是启动一个server,首先我们梳理下整个自动化测试的流程。

把我们的APP当成一个客户端,而我们编写的自动化测试脚本也是一个客户端,两者是没办法直接通信的,这时候就需要个中间商(Appium)当server,建立两个客户端的通讯桥梁。

我们编写脚本时,使用Appium框架,就形成了一个client,运行脚本的时候,框架会通过http请求和Appium-server端通讯,然后Appium-server再通过WebDriverAgent(iOS)和APP端通讯,从而打通了脚本和APP两者,这也是脚本能用多种语言编写的原因。

如下图所示:

上图是iOS的整个通讯流程,Android大概同理,只是右边的框架不一样。

我们接下来继续,启动完server后,可以看到一个类似终端的界面,后面所以http请求和日志都会在这里打印:

点击一个搜索的按钮,即开始配置要测试的参数

Appium是通过编写JSON参数来选择要启动的测试的,比如

{
    "platformName": "iOS",
    "platformVersion": "11.0",
    "deviceName": "iPhone 7",
    "automationName": "XCUITest",
    "app": "/path/to/my.app"
}

大概意思就是iOS平台,iOS11系统,设备是iPhone 7,使用XCUItest框架,和相应的APP目录地址,还有其他参数,可以查看Appium自己的文档说明:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

iOS模拟器自动化测试

首先我们准备一个iOS APP Demo,来进行简单的自动化测试,Demo可以从这里下载:

打开Demo的工程文件:

用xcode打开工程后,选择一个模拟器,然后运行,测试下工程能否正常运行

运行正常后,就可以配置测试参数了

这里说下.app格式,.app格式是未压缩的打包格式,一般我们使用的iOS App包是.ipa格式,而.ipa格式就是压缩后的格式,ipa包解压后的文件目录和app格式里的是一样的。APP格式可以通过xcode打包获取,也可以直接运行后,在这个目录下获取:

注:红色代表还没运行编译成功

点击 start session,Appium就会自动启动对应的模拟器,然后会在模拟器上安装我们的APP包,还有WebDriverAgentRunner,WebDriverAgentRunner就是Appium和APP进行通信的工具。

启动成功后,如果一切正常,则会出现Appium Desktop – Inspect界面,上面的功能按钮我做了一些标注

iOS真机自动化测试

真机要相比模拟器要复杂点,因为在真机上安装APP,得经过签名,不了解iOS开发的话,可能不太清楚这个东西。
启用APP签名:

在Team里选中自己的账号,或者Add an account,如果没有苹果的开发者账号,可以直接使用自己iPhone上的Appleid账号。
在Demo工程上配置好签名后,还需要在WebDriverAgentRunner工程里配置,因为还有WebDriverAgentRunner也需要安装到APP上,找到Appium目录里的WebDriverAgentRunner工程

Android模拟器自动化测试

Android真机自动化测试

发表评论

电子邮件地址不会被公开。 必填项已用*标注