Appium与React Native

20160803

背景

React Native是最近特别火的东西,号称一个技术解决所有难题。Facebook吧ReactNative开源后,迅速吸引了一大批人,比如我旁边的开发。他用ReactNative写了一个Android的Demo,那么我就拿这个Demo来玩玩,看看它到底是个什么东西。

安装

不知道是他拿的东西不行还是咋地,反正直接安装APK包是有问题的,运行起来是白屏,于是只能把手机给他,让他帮忙装。折腾了好久才装上。

上手

刚刚上手,感觉整个流畅度还是不错的,不过Demo太小,就一个页面,可感觉的东西很少,而且手机是高配的手机,不论怎么写,流畅度会非常不错的。

从测试的角度来看,首先它是一个Android的App,那么应该有正常开发出来的App的一些共性,比如PackageName,Activity等元素,查看了一下,果然如此。

非常好,我们要用Appium来测试的话,有这两个元素就表示肯定能把这个App启动起来。

那么我想知道这个用JS开发的App到底底层是个什么东西,有两种猜想,一种是用Android框架包装的网页合集,那就是整个App都使用WebView来展示了。另一种是经过转化,把所有的JS转化为Android,直接生成原生的内容。

对于第一种,我们要使用Appium测试,就必须要把当前会话转为WebView才行。对于第二种,就是我们非常熟悉的方式了。

我拿UIAutomatorviewer来抓取页面,发现是这样的。

那么可以很清晰的看到,这是原生的组件,并不是H5的组件。使用Appium而已轻松的自动化测试它。为了确认我的判断,我再次打开了Chrome,发现Inspector没有探测出WebView,那么可以断定,这不是一个混合App,而是一个完完整整的原生的Android应用。

简单猜想,UI层应该是直接把原生的东西封装好了,而执行方法,那就是React提供的API。

IOS暂未上手,但是应该与Android是一样的,封装原生的UI层,JS通过API与原生交互。

总结

ReactNative是一项新技术,现在版本还没有到1.0,还无法大范围推广,同理,也不会有很多公司采用它来开发app。但是作为一项有可能发展壮大的开发技术,那么作为一名测试人员,就有必要对它做一个简单的了解。

从机制上来看,ReactNative与Appium有一定的共同点,二者在某种程度上说,都是把一种开发语言翻译成另一种开发语言。ReactNative是学习一种开发语言,同时开发Android和IOS客户端,而Appium是学习一种开发语言,同时测试Android和IOS客户端。

从结果上来看,无疑是挺好的,现在的混血APP虽然对于开发来说,是一个很好的解决客户端更新的方案,但是使用Appium测起来,要多一个切换会话的过程,虽然不复杂,但是总感觉有点麻烦,反正Appium是基于UI层的测试,那么用ReactNative弄出来的APP在UI层上全都是原生,那么对使用Appium并没有什么影响,反而省了切H5的过程呢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容