搬运一些原来总结的内容
前言:随着行业的进一步发展,测试在专业化的程度上也越来越高,业界也使用各种各样的方法、工具提升自己的效率,各位技术人员也努力学习尝试新技术来为自己的职业增加竞争力,结合自身前期工作经验和学习,本文针对常见的自动化测试工具和框架进行了简要的介绍。
一、 概念
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
二、 目的
测试前移。
提高效率。
三、 特点和优势劣势
特点:重复固定工作,机器执行效率高。
优势:执行效率高、可靠、可重复、执行手工无法完成任务、提高资源利用。
劣势:人体感官相关、新项目、定制、不稳定、业务复杂、物理层交互。
四、 测试工具介绍
以下内容均是在Android移动平台上的测试工具
自动化框架层次图
1、 Robotium
本工具是基于Android 单元测试框架进行扩展的一个开源自动化测试框架,主要用于测试独立应用,优点:继承Instrumentation的方法,支持各种手势操作、控件操作、断言机制、webview等,国内二次开发的上层框架比较多,利于学习,缺点:原生不支持跨进程操作、测试需要重签名APK。由于国内app开发人员越来越多,本工具使用也算最广泛的一个。
分享一个国内开发者搭建的学习网站。http://www.robotium.cn/
2、 MonkeyRunner
本工具是Android sdk中提供的一个功能测试工具,使用提供的API进行控制设备坐标点击、安装、卸载、按键等操作,并利用截图进行对比,优点:原生Android支持,缺点:坐标点击。适用于设备安装调试应用的中间连接件。
3、 Monkey
本工具Android sdk中提供的向目标设备发送自定义数量的伪随机事件操作,用于压力测试,优点:原生Android支持、使用方便、操作统一,缺点:无法自定义事件流。用于检测被测软件的稳定性和可靠性。
4、 Uiautomator
本工具是Android sdk中提供的一个黑盒自动化测试工具,从名称上可以看出,借鉴了部分微软和苹果的自动化框架经验,微软的UIAutomation从Vista就开始支持,目前是比较成熟的自动化框架。提供对UI界面的元素操作,优点:原生Android支持、跨进程、API文档、无需app源码,缺点:不支持webview、基于junit3、不提供报告,部分方法不可靠。适用于所有应用的界面功能测试。
5、 Appium
本工具是开源的跨平台测试框架,跨平台支持FirefoxOS、Android、iOS,在Android中通过UIA驱动测试,在iOS中通过UIAutomation驱动测试,也正是由于使用这两个框架,优点是:跨平台,跨进程。缺点:暂无。适用于跨平台的第三方应用测试。
6、 Instrumentation
本工具是Android sdk中提供的Android单元测试框架,基本上可以实现以上所有工具的功能,从图中也可以看出,很多自动化框架都是基于他进行再次开发的,优点:功能强大、可进行自定义二次开发,API层稳定,缺点:需要对Android接口有一定了解。适用于Android单元调试、接口测试、功能测试。
7、 云测试
云测试这个概念也是随着云的概念开始形成的,主要方式就是将设备存放在一个数据中心,通过上传第三方软件和脚本进行真机适配测试,可实现录制、回放、生成报告、性能分析,优点:降低独立应用开发者测试成本,多设备兼容性测试、遍历测试,缺点:收费软件、无法自定义报告。适用于独立开发者多设备兼容性测试,目前常见的有百度云测试、易测云、testin云测等。
五、 其他常见工具
以下工具均是非移动端软件测试工具,主要使用场景是windows和linux平台下B/S和C/S架构的软件自动化测试
1、 QTP
全称:QuickTest Professional,相信绝大部分人接触自动化测试是从这个工具开始的,在移动端自动化开始前,自动化测试最完整的的解决方案就是Mercury公司的QTP系列产品,B/S和C/S架构的绝大部分大型商业软件的自动化测试也都是由这个工具进行的,工具基于对象操作,提供非常完整的自动化测试准备、录制回放、专家模式、数据驱动、测试报告及分析。优点:功能强大、报告完整、VBS脚本学习成本低、维护文档完整、解决方案成熟,缺点:收费软件,无移动端测试。适用于各种B/S和C/S架构的软件系统自动化测试。
2、 RobotFrameWork
诺西公司开发和维护,主要用于客户端和接口测试,可进行分布式测试,优点:用例与代码分离,用例为表格形式,脚本编写方便,报告为HTML格式方便查看,缺点:暂无。应用场景主要是各种客户端和接口的测试、web程序测试。
3、 Selenium
ThoughtWorks公司开发和维护的自动化框架,主要用于web自动化测试,框架底层使用JS驱动模拟用户操作,直接运行于浏览器中,支持IE、chrome、Firefox等浏览器,优点:API全面、支持主流浏览器、支持远程控制,免费,缺点:常用方法需封装,测试报告简单。此框架是目前使用较为广泛的web自动化框架,可作为QTP非常好的替代工具,包括阿里、百度等公司均使用过此框架进行二次开发。
4、 Loadrunner
Mercury公司开发的适用于各种体系架构的自动负载测试工具,是目前业内常用的负载测试工具,可以模拟各种场景下的对整个企业架构的压力测试场景,可进行定量控制下的服务器负载测试,对分析系统瓶颈有非常显著的效果。优点:功能强大,负载精确控制,测试报告全面,缺点:学习成本高,需要较多的软件架构知识,收费软件。适用于各种场景下的企业服务器架构负载测试。
相信在本文介绍后,应该对目前常见的自动化工具有了一个大概的认识,限于眼界,本文介绍的主要是国内常用的软件,希望在看完之后能对一些错误进行指正,也欢迎各位与我进行交流。
后续还将对自动化的实现、用例设计思路、分层实施等内容进行总结