大家好,我是煎鱼。 小咸鱼经过前文所提到的折磨人的 “微服务拆分、微服务环境” 问题后,终于顺顺利利的上到了测试环境进行测试。 这时候开发、测试同学又闹新的头疼了,测了一轮下来。发现好好的。结果发现一上生产就有一些地方有问题,发现没测到。 这到底是为什么呢? 背景 在以往,小咸鱼他们团队都是传统的大单体应用。也就是一体化应用,包含了前端、后端等模块,具备天然的协调性: 测试同学能够很方便的就直接测到前后端接口。 测试能够直接对系统本身进行集成测试。 但现在,做了微服务化(雏形)后,小咸鱼他们就翻车了,为什么呢? 因为考虑到微服务,微服务就是向往单拎一个服务出来,都可以独立修改,独立发布。于是小咸鱼提交了一个迭代的几个服务变更,想着实现一把 “敏捷” 发布。 结果一上线就炸了,一大堆的 BUG,光荣加班到晚上 12 点。 这实质上是缺乏端到端测试的一个问题,单服务,无法明确系统正在正常运行。 端到端测试 在测试的质量保障上,我们要站在用户视角去验证这个系统,保障整体的系统可用性,而不是单纯的前端 BFF,又或是后端 Server 的某些接口能够正常运行。 在定义上端到端测试(End-to-end Test)是一种用于测试整个应用程序的流程是否符合预期的测试技术。测试同学会模拟用户真实的使用场景,通过用户界面测试应用程序。 如下图: 与小咸鱼团队那种单纯只测接口的方式不同,端到端测试是面向业务的。