常见经典开源软件自动化开发测试框架/工具(2015)

转载请标明出处,原文地址:http://blog.csdn.net/w565911788/article/details/47660789


(1)STAF(SoftwareTesting Automation Framework)是一个由IBM开发的开源、跨平台、支持多语言且基于可重用的组件来构建的自动化测试框架,而这一系列的组件都是一些可以处理调用、资源管理、监视等一些列的服务组成(STAFProc进程STAF Daemo守护进程、服务、变量、实例、句柄、服务请求、插件等)。STAF框架为自动化测试建立了基础,在高层解决方案提供一种可插拨的机制,支持多种平台与多种语言。

=> ECS-Platform-云服务器集群管理平台,功能近似STAF,增强易用性、安全和性能,支持Windows(Socket TCP/IP)、Linux平台(ssh);支持公网、私网复合网络;本地及远程命令引擎;文件批量发送下载;自动化脚本任务定制;动态插件扩展;工具平台集成;可作为自动化框架应用于服务器群的自动化管理运维和测试等。主页:http://code.google.com/p/ecstool-platform/

(2) Cucumber 是一个能够理解用自然语言描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和·Net等多种开发语言。

A. Describebehaviour in plain text

B. Write a stepdefinition in Ruby

C. Run and watchit fail

D. Write code tomake the step pass

E. Run again andsee the step pass

F. Repeat 2-5 untilgreen like a cuke

G. Repeat 1-6until the money runs out

(3)RSpec: 行为驱动开发(Behaviour Driven Development,简称BDD)是一种融合了可接受性(验收)测试驱动计划(Acceptance Test Driven Planning),域驱动设计(Domain Driven Design)以及测试驱动开发(TestDriven Development,简称TDD)的敏捷开发模型。RSpec为BDD开发提供TDD支持。它的主要作用就是描述我们对系统执行某个样例(example)的期望行为(behavior)。repec指定期望的传输服务:包括尽力传送服务,受控负载,保障服务三种模式。

(4)Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:

A. 持续的软件版本发布/测试项目。

B. 监控外部调用执行的工作。

(5)JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI脚本、Java 对象、数据库, FTP 服务器,等等。JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。

=> JMeter的作用:

A. 能够对HTTP和FTP服务器进行压力[1]和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。

B. 完全的可移植性和100% 纯java。

C. 完全 Swing 和轻量组件支持(预编译的JAR使用javax.swing.*)包。

D. 完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。

E. 精心的GUI设计允许快速操作和更精确的计时。

F. 缓存和离线分析/回放测试结果。

=> JMeter的高可扩展性:

A. 可链接的取样器允许无限制的测试能力。

B. 各种负载统计表和可链接的计时器可供选择。

C. 数据分析和可视化插件提供了很好的可扩展性以及个性化。

D. 具有提供动态输入到测试的功能(包括Javascript)。

E. 支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。

=> Jmeter术语:

A. Label:定义的HTTP请求名称

B. Samples:表示这次测试中一共发出了多少个请求

C. Average:访问页面的平均响应时间

D. Min: 访问页面的最小响应时间

E. Max: 访问页面的最大响应时间

F. Error%:错误的请求的数量/请求的总数

E. Throughput:每秒完成的请求数

F. KB/Sec:每秒从服务器端接收到的数据量

(6) Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具,框架底层使用JavaScript模拟真实用户对浏览器进行操作。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、MozillaFirefox、Mozilla Suite、Chrome、Safari等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。

(7) Appium是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持iOS, Android 和FirefoxOS平台。Appium驱动苹果的UIAutomation库和 Android 的UiAutomator框架,使用 Selenium 的WebDriver JSON 协议。Appinm的iOS支持是基于Dan Cuellar's 的iOS Auto. Appium同时绑定了Selendroid用于老的 Android 平台测试。

=> 使用Appium进行自动化测试有如下好处:

A. Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用。

B. Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用SeleniumWebDriver的Api。

C. Appium实现了真正的跨平台自动化测试,Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。

(8)Watir(Web Application Testing in Ruby)是一个使用 Ruby 实现的开源Web 自动化测试框架,相对于那些庞大的商业工具来说,它很小巧,也很灵活,提供的功能也足够用。Watir可以使用IE(IE5.5及以上版本),Firefox,Chrome进行Web应用测试。支持Windows(2000及以上版本),Linux,Ubuntu,Mac。

(9)单元测试工具

C/C++语言开发的首选利器->CppTest,测试覆盖率统计->gcov/lcov

Java环境单元测试的终极利器->Junit, 测试覆盖率统计->Cobertura/EclEmma/clover

.Net环境单元测试的首选利器->Nunit, 测试覆盖率统计->visual studio

编译被测程序的时候添加统计覆盖率选项->执行测试->命令收集生成测试覆盖率信息

(10)SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans和intellij中使用。soapUI pro是soapUI的商业非开源版本,实现的功能较开源的soapUI更多。


转载请标明出处,原文地址:http://blog.csdn.net/w565911788/article/details/47660789

你可能感兴趣的:(自动化工具框架)