自动化测试框架

8
我正在尝试为我们公司的一些内部Web服务(Java)构建自动化测试框架。每个服务都有一组API(3-5个),虽然这可能相对容易实现,但问题在于一些API并不像纯函数那样运作,例如:persistX,它可以将某些内容存储在数据库中,并在失败时返回异常。由于这里没有输出,因此很难进行验证。
所以我想知道是否可以将其泛化一些,例如在测试API时,用户可以为框架提供某种简单插件或脚本来验证测试。这只是一个想法,如果有人能告诉我更好的方法或任何相关资源就太棒了。
谢谢
2个回答

6
我推荐使用机器人框架,这是一个用Python编写的关键词驱动框架。由于可以在JVM上使用jython运行,因此可以使用Java代码(当然也可以使用Python)进行扩展。我成功地使用它调用API,然后通过查看数据库或查询文件系统来验证结果。

它还可以在.NET平台上工作,具有针对前端测试的Selenium模块,Jenkins插件以及其他几个工具。它非常易于扩展和灵活。


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 等环境的设置)。

等等...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接