2012-02-03 138 views
8

我正在尝试为我们的一些内部Web服务(Java)在工作中构建一个自动化测试框架。每个服务都有一组API(3-5),虽然这可能相对容易实现,但问题出现在一些不像纯函数那样的API上:ex:类似persistX的东西,这可以将某些东西存储在数据库中,返回失败的异常。 有没有简单的方法来验证,因为这里没有输出。自动测试框架

所以我想知道如果这可能有点泛化,比如测试API时,用户可以提供一个简单的插件或脚本到某种可以验证测试的框架。如果有人能告诉我一些更好的或相同的资源,这只是一个想法。

感谢

回答

6

我建议robot framework。这是一个用python编写的关键字驱动框架。因此,您可以使用jython在JVM中运行它,这意味着您可以使用java代码(当然是python)来扩展它。我成功地使用它来调用API,然后通过查看数据库或查询文件系统来验证结果。

它也适用于.NET平台,有一个用于测试前端的selenium模块,一个jenkins插件和其他几个工具。它非常具有可扩展性和灵活性。

4

你在看什么是黑盒和白盒测试的应用程序和支持两者的工具。

对于返回适当响应的Web服务,您可以通过验证返回响应中的数据来执行黑盒测试。 SoapUI是最好的工具。

对于不表现为纯函数的API,您做白盒测试通过验证其副作用像持久性,事件生成,记录等。对于这一点,你喜欢编程工具和了SoapUI可能会或可能不会是正确的选择。

我们在我们的工作和评估多个工具/框架(SoapUI,RSSPec,Robotframework)后都选择了Spock。为什么spock?

  1. 它允许你写的意图显露测试在BDD风格
  2. 我们是Java店,我们要使用自动化同样熟悉的语言以及但是简单的语法糖。 Spock基于Groovy。
  3. 优秀的webdriver /硒2 Geb
  4. 支持(包括PageFactory)它是建立在JUNIT的顶部,这样所有的JUnit插件可以利用(代码覆盖,哈得逊/詹金斯集成等)
  5. 地段Web服务API和XML的DSL(无需使用XPath来简单的使用状况)
  6. 简化的设置(不像robotframework它并不需要蟒,Jython的设置)

等....