Fitnesse的4中表格测试实验及接口测试方法-1
上一篇 / 下一篇 2012-04-18 11:30:29 / 个人分类:Fitnesse
Fitnesse的4中表格测试实验
一、基础知识
使用eclipse+Fitnesse+Java这种形式学习Fitnesse的4种基本表格。
fitnesse的测试数据和程序分类的功能,便于数据的读取,同时便于维护数据。
前期准备工作:
1)先打开eclipe新建一个java project
可通过File > New > Project > Java > Java Project方式新建一个java project命名为FitnesseTest
2)在FitnesseTest下面新建一个包
鼠标选中FitnesseTest右键选择New > Other > Java > Package,命名为info.fitnesse.fixturegallery。
3)http://fitnesse.org/FrontPage.FitNesseDevelopment.DownLoadFitnesse服务包的下载地址,下载此服务包,然后放到本地PC磁盘上,如我放在C盘根目录下面。
4)启动fitnesse服务。
先切换到fitnesse.jar的存放位置,如我在C盘根目录就切换到C:下面
4A i3da:jX6KR[(h0
上面截图就是启动fitnesse服务的一些doc命令
启动fitnesse服务的命令是java –jar fitnesse.jar –p 8888
fitnesse默认端口是8080,建议大家打开非默认端口,以免别的进程和fitnesse的服务相冲突,如打开8888端口等。
5)在浏览器中输入http://localhost:8888/打开fitnesse的web页面
注意:6-9步骤的前提条件是eclipse里边的被测试接口代码已经书写完成
6)点击FrontPage右侧的[add child]添加一个test类型的测试对象,该测试对象是FrontPage的子对象,输入的name应该是大驼峰式命名法(upper camel case)比如DemoTest,需要是两个单词的组合,并且首字母大写。
7)点击Search输入刚才命名的测试对象的名字,查找到该对象,点击该对象的名字
8)点击左侧的[Edit]输入下面练习测试的单个表格格式的数据信息。
9)点击save保存信息
10)点击 左侧[Test]测试输入程序的数据,绿色表示运行成功,红色表示出错,黄色表示抛出异常信息.
注意:
1) 每种格式的表格在输入测试数据之前需要先输入path确定被测试程序的地址.
2) 在fitnesse的表结构中两个||表示一列
3) Fitnesse表名要和被测试程序的程序名称相同,便于fitnesse识别被测试对象.
4) 这里实例的fitnesse主要是用到fitnesse的测试数据和程序分类的功能,便于数据的读取,同时便于维护数据,执行每一个testcase的时间也很短.
5) Fitnesse可以逐条运行单个接口方法的测试数据,也可以以suite的形式批量运行接口测试方法.
6) 可以使用eclipse+Fitnesse+Java的形式做接口功能测试,也可以使用LoadRunner+C的形式做接口功能和性能测试,fitnesse实现测试数据和测试代码的分离作用,但是要写的代码量比LoadRunner做接口测试的代码量大.
7)接口测试的原理都是拼接xml格式或者jason格式的一个报文发送给服务器端,通过截取或者捕捉服务器端的返回信息确定输出结果和预期结果是否一致来判断接口功能是否正常
二、Fitnesse的四种表格实例
Basic FIT&SLIM fixtures
1)ColumnFixture:ColumnFixture将表的列的字段与fixture类的属性、方法映射起来。ColumnFixture对同一测试的一系列的不同输入值反复验证时非常有效。
举例:
!path D:\eclipse\imageco-test\workspace\FitnessTest\bin
!|info.fitnesse.fixturegallery.ColumnFixtureTest|
|first part|second part|together?|total length?|
|Hello|World|Hello,World|10|
|Houston|We Have a Problem|Houston,We Have a Problem|24|
//这段代码需要放到eclipse里边的info.fitnesse.fixturegallery包下面
//创建一个名字为ColumnFixtureTest的类,将下面的这段代码copy过去保存
// Java fixtures
package info.fitnesse.fixturegallery;
import fit.ColumnFixture;
public class ColumnFixtureTest extends ColumnFixture {
public String firstPart; //对应列名|first part|
public String secondPart; //对应列名|second part|
private int length;
public String together(){//对应列名|together?|
length=firstPart.length()+secondPart.length();
return firstPart+ ","+secondPart;
}
public int totalLength(){//对应列名|total length?|
return length;
}
}
2)ActionFixture:ActionFixture最初用于非重复的workflow-style. tests(工作流样式的测试),它用UI metaphor(UI隐喻)来自动操作其它fixtures(夹具)。
1、check—executes a method and verifies its value.
执行一个方法并验证它的值。
2、press—executes a void method without testing anything.
执行一个void方法。
3、enter—executes a method and passes an argument to it.
执行一个方法并给它传一个参数。
举例:
!path D:\eclipse\imageco-test\workspace\FitnessTest\bin
!|info.fitnesse.fixturegallery.ActionFixtureTest|
!|ActionFixture|
|start|ActionFixtureTest|
|enter|first part|Hello|
|enter|secondPart|World|
|press|join|
|check|together|Hello,World|
// Java fixtures
package info.fitnesse.fixturegallery;
public class ActionFixtureTest extends fit.Fixture{
private String first, second, both;
public void firstPart(String s){ //对应于|first part|单元
first=s;
}
public void secondPart(String s){ //对应于|secondPart|单元
second=s;
}
public void join(){ //对应|join|单元
both=first+ ","+second;
}
public String together(){ //对应|together|单元
return both;
}
}
3)Decision Table:和fit中的ColumnFixture类似。
举例:
!path D:\eclipse\imageco-test\workspace\FitnessTest\bin\
!define TEST_SYSTEM {slim}
!|import |
|info.fitnesse.fixturegallery |
//注意此处空一行,把测试数据和声明信息分开(测试时候请去掉此注释,保存//此空白行即可)
|ShouldIBuyMilk |
|cash in wallet|credit card|pints of milk remaining|go to store?|
|0 |no |0 |no |
|10 |no |0 |yes |
|0 |yes |0 |yes |
|10 |yes |0 |yes |
|0 |no |1 |no |
|10 |no |1 |no |
|0 |yes |1 |no |
|10 |yes |1 |nope |
// Java fixtures
packageinfo.fitnesse.fixturegallery;