Fitnesse的4中表格测试实验及接口测试方法-1

上一篇 / 下一篇  2012-04-18 11:30:29 / 个人分类:Fitnesse

Fitnesse4中表格测试实验

tsyXnO SwpK0

一、基础知识51Testing软件测试网d6m"Z8T#m/m

使用eclipse+Fitnesse+Java这种形式学习Fitnesse4种基本表格。

^J@-J5n N$I#R0

fitnesse的测试数据和程序分类的功能,便于数据的读取,同时便于维护数据。

tg }/D K%U*hG.\0

 

|m$s.t#cJ0

前期准备工作

kl@c2\2k0

1)先打开eclipe新建一个java project

+kw~ @v O6wOv0

可通过File > New > Project > Java > Java Project方式新建一个java project命名为FitnesseTest51Testing软件测试网Pw+q9tmSTo

2)FitnesseTest下面新建一个包

#]!L0] m9pcl0

鼠标选中FitnesseTest右键选择New > Other > Java > Package,命名为info.fitnesse.fixturegallery51Testing软件测试网%ubOz9vG?!K

3)http://fitnesse.org/FrontPage.FitNesseDevelopment.DownLoadFitnesse服务包的下载地址,下载此服务包,然后放到本地PC磁盘上,如我放在C盘根目录下面。51Testing软件测试网\JB)li.f0A

4)启动fitnesse服务。51Testing软件测试网5S U?l1d^[2L

  先切换到fitnesse.jar的存放位置,如我在C盘根目录就切换到C:下面51Testing软件测试网Cs-I lF([5n/u

     

bANHt4E&Zi&\,@0

  上面截图就是启动fitnesse服务的一些doc命令51Testing软件测试网N;k%R-_oA YiX

启动fitnesse服务的命令是java –jar fitnesse.jar –p 888851Testing软件测试网)tjhP:M#j$c:Z

fitnesse默认端口是8080,建议大家打开非默认端口,以免别的进程和fitnesse的服务相冲突,如打开8888端口等。51Testing软件测试网%]4]k.jG8]{-[B(Q

5)在浏览器中输入http://localhost:8888/打开fitnesseweb页面

#d{;M8^/].yM0

注意:6-9步骤的前提条件是eclipse里边的被测试接口代码已经书写完成51Testing软件测试网;B A#K8S m6_-f5Q cp#s

6)点击FrontPage右侧的[add child]添加一个test类型的测试对象,该测试对象是FrontPage的子对象,输入的name应该是大驼峰式命名法(upper camel case)比如DemoTest,需要是两个单词的组合,并且首字母大写。

8l|#Yn(qJ0

7)点击Search输入刚才命名的测试对象的名字,查找到该对象,点击该对象的名字51Testing软件测试网8zKMqM

8)点击左侧的[Edit]输入下面练习测试的单个表格格式的数据信息。51Testing软件测试网F9u:KVl/Q

9)点击save保存信息51Testing软件测试网yYj FRr

10)点击 左侧[Test]测试输入程序的数据,绿色表示运行成功,红色表示出错,黄色表示抛出异常信息.51Testing软件测试网*u:x t+~-G1GX6}m

 

7fs9yi|+Hts$J|6i0

注意:51Testing软件测试网kg4qu7n

1)   每种格式的表格在输入测试数据之前需要先输入path确定被测试程序的地址.

j.w#P1xwe0

2)   fitnesse的表结构中两个||表示一列

6VzB$X.m0

3)   Fitnesse表名要和被测试程序的程序名称相同,便于fitnesse识别被测试对象.

OE j&QC}\0

4)   这里实例的fitnesse主要是用到fitnesse的测试数据和程序分类的功能,便于数据的读取,同时便于维护数据,执行每一个testcase的时间也很短.51Testing软件测试网E dRN(lT$~ z"_

5)   Fitnesse可以逐条运行单个接口方法的测试数据,也可以以suite的形式批量运行接口测试方法.

r/W l0]5\W:]0

6)   可以使用eclipse+Fitnesse+Java的形式做接口功能测试,也可以使用LoadRunner+C的形式做接口功能和性能测试,fitnesse实现测试数据和测试代码的分离作用,但是要写的代码量比LoadRunner做接口测试的代码量大.51Testing软件测试网3pL] D&D8fse{4E

7)接口测试的原理都是拼接xml格式或者jason格式的一个报文发送给服务器端,通过截取或者捕捉服务器端的返回信息确定输出结果和预期结果是否一致来判断接口功能是否正常51Testing软件测试网^+S*I%i{K9E0s

 51Testing软件测试网2Ms?$JN

二、Fitnesse的四种表格实例51Testing软件测试网cFP+[/]#c1m%D)PI l\

 

_8v W)u4xzBL0

Basic FIT&SLIM fixtures51Testing软件测试网 `vC!MRAd K

1ColumnFixtureColumnFixture将表的列的字段与fixture类的属性、方法映射起来。ColumnFixture对同一测试的一系列的不同输入值反复验证时非常有效。51Testing软件测试网8[1n.i!G#i,y

举例:

["oO$P!q$WtN'hN5u0

!path D:\eclipse\imageco-test\workspace\FitnessTest\bin51Testing软件测试网2i)Ji.vZC-K

!|info.fitnesse.fixturegallery.ColumnFixtureTest|

cS Hg6qRN$Kh ja0

|first part|second part|together?|total length?|51Testing软件测试网;SHwbv/Y({/r E

|Hello|World|Hello,World|10|

9\i7m{Eeh/T0

|Houston|We Have a Problem|Houston,We Have a Problem|24|51Testing软件测试网$E@1UP DA0aX/A

 

b"m'm9A5VBG0

//这段代码需要放到eclipse里边的info.fitnesse.fixturegallery包下面

0T3N&BI)I F6j0

//创建一个名字为ColumnFixtureTest的类,将下面的这段代码copy过去保存

3`:UT$K hJ?0

// Java fixtures51Testing软件测试网0M'Ny(~9^/yX8oLu2p

package info.fitnesse.fixturegallery;

?:C"o'^J?0

import fit.ColumnFixture;

wl_~"}e6D*Q#Y0

public class ColumnFixtureTest extends ColumnFixture {

-u'pe7Ua~*_)C!]'A0

   public String firstPart; //对应列名|first part|

t8t+B I1M Njx0

   public String secondPart; //对应列名|second part|51Testing软件测试网 s"Xm%o^k*XU1I8X`

   private int length;51Testing软件测试网Q*B2UNL+k ~]7_4H(E

   public String together(){//对应列名|together?|

K/pB%e?JJ J5[0

      length=firstPart.length()+secondPart.length();

5KB O,lu!W7s*z We&K0

      return firstPart+ ","+secondPart;51Testing软件测试网#a ^f)J4X

   }51Testing软件测试网0gdbm#?z

   public int totalLength(){//对应列名|total length?|51Testing软件测试网fxByk \#F

      return length;

nhD,j3Yk5T$S0

   }

KynBbF |IGS0

}

U&Dw7[/Nw(Ps5K0

2ActionFixtureActionFixture最初用于非重复的workflow-style. tests(工作流样式的测试),它用UI metaphorUI隐喻)来自动操作其它fixtures(夹具)51Testing软件测试网{KUGfsv(B7Cp

1check—executes a method and verifies its value.51Testing软件测试网 F'p(w+r x+q G

执行一个方法并验证它的值。

&y9vKL(?0

2press—executes a void method without testing anything.51Testing软件测试网/]df7}Q@FlB

执行一个void方法。

1l,Z#cz#G} H;ZTx)hO0

3enter—executes a method and passes an argument to it.

2\J]'Ys8cYu0

执行一个方法并给它传一个参数。

2k+Xr(X {9z&m6g9s0

举例:

g1OU"o5X]Q#j{0

!path D:\eclipse\imageco-test\workspace\FitnessTest\bin

7\xC)`4U/v A7X0

!|info.fitnesse.fixturegallery.ActionFixtureTest|

6`mWFsmdMk0

!|ActionFixture|

py1OxW}`rI3s0

|start|ActionFixtureTest|51Testing软件测试网@7R,M0?'nI?C

|enter|first part|Hello|

b8B)PyJ5P0

|enter|secondPart|World|51Testing软件测试网([ MucOD*L

|press|join|51Testing软件测试网y&ZF7S,|o

|check|together|Hello,World|51Testing软件测试网'I S-e9\#K B8P

// Java fixtures

7]EnA7A+p0

package info.fitnesse.fixturegallery;51Testing软件测试网|;Z G@l

public class ActionFixtureTest extends fit.Fixture{51Testing软件测试网dc;k5X[ zs9HjM7r(b

   private String first, second, both;51Testing软件测试网Dn&|bKt&X*{lEV"O6y

   public void firstPart(String s){ //对应于|first part|单元

#|NE&uaUo0

      first=s;51Testing软件测试网 gkY@ vI1E!~j&oN

   }51Testing软件测试网 J`z~o6o#b+lL Rw ]

   public void secondPart(String s){ //对应于|secondPart|单元51Testing软件测试网0R4}PbYb/Q;M

      second=s;

il+{8Wh5| O~0

   }

Xv&L7p&a"d0

   public void join(){ //对应|join|单元

,sf5v;F$aF?0

 51Testing软件测试网 jNI*l)U*D0~*X D

      both=first+ ","+second;51Testing软件测试网Wd"?|5G8YXY v

   }

#S?UL1f1cu t A0

   public String together(){ //对应|together|单元51Testing软件测试网i} AM+@

      return both;51Testing软件测试网TJ;um)S;Ti&p!K

   }51Testing软件测试网/d:O1I \x5`lA&on

}51Testing软件测试网Mc:pj/S

3Decision Table:和fit中的ColumnFixture类似。51Testing软件测试网e_rI X6p JI0rV

举例:51Testing软件测试网mZCa:Ad

!path D:\eclipse\imageco-test\workspace\FitnessTest\bin\

wl1uK"Rs#K0

!define TEST_SYSTEM {slim}

'd"Vg3c\7o |F0

!|import                                                       |51Testing软件测试网N/@H)]d lX(Jv

|info.fitnesse.fixturegallery                                  |51Testing软件测试网7_1N*Y)w/a

//注意此处空一行,把测试数据和声明信息分开(测试时候请去掉此注释,保存//此空白行即可)

m-oG-aAvv&?!W0

|ShouldIBuyMilk                                                |51Testing软件测试网\U-W@"t3S_6O^`8R_

|cash in wallet|credit card|pints of milk remaining|go to store?|

*U;vD9Q8[j&Oz'f0

|0            |no        |0                     |no         |

)b"hr{'w(j"vk5@0

|10           |no        |0                     |yes        |51Testing软件测试网H9L3`T`&N"Xn1`

|0            |yes       |0                     |yes        |

GS#g PgbW_'X0

|10           |yes       |0                     |yes        |51Testing软件测试网zV rxs

|0            |no        |1                     |no         |

g)a n)Fpi0

|10           |no        |1                     |no         |

Q xQ vuF0

|0            |yes       |1                     |no         |51Testing软件测试网:^I8\W%bo_,Q

|10           |yes       |1                     |nope       |51Testing软件测试网5~0Zd2nBad&jEa,Q

 51Testing软件测试网\L[q1Y9q%KxN

// Java fixtures

9tp'N g%YL0

packageinfo.fitnesse.fixturegallery;

iz V i_[t0

publicclassShouldIBuyMilk {51Testing软件测试网fkS6T)p;X%~*X

   privateintdollars;

u.o X#ApfM6o?$Q0

   privateintpints;51Testing软件测试网I[%yp(z\c Dt

   privatebooleancreditCard;

OyyFl3v0

 51Testing软件测试网,G'JwUj

   publicvoidsetCashInWallet(intdollars) {51Testing软件测试网6c3e{XrWf

      this.dollars= dollars;51Testing软件测试网3lp$t?] _

   }51Testing软件测试网4~,B.y*R4Q9P9Ri

 

U h;sU3o t n0

   publicvoidsetPintsOfMilkRemaining(intpints) {51Testing软件测试网l ot"R DW*gG

      this.pints= pints;

z,\-QJ z5F0

   }

.fn,sUFP9a$d0

 51Testing软件测试网${g$_u"Q8Zn.A

   publicvoidsetCreditCard(String valid) {

polsDF ~0

      creditCard="yes".equals(valid);

]7R]azqg?yJL0

   }51Testing软件测试网0v? zFQN\

 51Testing软件测试网6Q$CJ A(MO-W2F

   publicString goToStore() {51Testing软件测试网)[9t$H m,?J

      if((pints==0)&&((dollars>2)||creditCard))51Testing软件测试网5C9Kp1Z%gu

          return"yes";51Testing软件测试网5x0mH,g Fv(ZT

      else51Testing软件测试网9Q6p/m-x!PX+ej-Q

          return"no";

h/`#[:vD B;bYK0

   }

'J6f+P)zI_0

 51Testing软件测试网hsx@QERNS

 

Xr,@"cU7sh0

}51Testing软件测试网%].}-Y0V k [6R9s

 

O a&tZ{-m5Sy0

TAG:

 

评分:0

我来说两句

Open Toolbar