Java 测试RESTful服务的方法?
我想通过HTTP直接测试我的RESTful应用程序,我正在寻找能够帮助我完成这项任务的工具。基本上,我正在寻找一个简单的HTTP请求包装器,可以提交HTML表单或JSON或XML格式的序列化资源 如果有一种方法可以验证服务是否也遵循REST体系结构准则(无状态、URI、内容协商等),那就太好了Java 测试RESTful服务的方法?,java,unit-testing,rest,Java,Unit Testing,Rest,我想通过HTTP直接测试我的RESTful应用程序,我正在寻找能够帮助我完成这项任务的工具。基本上,我正在寻找一个简单的HTTP请求包装器,可以提交HTML表单或JSON或XML格式的序列化资源 如果有一种方法可以验证服务是否也遵循REST体系结构准则(无状态、URI、内容协商等),那就太好了 能够与JUnit一起使用它将是一个方便的奖励。你知道有哪些库可以帮助我完成我想做的事情吗(这些库不仅仅是一个简单的http客户端)?也许Selenium可以提供一些帮助,但肯定不是全部。看看是否有帮助 编
能够与JUnit一起使用它将是一个方便的奖励。你知道有哪些库可以帮助我完成我想做的事情吗(这些库不仅仅是一个简单的http客户端)?也许Selenium可以提供一些帮助,但肯定不是全部。看看是否有帮助 编辑:目前我正在使用Postman-REST客户端,这是一个谷歌浏览器插件,非常棒 我想这会很适合你的。发送请求和解析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]
}]
}
}
您可以这样发出请求并验证响应:
expect().body("lotto.lottoId", equalTo(5)).when().get("/lotto");
Fiddler是一个非常有用的工具,您可以使用各种请求动词(如GET、POST、PUT、DELETE等)创建基于XML的HTTP请求
还有Jersey测试框架(http://jersey.java.net/nonav/documentation/latest/user-guide.html#test-框架)但正如Johan已经提到的REST assured框架,我也推荐这个框架-它有一些很好的特性,比如类似DSL的语法、XPath和模式验证,轻松上传文件并使用Groovy Lambda表达式搜索返回的JSON结构 我写了两篇文章
- 第一个比较了REST-assured和Jersey测试框架()
- 第二部分针对给定的REST服务()