Java 自动API稳定性测试

Java 自动API稳定性测试,java,spring,maven,jetty,automated-tests,Java,Spring,Maven,Jetty,Automated Tests,我有一个webapp,我想测试它的API稳定性 为了测试API,我依赖于包含由API编写的域对象的项目,我调用API并尝试将对象反序列化(使用SpringRestTemplate)到域对象中 在开发新版本的API时,将使用较新版本的域对象项目。 下面是场景的图片: 现在,我想要一种在构建服务器上针对给定的webapp运行测试项目的自动化方法(在本例中,是Jenkins,使用maven或ant)。问题是它们与不同的版本共享一个依赖项(因此我无法将它们构建在一起) 我目前的方法是构建webapp,

我有一个webapp,我想测试它的API稳定性

为了测试API,我依赖于包含由API编写的域对象的项目,我调用API并尝试将对象反序列化(使用SpringRestTemplate)到域对象中

在开发新版本的API时,将使用较新版本的域对象项目。 下面是场景的图片:

现在,我想要一种在构建服务器上针对给定的webapp运行测试项目的自动化方法(在本例中,是Jenkins,使用maven或ant)。问题是它们与不同的版本共享一个依赖项(因此我无法将它们构建在一起)

我目前的方法是构建webapp,将其部署在jetty中,然后尝试运行测试。事实证明这很难


对如何解决这个问题有什么看法?以前的经验?

为什么webapp测试依赖于域1.1和1.2-SNAPSHOT上的webapp api?webapptests工件不应该依赖于与webappapi相同的公共依赖关系吗?如果它是同一个工件,只是具有不同的版本,那么您可以将其配置为属性。但我认为最好也将webapp api添加到项目中,以便共享通用版本:

  • 域(版本)
  • webapp api(取决于域)
  • webapp测试(取决于域,测试webapp api)
所有共享相同的父级和相同的版本

如果您想针对先前发布的版本(或其中一个版本)进行测试,则需要执行类似于cobertura插件的操作: 这意味着要编写一个插件

您是否尝试将要测试的依赖项添加到maven配置文件中,以便webapp测试使用不同版本的域重新运行webapp api?因此,您可以重新运行测试,激活不同的配置文件

我可能只是把问题搞错了:)
如果webapp测试应该包含不同的版本,那么不要让它依赖于webappapi或域项目?由于您进行rest测试,因此没有依赖项可能干扰的公共类路径?

也许比Jetty更适合这种情况?您想简单地测试将旧版本的序列化对象反序列化为新版本的对象吗?或者您真的需要测试整个域项目的不同版本吗?我希望看到旧版本对象的序列化版本可以反序列化为新版本对象。另外,我想测试实际的RESTAPI端点是否没有改变。我们使用不同的版本,因为我们正在测试向后兼容性。我现在有了一些工作,jenkins可以下载、部署并启动一个tomcat,我将webapp部署到它,然后针对它运行测试项目。。。有点乱。