利用Fitnesse做接口自动化测试-1

上一篇 / 下一篇  2012-04-18 17:05:49 / 个人分类:Fitnesse

随着云计算以及SOA以及敏捷软件开发的热火朝天,对于测试工程师的要求也渐渐增加。目前很多公司特别是互联网公司都已经开展接口测试这样的工作,随着web架构的日趋复杂,接口的种类也多种多样,有http,webservice,hessian,dao,message以及简单的api接口,那么如何设计或者选择一款测试框架来完成对这些接口的测试成为了一个很大的挑战。本文将简单介绍一款由java开发的开源测试框架Fitnesse在接口测试方面的使用,并且列举一些简单的demo来进行演示和说明。

*H1?$z2px}0  FitNesse是一个轻量级的开源框架,能够帮助开发和测试团队方便的定义接口验收测试(Acceptance Tests)。Fitnesse支持多语言软件产品的测试,包括(java,c,c++,python,php)等等。在Fitnesse框架中,总共包括三个部分,Wiki,Testsystem,Fixtures。其中Wiki部分将展现具体的Test case以及Test suite甚至是Test Requirement,Test system包括两部分Slim,Fit,也就是Fitnesse的执行引擎,Fixtures也就是真正的测试代码。Fitnesse具体架构图如下所示:从上图大家可以看到,在Wiki pages上描述的是关于业务逻辑的测试用例,Fitnesse将会根据你所选择的Test System(slim或者fit)来解析Wiki pages所传送过来的Test cases, 假如我们选择了slim作为我们的test system,那么slim runners将会把网络传输过来的Wiki 脚本转换为一系列的指令,然后slim executer将会解析并执行这些指令来调用我们所编写的测试代码也就是Fixtures code,fixtures可以是java语言测试代码,C语言测试代码或者其他语言编写的测试代码,测试代码将会调用被测对象来执行测试用例。同理当你选择fit作为Test runner的话过程也是一样,只是fit在解析wiki脚本的时候与slim不一样,fit会将wiki page作为html页面,然后通过解析html页面来调用后台的测试代码来执行测试用例,相对于slim性能上较差。另外在使用fit的时候设计测试代码也必须继承fit的类来进行编写,相对slim测试代码编写相对受限。因此我推荐大家使用slim,因为slim会更加的轻量和高效,在过去的两年时间里面我们团队一直使用slim作为test runner,并且在slim的基础做了很多二次开发和改进,相对来说比较稳定。

ieQLuX0

AO s5f0z~/F0  我们可以使用Fitnesse做单元测试,集成测试,接口测试等相关测试。本文重点介绍Fitnesse在接口集成测试方面的使用,废话少说,下面上主菜,在下面的例子中,将利用Fitnesse slim 做TestRunner,进行Java环境下的接口测试。

7d&nv#G c%p:Hg,s0

F-Rk;`/P#T p M0  Http接口测试51Testing软件测试网8TnQOiq UJ/w

51Testing软件测试网2^*TO-~,Sn*`

  可以利用第三方工具httpClient.jar编写http接口客户端发送Request.在此我们做一个简单的http接口测试,如对infoq登录接口进行测试。

(DbIv!HP0l+b!Aj4W0

z)a3|3\n0F P0  首先编写测试代码如下:

)ptSk%da0

"t-lo*it`0  1、发送Post请求:51Testing软件测试网8v A8u|0Haf,N

Pe#e,UG\G8A*U0  (1)设置请求参数

a$F$T5gNm5t0

Q*H!koA;r0

  该方法有两个参数第一个参数为Map类型表示请求表单参数,第二个参数用来表示表单参数的个数,其中parameters为NameValuePair数组,并设为全局变量。51Testing软件测试网TH8j0Ti5w W

  (2)发送请求

|4jB3sfz)N y(V/uN0

ASYk%[+d0

  该方法参数为请求URL,postResponse为服务端返回值。51Testing软件测试网C`,aCY1h!E B

  (3)检验返回值51Testing软件测试网9k:z1G*UK,Mk"{4?

51Testing软件测试网1VP4z0i-o6d


TAG:

 

评分:0

我来说两句

Open Toolbar