开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第二十四天,点击查看活动详情
对Web应用程序运行自动化的端到端测试时,最常见的问题之一是如何处理测试数据。端到端测试通常会在通过应用程序中的测试用例时创建,更新和删除各种信息。
有些测试,如功能测试和集成测试,只检查应用程序的一小部分,使每次运行测试后更容易清理。在其他类型的测试中,比如较小的单元测试,您可以使用stub或mock任何必要的数据。
对于端到端测试,理想的场景是在整个系统中尽可能接近真实的使用情况。这意味着您需要确保您的系统服务拥有用于测试的正确数据,并在所有移动部件之间维护适当的数据完整性。您还需要将测试数据保持在不会干扰未来测试运行的状态。
自动化测试的专用测试服务器
优点
您可以拥有被测试的整个应用程序的完整副本,其工作方式与生产应用程序相同。单独的环境不会妨碍手工或探索性测试。
缺点
如果你有一个复杂的系统架构,它会变得非常昂贵。
单独的服务器需要定期维护和升级,以保持系统平稳运行。
您仍然需要处理在测试运行之间保持数据处于良好状态的问题。
为了充分利用端到端测试,理想的做法是在尽可能接近生产环境的环境中执行它们。在一些组织中,您的生产应用程序将运行在专用的服务器上。很可能,它们也有用于UAT或登台目的的独立测试环境。虽然使用这些服务器运行自动化测试是可以接受的,但是最好有一个单独用于自动化测试的环境。
通过让专用服务器运行并准备好进行自动化测试,您可以创建相同的生产环境。这样,您就可以使用客户使用的相同结构的镜像对应用程序进行自动化操作。另外,拥有一个不会与手动或探索性测试产生冲突的独立环境也很有帮助。
这种方法确实有一些需要注意的地方。如果您的系统架构需要运行许多不同的服务,那么设置一个新环境可能会花费很多钱。如果有一个内部团队管理服务器,那么运行额外的服务器也会牺牲时间。最后,拥有一个不同的环境并不能完全解决在任何时候都拥有用于测试的正确数据的问题。它使得对数据的控制更易于管理,比如重新设置或恢复数据库。但是您仍然必须在测试中进行管理。