Bitte fragen Sie den Meister, ich bin ein Neuling und habe an vielen Stellen die Erwähnung von End-to-End-Tests gesehen. Wird dies häufig im Webentwicklungsprozess verwendet? Sind End-to-End-Tests wichtig?
欢迎选择我的课程,让我们一起见证您的进步~~
和单元测试/集成测试相比,E2E测试可以用更少的代码覆盖更多的测试场景,代价则是测试的细致程度不足。
需要注意的是:不是所有项目都适合写E2E测试,以下几点可以帮助你判断自己的项目适不适用E2E测试。
项目周期长。编写E2E测试会消耗不少时间和精力,如果不是长期维护的项目没必要进行这些投入。
项目迭代频率高。如果迭代间隔非常长,有充足的测试时间和人手,那么细致的手动界面测试会更加可靠。
页面结构稳定。E2E测试一般依靠css/xpath选择器作为定位元素的方法,如果页面的dom解构经常变更,那么维护测试用例的成本会上升。
此外在以下场景中E2E测试的效果比较好:
纯静态页面,最好是连内容都不变的页面。可以通过在浏览器层面做截图,然后比较前后两个迭代版本截图的是否一致来判断变更是否破坏了页面的最终展示或者展示的改变是否和预期一致。
兼容性测试。如果需要测试项目在各种浏览器下的兼容性问题,可以通过E2E测试一次覆盖多个不同浏览器。
交互复杂、交互步骤多。例如一个复杂的多步表单的填写,人工操作成本越大,用E2E自动完成带来的收益就越多。但是要留心,和其他测试一样,如果你的测试流程有数据写入,那么在测试结束后应该清除写入的数据,保证再次运行时又是一个一致的环境。
人工可能出错,而机器比较稳定。释放劳动力,这点很重要,特别是对一些核心业务页,把每一种情况都面面俱到很难,所以E2E就是为了解决这一问题的吧。
不过,如果你用的Angular,写E2E更爽
和单元测试/集成测试相比,E2E测试可以用更少的代码覆盖更多的测试场景,代价则是测试的细致程度不足。
需要注意的是:不是所有项目都适合写E2E测试,以下几点可以帮助你判断自己的项目适不适用E2E测试。
项目周期长。编写E2E测试会消耗不少时间和精力,如果不是长期维护的项目没必要进行这些投入。
项目迭代频率高。如果迭代间隔非常长,有充足的测试时间和人手,那么细致的手动界面测试会更加可靠。
页面结构稳定。E2E测试一般依靠css/xpath选择器作为定位元素的方法,如果页面的dom解构经常变更,那么维护测试用例的成本会上升。
此外在以下场景中E2E测试的效果比较好:
纯静态页面,最好是连内容都不变的页面。可以通过在浏览器层面做截图,然后比较前后两个迭代版本截图的是否一致来判断变更是否破坏了页面的最终展示或者展示的改变是否和预期一致。
兼容性测试。如果需要测试项目在各种浏览器下的兼容性问题,可以通过E2E测试一次覆盖多个不同浏览器。
交互复杂、交互步骤多。例如一个复杂的多步表单的填写,人工操作成本越大,用E2E自动完成带来的收益就越多。
但是要留心,和其他测试一样,如果你的测试流程有数据写入,那么在测试结束后应该清除写入的数据,保证再次运行时又是一个一致的环境。
人工可能出错,而机器比较稳定。释放劳动力,这点很重要,特别是对一些核心业务页,把每一种情况都面面俱到很难,所以E2E就是为了解决这一问题的吧。
不过,如果你用的Angular,写E2E更爽