自动化测试框架

时间:2012-02-03 03:08:47

标签: java testing frameworks automated-tests

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

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

由于

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:4)

您正在研究的是黑盒和白盒测试的应用以及支持这两种测试的工具。

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

对于不像纯函数那样运行的API,您可以通过验证其副作用(如持久性,事件生成,日志记录等)来进行白盒测试。为此您喜欢可编程工具和SoapUI可能是也可能不是正确的选择。

我们在工作中做了两件事,在评估了多个工具/框架(SoapUI,RSSPec,Robotframework)之后,我选择了Spock。为什么spock?

  1. 它允许您以BDD风格编写意图揭示测试
  2. 我们是Java商店,我们希望使用相同的熟悉语言进行自动化,但使用简化的合成糖。并且spock都是基于groovy的。
  3. 优秀的Webdriver / Selenium 2支持(包括PageFactory)和Geb
  4. 它建立在JUNIT之上,因此可以利用JUNIT的所有插件(代码覆盖,hudson / jenkins集成等)
  5. 许多Web服务API和XML DSL(对于简单的场景,无需使用XPATH)
  6. 简化设置(与机器人框架不同,它不需要python,jython设置)
  7. 等...