UII自动化之Appium

本文介绍了Appium,一个开源的跨平台测试框架,用于移动应用自动化测试,支持iOS和Android。它基于WebDriver,提供模拟手势操作和UI控件定位。Appium工作原理是通过c/s模式,服务器端监听端口,通过Bootstrap.jar与移动设备建立通信,驱动uiautomator执行命令。文中还详细阐述了环境搭建和创建自动化测试工程的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Appium是什么

    Appium是一个开源、跨平台的测试框架,基于webdriver(又名Selenium 2,集成了 Selenium 1.0 以及以前的WebDriver,既支持 Selenium API 也支持 WebDriver API)测试框架添加对移动设备自动化api扩展而成,可以用来测试原生APP以及混合的移动端应用,支持iOS、Android及Firefox OS等终端平台。

    对APP进行黑盒的自动化测试,提供了模拟各种手势操作(点击、滑动、长按等)、查找和断言机制的API,能够对各种UI控件进行操作。

    UI层的自动化测试的本质都是让工具帮人实现点击、输入或等长按操作,怎么让工具做到这些操作了,当然就是依靠页面元素的定位,无论Web端还是APP端都是这样的。在Android平台上通常都是使用由Android SDK自带的工具uiautomatorviewer.bat帮助识别UI控件的布局和属性。


2、Appium自动化测试原理

     Appium是以c/s模式的,Appium就是服务器端,移动设备就是客户端。

     Appium启动后会在PC端默认开启并监听4723端口;启动测试后会先调用adb完成一些基本的系统操作,比如检查当前可连接设备,然后会把Bootstrap.jar注入到移动设备中,这样Appium服务器就与移动设备之间建立起一个Socket通信管道;服务器端通过这个管道把测试脚本以json数据的形式向客户端POST指令,bootstrap接受到指令就会驱动uiautomator库或者uiautomation框架(Android是基于uiautomator框架实现查找注入事件,iOS是基于uiautomation框架实现查找注入事件)执行这些命令,此时在移动设备上就可以看见被测APP自动化的操作了;某个测试用例完成之后,客户端同样会通过管道返回一段json数据给服务器端,用以判断该case是否通过。

3、Appium程序实例

3.1、环境搭建

第一步、Android测试开发环境。使用的是集成式的ADT,步骤见《Android测试开发.docx》。

第二步、安装node.js。因为服务器端是依靠nodes.js,因为appium是依赖node来解释的,

安装后一般会自动添加到环境变量PATH中,可以按如下方式验证:


第三步、安装Appium。下载地址是http://appium.io/,安装完成之后把{安装目录}\node_modules\.bin\配置到PATH中,可以按如下方式验证:


3.2、创建自动测试工程

第一步、准备一个设备,可以是真机也可以是模拟器,本次演示Android原生的模拟器。创建一个AVD,版本是4.4.2,启动且解除锁定。


第二步、准备jar包。Java测试工程中需要的API都定义在这些包中,有三个:selenium-java-*.jar、selenium-server-standalone-*.jar和java-client-*.jar。


第三步、启动Eclipse,创建Java工程中,具体见截图。

第四步、启动Appium。有两个启动文件,一是{安装}\Appium.exe,会启动一个Appium专用的控制台;而是{安装}\node_modules\.bin\appium.cmd,会占用DOS窗口作为自己的控制台。这两种方式其实是一样的,本次演示就使用第一种方式。

第五步、以JUnit Test方式run这个工程。


运行过程中,Appium的日志

运行过程中以及运行结束后,可在JUnit中查看过程和结果

4、具体讲解3.2中的第三步

4.1、创建Java工程







4.2、解释用例脚本







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值