测试RESTful服务的方法?

Daf*_*aff 26 java rest unit-testing

我想直接通过HTTP测试我的RESTful应用程序,我正在寻找可以帮助我完成该任务的工具.基本上我正在寻找一个简单的HTTP请求包装器,可以提交例如HTML表单或序列化资源作为JSON或XML.

如果有办法验证服务是否实际遵循REST架构指南(无状态,URI,内容协商等),那将会很棒.

能够与JUnit一起使用将是一个方便的奖励.你知道任何可以帮助我做我想做的图书馆(这不仅仅是一个简单的http客户端)吗?

Vis*_*hal 13

看看rest-client是否有任何帮助.

编辑:目前我正在使用Postman - REST客户端谷歌浏览器插件,它太棒了!


Joh*_*han 10

我认为REST Assured会让你很好.发送请求和解析XML和JSON响应非常容易.例如,假设对"/ lotto"的GET请求返回JSON:

{
 "lotto":{
  "lottoId":5,
  "winning-numbers":[2,45,34,23,7,5,3],
  "winners":[{
   "winnerId":23,
   "numbers":[2,45,34,23,3,5]
  },{
   "winnerId":54,
   "numbers":[52,3,12,11,18,22]
  }]
 }
}
Run Code Online (Sandbox Code Playgroud)

您可以发出请求并验证响应,如下所示:

expect().body("lotto.lottoId", equalTo(5)).when().get("/lotto");
Run Code Online (Sandbox Code Playgroud)


has*_*ode 5

还有泽西测试框架(http://jersey.java.net/nonav/documentation/latest/user-guide.html#test-framework)但是由于Johan已经提到了REST保证框架,我也建议这样做框架 - 它有一些很好的功能,如DSL语法,XPath和Schema验证,简单的文件上传和使用Groovy Lambda表达式搜索返回的JSON结构..

我写了两篇文章..