- 浏览: 3499665 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wanglf1207:
EJB的确是个不错的产品,只是因为用起来有点门槛,招来太多人吐 ...
weblogic-ejb-jar.xml的元素解析 -
qwfys200:
总结的不错。
Spring Web Flow 2.0 入门 -
u011577913:
u011577913 写道也能给我发一份翻译文档? 邮件437 ...
Hazelcast 参考文档-4 -
u011577913:
也能给我发一份翻译文档?
Hazelcast 参考文档-4 -
songzj001:
DbUnit入门实战
Fitnesse 的使用
一,介绍
Fitnesse是一种可以有效提供给软件开发前期各种角色合作的框架。
前端采用wiki界面便于编写case,后端将具体执行可以比较方便的添加各种feature。
前端case和后端feature共同作用起来就可以实现自动化测试。
二,原理
如何使wiki形式的case,驱动后端的class执行具体的代码,是Fitnesse的主要实现,现在存在两种方式
Fit: Framework for Integrated Testing
Fit是采用来控制Fitnesse test table执行的引擎。后台新添加的case需要引用该引擎。
Test table的格式也是来源于Fit。
Slim:Simple List Invocation Method
instruction list
+-------------+ o---> +--------------------+ +----------+ +-----------------------------------------+
| FitNesse |---[socket]-->| SlimServer |----->| Fixtures |------>| SUT(System Under test) |
+-------------+ <---o +--------------------+ +----------+ +-----------------------------------------+
response list
1)FitNesse通过命令行的方式触发slim Server
2)Fitnesse随后会发一个命令的list以及期待的结果到SlimServer。
3)然后slimServer会去调用相应的Fixture。
对各语言的支持情况:
三,内部包含的Fixture
Slim: simple list Invocation method
http://fitnesse.org/FitNesse.UserGuide.SliM.SlimProtocol
Fit:http :// fitnesse.org / FitNesse.UserGuide.FitFramework
四,添加Feature
1)Java API
采用Fit模式:
自己新建的fixture需要继承Fit中的一种Fixture
例如:
如果采用slim模式:
我们需要添加的fixture:
package fitnesse.slim.test;
import java.util.List;
public class ShouldIBuyMilk {
private int dollars;
private int pints;
private boolean creditCard;
public void setCaseInWallet(int dollars){
this.dollars=dollars;
}
public void setPintsOfMilkRemaining(int pints){
this.pints=pints;
}
public void setCreditCard(String valid){
if(valid == "yes")
creditCard = true;
else
creditCard = false;
}
public String goToStore(){
if (pints==0&&(dollars>2||creditCard))
return "yes";
else
return "no";
}
public void execute() { }
public void reset() { }
public void table(List<List<String>> table) {}
}
添加wiki并执行就是这样的结果:
2)C++的支持:
为了实现对C++测试的支持,Fitnesse存在Fit的C++版本,便于新的C++ feature的加入
我们需要下载CppTestTool,然后在同级目录下建立结构:
比如: addTest-----|-------bin
|-------CppTestTools
|-------include
|-------lib
|-------src
在src中添加我们需要的new feature
一旦触发wiki上的开始按钮,fitnesse就会给FitServer法请求,Fit就会去调用我们新加的这部分feature。
首先是main函数,int main(int argc, char* argv[])
{
FixtureMaker* maker = new HomeGuardFixtureMaker();
int status = FitnesseServer::Main(argc, argv, maker);
return status;
}
在main函数中就会把用大的feature都注册过来
#include <Fit/Platform.h>
#include <Fit/Fit.h>
#include <Fit/Summary.h>
#include <Fit/ResolutionException.h>
#include "MgmtFixtureMaker.h"
#include "addsampletest.h"
#include <iostream>
#include <string>
using namespace std;
HomeGuardFixtureMaker::HomeGuardFixtureMaker()
{
}
HomeGuardFixtureMaker::~HomeGuardFixtureMaker()
{
}
Fixture* HomeGuardFixtureMaker::make(const string& fullName)
{
string name = fullName;
string libraryName = splitName(fullName).first;
if (libraryName != fullName)
name = splitName(fullName).second;
PUBLISH_FIXTURE(Fixture);
PUBLISH_FIXTURE(ColumnFixture);
PUBLISH_FIXTURE(ActionFixture);
PUBLISH_FIXTURE(PrimitiveFixture);
PUBLISH_FIXTURE(Summary);
// mgmt test
PUBLISH_FIXTURE(addsampleTest)
throw ResolutionException(name);
return 0;
}
我们的新feature主体,需要用到的方法名,同样需要声明
#include <string>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <map>
#include <Fit/ActionFixture.h>
class addsampleTest : public Fixture
{
public:
addsampleTest()
{ PUBLISH_ENTER(addsampleTest, std::string, addstring1);
PUBLISH_ENTER(addsampleTest, std::string, addstring2);
PUBLISH_ENTER(addsampleTest, std::string, addpath);
PUBLISH_CHECK(addsampleTest, std::string, runTest);
}
void addstring1(std::string input){
string1 = input;
}
void addstring2(std::string input){
string2 = input;
}
void addpath(std::string input){
path=input;
}
std::string runTest(){
string command="";
command=path+" "+string1+" "+string2+">ll.log";
int tmp = system(command.c_str());
return "success";
}
private:
std::string string1;
std::string string2;
std::string path;
};
这样wiki界面上就可以直接调用了:
评论
我也遇到了这个错误,不知道是为什么
Could not invoke constructor
不知道咋回事
发表评论
-
字符串分割--java中String.split()用法
2013-03-06 14:25 74144在java.lang包中有String.sp ... -
用 HttpServletResponseWrapper 实现 Etag 过滤器
2012-07-09 16:58 3756原文出处:http://blog.chenlb.com/200 ... -
Customizing the new FitNesse parser
2012-05-05 13:13 2132FitNesse began its life using ... -
java application中内嵌ActiveX控件
2011-11-14 15:57 5515我这里用的是SWT/JFace开发application,SW ... -
Google Java Developer Tools Downloads
2011-08-09 00:04 2345WindowBuilder Pro原来叫WindowB ... -
Jalita
2011-08-06 00:49 1564Jalita (Java light terminal ada ... -
【转】用Java写字符终端界面
2011-07-29 13:13 2118终端界面GUI开源项目charva。 这个框架让你可以用开发 ... -
[转]mybatis下的分页,支持所有的数据库
2011-07-21 13:21 14835大 家都知道,mybatis的自带分页方法只是逻 ... -
Java framework for text- & console-based forms?
2011-07-21 01:06 1708charva jcurses JNA , ... -
JNA(Java Native Access)学习入门
2011-07-21 01:04 22609Java Native Access 项目 在 ... -
JAVA上加密算法的实现用例
2011-06-25 12:38 4880来源:www.ibm.com ... -
如何将GlassFish作为Windows服务运行
2011-05-18 23:21 2368本文档来自GlassFish官方网站,详细介绍了将 G ... -
JAVA UDP打洞必备知识点---NAT
2011-05-05 12:56 8681一、引言 RFCl631 ... -
Keystore概念,Keytool工具使用
2011-04-28 16:20 2900近来由于项目需要做Single Sign On, 研究了一 ... -
利用Eclipse Profile Plugin监控分析Tomcat性能
2011-04-18 16:14 3700目前新版本的Eclipse在启动应用服务器的时候有一个新的选 ... -
单元测试------理论篇
2011-03-12 12:20 1657测试是软件开发的重要 ... -
DbUnit入门实战
2011-03-09 09:13 32698相信做过单元测试的 ... -
一个愚蠢农夫和奶牛的故事-转载
2011-03-07 09:20 1767Ivar Jacobson博士 ... -
Web测试工具Selenium入门心得
2011-02-16 23:50 34642009-02-05 ... -
selenium 和webdriver_入门实践
2011-02-16 23:47 8968我们一直非常强调建立以底层为核心的分层自动化测试 ...
相关推荐
默认情况下,FitNesse使用80端口,若该端口已被占用,可通过“run-p8081”命令指定其他端口。 启动成功后,控制台会显示一系列信息,包括FitNesse版本、监听端口、根页面路径等。此时,通过浏览器访问`...
### FitNesse 入门详解 #### 一、FitNesse 概述 **FitNesse** 是一种独特的软件开发工具,...以上介绍了 FitNesse 的基础知识、安装配置步骤及基本使用方法,希望能帮助初学者更好地理解和使用这一强大的测试工具。
开源测试软件-fitnesse,使用方法自己百度,教程很多
fitnesse学习资料:关于fitnesse测试软件的一些整理文档
### FitNesse常用Fixture知识点详解 #### ColumnFixture详解 **ColumnFixture** 是FitNesse框架中一种非常重要的...对于希望深入学习FitNesse框架的测试人员来说,熟练掌握这两种fixture的使用方法是非常必要的。
1. **Wiki界面**:FitNesse使用Wiki语法,使得任何人都能轻松编辑和组织测试套件。Wiki页面可以用来描述测试场景、步骤和预期结果,同时也支持链接、嵌入图片和其他Wiki页面,提高了文档的可读性和可维护性。 2. **...
在本文中,我们将深入探讨Fitnesse的学习,特别是如何使用命令行管理用户和密码,以及Action Fixture在测试中的应用。 首先,让我们关注如何通过命令行来添加用户和密码。在Fitnesse中,你可以使用以下命令来创建一...
FitNesse是一套软件开发协作工具 FitNesse是帮助大家加强软件开发过程中的协作的工具。能够让客户、测试人员和开发人员了解软件要做成什么样,帮助建议软件最终是否达到了设计初衷。
该夹具可与Fit(FitRestFixture)和Slim(Table:Rest夹具)流道一起使用。 概述: 获得Fitnesse休息一下( ) 固定装置,最新添加的内容( ) 具有名称空间支持的Rest Fixure( ) 说明文件:与FitNesse的版本
FitNesse使用简单的表格格式来定义测试用例,这使得非程序员也能参与到测试过程中。 Selenium WebDriver是一个流行的自动化测试工具,它模拟用户在浏览器中的行为,允许测试人员对Web应用程序进行各种交互操作。...
Fitnesse使用一种名为Slim(Simple Lightweight Interaction with Machines)的协议,允许用户通过自然语言编写测试用例,并与各种编程语言(如Java、Ruby等)的测试库进行交互。 **fitnesse-launcher-maven-plugin...
FitNesse是一个强大的开源工具,主要用于创建和执行可维护的系统测试。它的核心概念是使用简单的文本编辑器创建Wiki页面,...在构建测试脚本时,根据具体场景选择合适的夹具,是提升FitNesse测试框架使用效果的关键。
fitnesse-standalone.jar
在cmd中Java -jar 输入fitnesse-standalone.jar运行fitnesse工具类,在浏览器中输入http://localhost进入fitnesse界面
在压缩包"Fitnesse资料"中,可能包含了关于如何安装、配置和使用Fitnesse的各种资源,包括但不限于: 1. 安装指南:描述如何下载和安装Fitnesse,以及启动其内置的HTTP服务器。 2. Wiki语法教程:介绍Fitnesse的...
### 使用FitNesse进行.NET开发中的测试驱动开发 #### 标题解读 标题“Test Driven .NET Development with FitNesse”明确指出本书的主题是利用FitNesse工具来进行.NET环境下的测试驱动开发(Test Driven Development...
FitNesse是一个轻量级的、开源的框架,能够帮助开发团队方便的定义验收测试(Acceptance Tests),通过在web页面上简单的输出和预计输出的表格就可实现,并且可以运行这些测试以确定是否通过。
通过使用可以导入为Excel电子表格的简单测试用例,以及通过将Fitnesse作为独立的Wiki服务器运行,该项目展示了Fitnesse通过在Fitnesse Wiki上运行一次测试页面即可支持大量测试范围的有用性。 。 所有归功于支持...
描述中提到"使用fitness做自动化测试还是很好的",这里的"fitness"应该是对"Fitnesse"的误拼,它强调了Fitnesse在自动化测试中的优势,特别是对于Java应用。Fitnesse允许开发者创建基于自然语言的测试脚本,这些脚本...
欢迎使用FitNesse,它是完全集成的独立验收测试框架和Wiki。 要开始使用,请访问 !快速开始和错误追踪器有错误或功能要求吗? 。社区有不是功能要求或错误报告的问题吗? 边缘构建可在FitNesse的最新稳定版本。 ...