用于自动计划自动回归测试的执行顺序的框架?

| 我目前正在为相对复杂的应用程序实现测试套件的实现。该应用程序是基于Java和Spring的Web前端。前端测试也可以用Java编写(使用Silk4J及其自动化客户端)。实际上编写测试不是问题,这是容易的部分。它开始变得棘手的地方是可以执行各个测试的顺序。 当前,我们正在使用JUnit编写测试。由于JUnit是一个单元测试工具,因此执行测试的顺序是不确定的。如果仅为应用程序的每个模块创建测试,就会很快遇到麻烦。有些测试必须依靠其他部分才能正常工作,并且其他模块中的某些数据可用。我可以以将应用程序状态初始化为预定义状态,然后执行其测试的方式编写每个模块的测试,但是必须清理并准备该状态会很费力。更复杂的测试需要跨越多个模块的大量准备工作和测试场景。 我正在寻找的是一个测试框架,其中每个测试都可以以某种方式定义其需求以及它测试/提供的服务(对create-user-feature的测试实际上可以创建用户……至少应该如此) 。现在,我不想硬编码使用哪个数据和哪个顺序运行哪个测试,因为确定顺序非常复杂,并且对应用程序的更改将使得必须完全重构测试。 例如,我的“创建用户测试”将用户创建为实际检查用户是否正确创建的副作用。对我而言,只要使用该功能就可以使用userA,userB或userC进行测试就无关紧要。如果我现在有另一个测试\“ create-account-test \”,它要求只满足userC的用户,则测试系统应该知道\“哦... create-account-test需要userC,但尚未创建但是通过将userC传递给我的\“ create-user-test \\”,将创建它。因此,在最后的执行中,它先在user \ C之前运行\“ create-user-test \\”,然后再运行\“ create-account-test \因此使用“创建用户测试”的副作用来创建“创建帐户测试”所需的状态。 通过检查我的测试的要求和服务。这样的系统应该能够创建一个至少包含每个测试一次的非循环图(从而测试整个功能),而不必为每个测试准备/拆卸应用程序状态或在某种程度上无法触发错误。创建这样的图。至少通过这种方式,我可以创建仍可维护的巨大测试方案。 我知道这有点复杂。如果有人已经准备好在这样的框架上工作,我会用Google搜索一段时间。不幸的是我找不到类似的东西。 现在,我希望这里有人引导我使用工具,或者告诉我为什么这是一个完全不好的主意。 “嘿……好主意……还没有人创造出这样的东西”的回答……肯定会极大地浪费我的下班时间,因为那样的话我很可能会开始开发这样的工具;- ) 克里斯     
已邀请:
像jUint这样的工具通常不支持对测试的运行进行排序,因为通常认为这对单元测试是一种不好的做法。在单元测试中,您要确保每个测试完全独立于其他测试,并且没有外部依赖关系。 但是您没有进行单元测试,因此尝试使用jUnit会导致您试图实现的目标与工具实现者设计的jUnit执行的目标之间的冲突。 您似乎正在尝试做很多事情。您希望能够运行测试并让测试工具找出并创建所需的数据。那是一个非常艰巨的任务...我不知道有什么工具可以满足您的所有要求,但是有很多工具可以通过一些努力来满足您的大部分需求。 诸如Robotframework之类的测试框架可让您指定测试运行的顺序。它可能更适合您要实现的目标。 但是总会有一些工作要做,以便在测试之前设置您的环境。我通常将需要特定配置或数据集的测试收集在一起。然后,我就在运行那组测试之前运行这些步骤。它减少了在每次测试之前进行配置和数据设置的需要。但这也降低了复杂性,因此易于管理。     
我们将TestNG与Silk4J结合使用来创建顺序回归测试(某些测试仅需10分钟,而有些则需要12小时以上)。所有测试均按特定顺序执行-发生超严重错误时,某些测试会触发“跳过所有剩余测试”。     

要回复问题请先登录注册