首页 > 编程知识 正文

ui自动化测试工具排名(web自动化测试框架开发)

时间:2023-05-04 05:38:20 阅读:103678 作者:3784

随着安卓和IOS平台的不断发展,市场上的移动操作系统已经被安卓和IOS占据,安卓的份额超过80%。那么,面对市场上众多的自动化测试框架和工具,如何选择移动端的自动化测试呢?

一.主流框架的比较

以下比较了市场上的几种主流框架:

二、各框架的优缺点

1.Monkey是安卓SDK自带的测试工具。在测试过程中,它会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等。),从而实现正在开发的应用程序的压力测试,以及日志输出。事实上,这个工具只能用程序做一些压力测试。因为测试事件和数据是随机的,不能自定义,所以有很大的局限性。

2.MonkeyRunner也是安卓SDK提供的测试工具。严格来说,MonkeyRunner实际上是一个Api工具包,它比Monkey更强大,可以编写测试脚本来定义数据和事件。缺点是脚本用Python编写,对测试人员要求较高,学习成本较高。

3.Instrumentation是谷歌早期提供的安卓自动化测试工具类。虽然那时JUnit也可以测试Android,但是Instrumentation允许你在应用程序上做更复杂的测试,甚至在框架级别。通过仪器,您可以模拟按键、抬起、屏幕点击和滚动等事件。仪器通过在同一进程中运行主程序和测试程序来实现这些功能。您可以将插装视为类似于“活动”或“服务”的无接口组件,并在程序运行期间监控您的主程序。缺点是测试人员对编写代码的能力要求很高,需要对Android有一定的了解,需要配置AndroidManifest.xml文件,不能跨多个应用。

4.UiAutomator也是安卓提供的自动化测试框架,基本支持所有安卓事件操作。与Instrumentation相比,UIAutomator不需要测试人员知道代码实现的细节(UiAutomatorviewer可以用来抓取App页面上的控件属性,无需查看源代码)。测试代码基于Java,结构简单,易于编写,学习成本低。一旦编译完成,所有设备或模拟器都可以运行测试和跨app(比如很多App选择相册,打开相机拍照,这就是跨App测试)。缺点是只支持SDK 16(安卓4.1)及以上版本,不支持Hybird App和WebApp。

5.Espresso是谷歌的开源自动化测试框架。与Robotium和UIAutomator相比,它具有规模更小、更简洁、API更准确、测试代码编写简单、使用方便快捷等特点。因为它基于Instrumentation,所以不能跨应用。

6.Selendroid:也是一个基于Instrumentation的测试框架,可以测试Native App、Hybird App、Web App,但是线上资料少,社区活动少。

7.Robotium也是一个基于仪器的测试框架。目前在国内外应用广泛,信息多,社区活跃。缺点是测试人员要有一定的Java基础,了解Android的基本组件,不能跨app。

8.Athrun是淘宝开发的移动测试框架/平台,同时支持iOS和安卓。安卓也是基于Instrumentation的,它扩展了安卓原有的ActivityConstruction TestCase 2类,提供了一套面向对象的API。

9.Appium是最近比较流行的一个框架,社区也很活跃。这个框架应该是最强大的:

A.它的优点:

开源;

支持原生应用、混合应用、网络应用;

支持安卓、iOS、火狐OS;

服务器也是跨平台的,可以用Mac OS X,Windows或者Linux;

B.它的理念是:

用Appium进行自动化测试不需要重新编译App;

支持多种语言编写测试脚本,如Java、Javascript、PHP、Python、C#、Ruby等主流语言;

不需要重新构建自动化测试的轮子,因为WebDriver是扩展的。(WebDriver是一个简单快速的测试WebApps的自动化测试框架,所以有Web自动化测试经验的测试人员可以直接上手);

移动自动化测试应该是开源的;

C.其设计理念:

客户机/服务器体系结构,当运行时,服务器将监控客户机发送的命令。

,翻译这些命令发送给移动设备或模拟器,然后移动设备或模拟器做出响应的反应。正是因为这种架构,所以Client可以使用Appium client libraries多种语言的测试脚本,而且Server端完全可以部署在服务器上,甚至云服务器。

Session,每个Client连接到Server以后都会有一个Session ID,而且Client发送命令到Server端都需要这个Session ID,因为这个seesion id代表了你所打开的浏览器或者是移动设备的模拟器。所以你甚至可以打开N个Session,同时测试不同的设备或模拟器。

Desired Capabilities,其实就是一个键值对,设置一些测试的相关信息来告诉Server端,我们需要测试iOS、还是Android,或者换是WebApp等信息。

Appium Server是Node.js写的,所以可以直接用NPM来进行安装。

Appium Clients,Mac OS和Win下提供GUI,不需要装Node.js,方便测试人员操作。

d.相关限制:

如果你在Windows使用Appium,你没法使用预编译专用于OS X的.app文件,因为Appium依赖OS X专用的库来支持iOS测试,所以在Windows平台你不能测试iOS Apps。这意味着你只能通过在Mac上来运行iOS测试。

三、总结

从方面的对比和优缺点分析不难看出。对于需要支持跨平台和需要支持WebView的应用,Appium的优势就比较明显了,因为Appium拥有了以上几大框架的所有优点:跨App,支持Native App、Hybird App、Web App,还支持N种语言来编写你的测试脚本。如果是只针对Android平台的应用,我还是比较推荐UiAutomator,特别是后面推出的UiAutomator2.0,此外,这两年,Google又推出了Espresso,它也应该是一个很优秀的框架,但是个人认为适合编程基础一般或刚入门同学(反正我是有点用不太习惯)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。