Automated tests 使用FitNesse和soapUI进行Web应用程序测试-有关于测试管理和可维护性的最佳实践吗?

Automated tests 使用FitNesse和soapUI进行Web应用程序测试-有关于测试管理和可维护性的最佳实践吗?,automated-tests,soapui,fitnesse,Automated Tests,Soapui,Fitnesse,致所有测试自动化专家:-)!我想听听你对以下情况的看法: 我需要测试一个web应用程序。我必须在服务器上运行后端测试,在客户端上运行前端测试。我还需要运行端到端测试,包括后端和前端 服务器公开Web服务(SOAP),前端客户端使用这些服务中的数据。还有第三方客户机使用来自web服务的数据。有时,测试场景要求我进行端到端测试,即在前端GUI中进行一些更改,然后在后端使用web服务来确定更改是否成功 我喜欢“适合”——在我看来,将什么和为什么与如何分开对于设计好的测试至关重要。有Selenesse模

致所有测试自动化专家:-)!我想听听你对以下情况的看法:

我需要测试一个web应用程序。我必须在服务器上运行后端测试,在客户端上运行前端测试。我还需要运行端到端测试,包括后端和前端

服务器公开Web服务(SOAP),前端客户端使用这些服务中的数据。还有第三方客户机使用来自web服务的数据。有时,测试场景要求我进行端到端测试,即在前端GUI中进行一些更改,然后在后端使用web服务来确定更改是否成功

我喜欢“适合”——在我看来,将什么和为什么与如何分开对于设计好的测试至关重要。有Selenesse模块,可以将Selenium测试与FitNesse wiki页面集成。这使得我可以很容易地从我想要如何测试某个东西(场景表和脚本表)来描述我需要测试什么以及为什么需要测试它(wiki文本),这正是我想要的

FitNesse的问题是测试SOAP web服务有点麻烦。或者,我需要开发一个专门构建的SOAP客户端Java fixture,或者我必须编写Java fixture来扩展ServiceFixture类,为FIT编写。无论采用哪种方式,开发工作量都比在soapUI中实现这些测试要大得多

在我看来,soapUI的缺点是没有简单的方法来解释测试的内容和原因(至少不是以直观的方式)

因此,假设我希望为端到端测试做出合理的开发努力,我已经决定在FitNesse/Selenesse中编写GUI测试,在soapUI中编写后端测试。我现在可以选择尝试从FitNesse运行soapUI测试,在那里管理所有测试,或者从soapUI运行FitNesse测试


我对这种方法的测试管理(不太容易在一个视图中看到测试结果)和可维护性(两个不同语言的工具)有一些担心。您对这方面的最佳/良好实践有何想法?您是否建议使用第三种工具来管理其他两种工具?

您是否使用任何持续集成工具,如hudson、Bambon

我问这个问题是因为我建议您更喜欢持续集成方法,这样您就有机会在每次提交/构建后自动测试应用程序

我的意思是,如果你使用hudson或Bambol,你就有机会在开发人员提交任何东西后运行测试。此外,您还可以按计划运行测试

另一个优点是,这些工具(hudson/Bambol)可以记录测试脚本,并可以在失败/成功的情况下发送电子邮件(由您选择)。因此,您可以轻松监控测试

您还可以并行或连续运行selenium和soapUI


我还对soapUI测试提出了一些建议

您拥有的测试用例越多,开发、执行和维护它们所需的时间就越多。重点是在设计测试时考虑维修性。

如果一个应用程序有多个可用的web服务,则WSDL将发生更改,并且需要在SoapUI中更新。在一个soapUI项目中,您只需要在一个位置更新wsdl,而不需要在多个项目中更新wsdl。因此,只为一个应用程序创建一个soapUI项目

然后您需要创建测试套件和测试用例


在一个回归测试套件中包含所有服务的主要流程(成功场景)。web服务的请求应该根据逻辑业务流进行排序。例如,如果您测试在线商店的web服务,您需要首先搜索商品,然后购买。如果您在soapUI测试中保持这种逻辑业务顺序,那么您可以轻松地为每个测试步骤设置一个全局变量。我的意思是,在第一步中,您可以搜索项目X,然后购买相同的项目,这种方式允许为项目X设置一个全局变量。维护或扩展这样的soapUI项目更容易。您有机会创建数据源并收集变量(在线商店示例中的不同项目),并在循环中扩展这些项目的情况

我建议您使用soapui创建测试套件,并使用jenkins报告测试结果

您可以使用jenkins和genrate xml测试结果文件执行soapui测试和fitnesse测试。此设置在构建end2end测试时非常有用。我们可以将任何测试集或测试套件与Jenkins很好地结合在一起,并且您必须以非常好的方式呈现和保存测试结果


当专注于一个工作组件时,在sprint或完整的应用程序中完成任务不够稳定,无法投入大量精力在end2end测试中。我认为您应该专注于单独使用soapui测试

哎呀,很抱歉回复晚了!非常感谢您的提示,我将尝试您的方法:-)。