移动端自动化测试-WTF Appium?

2017-09-23 分类:Selenium 阅读(2121) 评论(0)

手机App分为两大类,原生App(Native App)和混合APP(Hybrid App)

原生App(Native App)

原生App实际就是我们所常见的传统App开发模式,云端数据存储+App应用客户端。App应用客户端,包含了所有的UI元素、框架逻辑等。只有数据存储在云端。

混合App(Hybrid App)

混合App就是HTML5 App,混合App通常由两部分组成,HTML5云网站+App应用客户端,这里的App应用客户端实际只是个架子,里面的UI元素和逻辑,都是存储在云端的,每次在打开App时,去云端获取数据呈现给手机用户。说白了混合App就是将Web页面嵌套到了App应用客户端中。由于每次打开App都要向HTML云端服务请求数据,所以会产生不小的数据流量,并且如果没有网络,会导致无法看到HTML App。这就是常说的H5页面。

Appium介绍

Appium是一个开源、跨平台的自动化测试框架,它适用于Native App、Hybrid App。

Appium有个比较好的设计哲学,简单的说就是不要为了移动端自动化测试而单独开发一套Api接口,所以Appium也是基于Selenium的Webdriver进行了扩展,扩展了一些操作移动端的Api接口,在我们学习完Selenium的Api接口后,我们在学习Appium只需要学习扩展的那些操作移动端的Api接口即可。

Appium最牛之处在于支持跨平台操作。实际上我们在测试时是启动了一个Appium Server,这个Server可以放到任意的机器上,供公司的自动化测试人员共同使用。

Appium原理

Appium既然是基于Selenium做的二次扩展,那么Appium也是一个经典的Client-Server的设计模式,我们的Code就是狭义上的客户端,Server端与Selenium不同,Selenium直接测试浏览器Web页面,将浏览器作为服务端。而Appium的服务端是我们自己启动的Appium-Server。数据与操作命令传递与Selenium Api接口相同,遵守REST设计风格的Api接口。(所谓的REST设计风格,只是一帮喜欢写论文的人装逼搞出来的名词,让大家看的云里雾里。简单的理解,就是一种接口设计方式,网上对于REST的解释层出不穷,翻译成三句话,看URL知道要什么、看HTTP Metod知道干什么、看HTTP Status Code知道结果。

Appium工作流

您可能也喜欢:

密码保护:Appium定位方式总结

ClassName Android Android的class属性对应ClassName定位方式,ClassName一般都是会重复的,可以通过index来获取需要的元素。(从0开始查找dom树中的同名class属性) iOS iOS的type属性对应CLassName定位方式,ClassName一般...

more

密码保护:下拉框处理(select)

在UI自动化测试过程中,经常会遇到一些下拉框,我们有三种可选方式来操作下拉框。 第一种方法 基于webdriver的两次click,很容易出现问题,不建议使用。(由于部分下拉框在点击一次后,失去焦点再点下一次时可能下拉框中的参数就消失了,那么就无法进行选择了,所以会出现无法定位到目标元素或目标元素不...

more

密码保护:神秘的指令链(Action Chains)

最近有很多同学私聊问我,在通过Selenium做UI自动化的时候,明明能够在DOM树内看到这个元素,但是我在通过driver click、sendkey的时候,就是点击不到或无法输入字符串。 实际上这是由于WEB中某些元素需要通过一系列连贯的操作才能处于可以点击的状态,driver提供的click方...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称

登录

忘记密码 ?

切换登录

注册