博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Fitnesse框架介绍(一)
阅读量:4914 次
发布时间:2019-06-11

本文共 1482 字,大约阅读时间需要 4 分钟。

Fitnesse是一款开源的验收测试框架,完全有java语言编写完成,支持多语言软件产品的测试,包括(java,c,c++,python,php)等等,本人使用这款框架已长达两年之久,目前在公司测试及开发团队中推广使用fitnesse进行接口测试。

关于接口测试的重要性及定义可以参考本人写的前面的博文《关于接口测试》,再此系列中将着重介绍fitnesse框架以及fitnesse在接口测试以及持续集成中的使用,系列第一篇将介绍fitnesse整体架构。
在fitnesse框架中,总共包括三个部分,wiki,test system,fixtures.其中wiki部分将展现具体的test case以及test suite,test system包括两部分slim,fit,也就是fitnesse的执行引擎,fixtures也就是真正的测试代码。具体见下图所示:

从上图大家可以看到,在wiki pages上描述的将是关于业务或者其他逻辑的测试用例,fitnesse将会根据你所选择的test runners(slim或者fit)来解析wiki pages所传送过来的test cases, 假如我们选择了slim作为我们的test runner,那么解下去,slim 将会把网络传输过来的wiki 脚本解析为一系列的指令,然后slim 执行器将会根据这些指令来调用我们所编写的测试代码也就是fixtures,fixtures可以是java 测试代码,c测试代码或者其他语言编写的测试代码,这些测试代码将会根据你所调用的被测对象来执行你的测试用例。同理当你选择fit作为你的Test runner的话过程也是一样,只是fit在解析wiki脚本的时候与slim不一样,fit会将wiki page作为html页面,然后通过解析html页面来调用后台的测试代码来执行测试用例,相对于slim性能上较差,fit是比较老的测试引擎,再此我推荐大家使用slim,因为slim会更加的轻量和高效,在过去的两年时间里面我们团队一直使用slim作为test runner,并且在slim的基础做了很多二次开发和改进,在后续的文章我会继续分享这些成果。
大家可能会问,fitnesse教其他框架有什么优势,本人把fitnesse和junit,testng做了一些简单的比较,fitnesse最大的优点是完全将业务逻辑(测试用例)和测试代码进行分离,功能测试人员负责在wiki上编写测试用例,测试开发工程师负责编写测试代码,这不但利用测试用例和测试代码的维护和管理,也促进了测试人员和开发人之间的沟通,使整个软件开发和测试变得更加敏捷(后面的文章将介绍fitnesse在敏捷测试中的使用),先对于junit每写一个test case都要增加一定量的测试代码,fitnesse大大降低了冗余的测试代码,因为fitnesse可以进行参数化,相对于testng的xml参数化,fitnesse的参数更加的人性且便于操作(后续文章将推出fitnesse wiki语法)。这一系列优点使fitnesse可以适用与各个级别的测试,可以在单元测试,集成测试,验收测试中使用,也可以用于白盒测试和灰盒测试。
此外fitnesse是一款开源的软件,有很多东西可以根据我们自身的应用进行定制,如增加参数类型,分布式测试等等,后续文章都将进行分享,敬请期待。

转载于:https://www.cnblogs.com/victorcai0922/archive/2012/04/25/2470075.html

你可能感兴趣的文章
HDMI中checksum计算法
查看>>
Android入门之旅3—ubuntu11.4上通过adb连接M9手机
查看>>
将eclipse上的web项目部署到Tomcat服务器上经验总结
查看>>
SQLPLUS –> Metalink - (INVItemCt115h.sql ) Note: 223702.1
查看>>
django
查看>>
通过分区(Partition)提升MySQL性能
查看>>
JAVA.exe进程
查看>>
mysql安装及常见问题
查看>>
Thinkphp .htaccess 与 httpd.ini文件重定向转换问题
查看>>
gulp-less解决遇到错误停止执行task
查看>>
一些很少用又很常见的功能的实现方法链接
查看>>
20145235《信息安全系统设计基础》第十二周学习总结
查看>>
响应式布局 大中小屏幕
查看>>
iOS开发UI篇—transframe属性(形变)
查看>>
java中的单例模式
查看>>
Elasticsearch Server,2nd Edition pdf 翻译 中文
查看>>
Django-缓存
查看>>
[无关IT]就这样在凌晨写一篇吧~
查看>>
java.util.Map.Entry接口
查看>>
Linux中crond服务与crontab用法
查看>>