最近,工作中涉及到需要对接口进行自动化测试,因而在网上找一些相关的资料进行学习一下。
接下来,通过他山之石,以解目前困惑,也方便大家都学习一下。
随着云计算、SOA、敏捷开发的热火朝天,对于测试工程师的要求也是渐渐增加。目前,很多公司特别是互联网公司都已经开展接口测试这样的工作,随着WEB架构的日趋复杂,接口的种类也多种多样,有http、webservice、hessian、dao、message以及简单的API接口,那么如何设计或者选择一款测试框架来完成对这些接口的测试成为了一个很大的挑战。
本文 将简单介绍一款由java开发的开源测试框架Fitness,在接口测试方面的使用,并且列举一些简单的demo来进行演示和说明。
Fitness是一个轻量级的开源框架,能够帮助开发和测试团队方便的定义接口,验收测试(Acceptance Tests)。Fitness支持多语言软件产品的测试,包括(JAVA、C、C++、Python、php)等等,具体使用可参考:http://www.fitnesse.org/.FitNesse.UserGuide,因为关于Fitness工具的介绍不是本文的主要意图。
在FITness框架中,总共包括三个部分:Wiki、Test system、Fixtures。
1、Wiki部分将展现具体的Test Case以及Test suite甚至是Test Requirement;
2、Test system包括两个部分:Slim、Fit,也就是Fitness的执行引擎;
3、Fixtures也就是真正的测试代码。Fitness具体框架如下:
【框架解说】:
从上图可以看到,在Wiki Page上描述的是关于业务逻辑的测试用例,Fitness将会根据你所选择的Test System(slim或者fit)来解析Wiki Pages所传送过来的Test cases。
----【slim方式】假如我们选择了slim作为我们的test system,那么slim runner将会把网络传输过来的wiki脚本转换为一系列的指令,然后slim executer将会解析并执行这些指令来调用我们所编写的测试代码,也就是Fixtures code,Fixtures可以是Java语言测试代码、C语言测试代码或者其他语言编写的测试代码,测试代码将会调用被测对象来执行测试用例。
----【fit方式】假如我们选择了fit作为Test runner的话,过程也是一样。只是fit在解析Wiki脚本的时候,与slim不一样,fit会将Wiki page作为html页面,然后通过解析html页面来调用后台的测试代码,来执行测试用例,相对于slim性能上较差。另外,在使用fit的时候,设计测试代码也必须继承fit的类来进行编写,相对slim测试代码编写相对受限。
综上,建议大家使用slim,因为slim会更加的轻量和高效。
我们可以使用Fitness做单元测试、集成测试、接口测试等相关测试,本文重点介绍的是Fitness在接口集成测试方面的使用,好啦,上面啰嗦了这么多,该切入正题了。
下面的例子,将利用Fitness slim做Test Runner,进行JAVA环境下的接口测试。
Http接口测试
可以利用第三方工具httpClient.jar编写http接口客户端发送Request在此我们做一个简单的http接口测试,如对infoq登录接口进行测试。
首先,编写测试代码如下:
1、发送Post请求:
(1)、设置请求参数
该方法有两个参数,第一个参数为Map类型表示请求表单参数,第二个参数用来表示表单参数的个数,其中parameters为NameValusePair数组,并设为全局变量。
(2)、发送请求
该方法参数为:请求URL,postResponse为服务端返回值。
(3)、检验返回值
当然,这里的postResponse,可能要根据业务要求的检查点来做一些具体的解析,在本用例中不做详细的解析。
接下来,用Fitness来设计测试用例并执行测试:
(1)设置表格环境变量,指定使用slim作为Test system,并且定义classpath,便于fitness能够驱动测试代码执行用例。
(2)定义测试数据,如提交的表单数据用户名和密码,我们是用来测试infoq的登录功能。
(3)定义预期输出值,在登录infoq成功之后,服务器返回参数中会返回“OK”字符串,该测试用例就是用来描述是否登录成功的scenario。
原文链接:
http://blog.csdn.net/gzh0222/article/details/7870107