4

我需要以REST格式测试Web API函数。目前使用Selenium RC进行网站功能测试。并使用XmlUnitHttpClient功能测试我们的REST API。但是如果我们真的能够将我们的功能测试代码分离到所有的硒中,生活似乎会变得更加容易。特别是使用Selenium 2.0的WebDriver,使用XPath来测试XML响应比以往任何时候都容易。Selenium与XmlUnit + HttpClient进行Web REST API测试

我在临XmlUnit+HttpClient阵营的想法:

  • 允许轻松地与数据库直接调用或Spring bean的测试
  • 更容易让测试JSON响应当/如果我们支持,在未来的
  • 硒是用于网络用户界面,而不是REST API测试

我在Pro Selenium WebDriver阵营的想法:

  • 功能测试分离出全部纳入标准Selenium测试
  • 轻松地通过使用我们的其他硒的UI测试,进一步测试UI
  • 允许别人比核心开发人员审查功能API测试
  • 也许测试结果更容易使用诸如使用硒测试的BrowserMob之类的服务来加载测试API?
  • 希望更快的功能测试与硒的框架

我们使用Spring 3和休眠。功能测试我们的API最适合什么?

回答

6

另一个选择可能是使用REST Assured,一个Java DSL来测试REST服务。它允许您编写单元样式测试,同时为XML和JSON提供很少的样板代码。此外,它还提供更高级的功能,如身份验证,XSD/DTD验证,响应代码,cookie等。更多信息请见usage page

声明:REST Assured是一个由我的同事发起的开源项目。

-1

测试API听起来不像功能测试,但更像是单元测试。所以,我会去XMLUnit测试+ HttpClient的

+0

嗯......我想测试一个API是在单位和功能之间...好点。 – 2010-12-07 23:29:02

+1

我称之为集成测试,而不是单元测试。假设API背后的代码是经过单元测试的,这种测试大多会验证单元测试假设是正确的,因此可以正确地整合不同的单元。 – 2012-09-27 14:06:33

2

如果你想要做休息API真实的功能测试,然后我可以推荐FitNesse的这个夹具:https://github.com/smartrics/RestFixture

硒是只为这种事情一个糟糕的选择。

至于性能测试,您可以在几分钟内敲掉Jmeter中的其余API测试,无需支付第三方费用。