如何理解appium

来源:互联网 发布:波导手机淘宝 编辑:程序博客网 时间:2024/06/06 16:28

什么是appium。
appium是一款开源的自动化测试工具,
可以在Windows,Mac,Linux等主流操作系统上使用Java,Python,JavaScript,PHP,C#,Ruby等语言来使用同一套API编写iOS/Android的自动化测试脚本。
支持的系统:Windows,Mac,Linux
支持的语言:Java,Python,JavaScript,PHP,C#,Ruby
支持的手机系统:Android,iOS
注:使用appium做iOS自动化,必须使用Mac系统。


Appium可以用来测试iOS/Android原生应用,H5应用以及混合应应用。
原生应用就是我们平时用到的,使用iOS和Android SDK写的应用。比如网易云音乐,知乎之类的
web应用就是需要打开web浏览器使用的应用,iOS支持safari,Android支持chrome。比如百度框计算
混合应用就是在原生代码封装网页视图。比如大部分电商网站
那么问题来了,咱们的路由器app属于什么类型的应用?


appium的工作原理
一个完整的appium测试流程,分为三部分。
1,脚本端
2,服务端
3,执行端(手机)

appium以服务端为中转站。脚本端把测试脚本的指令传递给appium的服务端,然后appium服务端再和底层工具进行通信;底层工具和手机进行通信操作,操作完成后将结果返回给appium服务端,服务端再将结果反馈给测试脚本。


安卓:
4.2以上的手机,appium会用底层调用uiautomator测试工具
具体操作为,在测试脚本与appium服务端创建连接的过程中,将AppiumBootStrap.jar这个jar包发送到测试设备上,并启动AppiumBootStrap.jar。
启动后会创建一个socket服务,一直等待服务端传递命令。所以整个测试的执行过程就是与AppiumBootStrap.jar进行通信完成的。
执行完测试后,测试脚本会调用driver.quit()这个方法来结束AppiumBootStrap.jar
4.2以下的手机,appium会调用seledroid工具。
混合应用和web应用
混合应用测试H5部分,必须在软件源码包中开启了webview debug。
混合应用切换到webview模式时,会去启动一个chromedriver的http服务。appium服务端与chromedriver进行通信,chromedriver与应用中的webview进行通信。
web应用会在测试脚本与appium服务端创建连接的过程中,直接创建一个chromedriver服务。

iOS:
原生app测试基于instruments的uiautomation来做的。
具体操作为,测试脚本与服务端通信,服务端将测试指令翻译成uiautomation的脚本传给instruments,由instruments跟手机测试应用进行通信。
注:instruments是Xcode的一个工具集,因为Xcode只能Mac装,所以想用appium搞iOS自动化,必须得用Mac系统。
混合app测试
需要启动ios_webkit_debug_proxy。iOS webkit debug proxy是一个iOS的开放调试工具。允许开发者在真实或者模拟的iOS设备上,通过webkit远程调试协议检查mobilesafari和UIWebViews。基于chromedriver的。
跟安卓一样,启动一个chromedriver服务。appium服务端与chromedriver进行通信,chromedriver与应用中的webview进行通信。
web应用测试
借助safarilauncher这个app来完成safari浏览器的操作。