1.2.3 接口可测性分析

  接口显而易见要比UI简单的都,只需要知道协议和参数即可完成一次请求,从自动化测试实施难易程度来看,有以下几个特征:

  1)驱动执行接口的自动化成本不高:HTTP,RPC,SOAP,RMI等各类都可以依据相应的协议封装一个client作为接口请求的执行器。

  2)整个自动化测试中综合性价比高:接口测试还是属于黑盒范畴,所以比单元测试难度要低;而相比UI自动化稳定性可靠性更高。

  2、接口测试工具选型

  2.1 常见测试工具

  2.1.1 JUnit

  JUnit作为单元测试框架常被用作白盒测试,框架具备的一些优良特征有:

  1)提供丰富API支持多种验证结果正确性的逻辑

  2)通过参数化、@before、@after等特性,支持用例代码可复用

  3)suite的模式支持case的批量运行

  4)有展现良好的报表

  5)与eclipse ide集成,使用方便

  2.1.2 HttpClient

  HttpClient是一个功能丰富支持HTTP协议的客户端编程工具包,具备以下主要功能:

  1)封装实现了所有HTTP的方法,如GET,POST,PUT,HEAD

  2)支持redirect,会话保持

  3)支持文件上传

  2.1.3 HttpUnit

  HttpUnit是一个HTTP请求的测试辅助工具,能处理web测试的需求。通过模拟浏览器的行为,处理HTTP请求、会话保持、重定向以及对HTTP?response做DOM解析。

  相比于HttpClient,不同之处在于:

  1)HttpUnit能对HTTP返回的结果页进行解析,比如DOM元素定位

  2)HttpUnit能自己启动一个servlet来运行被测服务

  2.1.4 HtmlUnit

  HtmlUnit相比HttpUnit功能更加强大,像一个浏览器,HtmlUnit是Junit的扩展测试框架之一,该框架模拟浏览器的行为,开发者可以使用其提供的API对页面的元素进行操作。HtmlUnit支持HTTP,HTTPS,COOKIE,表单的POST和GET方法,能够对HTML文档进行包装,页面的各种元素都可以被当作对象进行调用,对JavaScript的支持也比较好。

  2.1.5 JWebUnit

  JWebUnit以HttpUnit和JUnit为基础的一个web测试工具。可以用来验证链接跳转、表单输入和提交、表格内容以及其他?Web?应用程序特性的正确性。相比于HtmlUnit,JWebUnit封装的更友好,编写case也会更加简单。