测试方案
1. End-to-End Testing(端到端测试)
端到端(E2E)测试的主要目的是通过模拟真实的用户场景,验证被测系统及其组件的集成性和数据完整性,从最终用户的体验进行测试。
不需要知道业务代码,只需要模拟用户在真实环境的操作。
1.1 目前方案介绍
cypress
使用业务:官网下载业务
运行流程:本地代码commit后,自动执行cypress run打开浏览器,按照测试用例模拟用户操作,测试出现错误会自动截图/录屏。
测试代码和业务代码在同一个库。需要本地提供mock数据。在发布部署前进行测试。
matman
matman(测试框架)+mockstar(mock服务器)+whistle(代理)
使用业务:
- 词典管理-列表
- 寒暄库
- 单轮问答列表、创建
- 基础设置
运行流程:启动mock服务器,执行测试命令打开浏览器,将请求接口代理到mock服务器,按照测试用例模拟用户操作。自动化测试每天在蓝盾上运行,每次运行会通过企业微信通知测试通过率。
测试代码和业务代码在同一个库。需要提供mock数据。在发布部署前进行测试。
CodeceptJS
使用业务:
- 词典管理-列表
- 寒暄库
- 单轮问答列表、创建
- 基础设置
运行流程:业务代码发布后,执行测试命令打开浏览器,按照用户操作先登录账户中心,然后执行测试用例,测试出现错误会自动截图。
测试代码和业务代码不在同一个库,不需要接触到业务代码,在真实环境中执行测试。在发布部署后进行测试。
1.2. cypress、matman、CodeceptJS对比
CodeceptJS
https://codecept.io/
CodeceptJS是一个针对Nodejs,开源的前端自动化测试框架,它对其他运行测试工具做了一层封装,提供简洁的api。
cypress
https://www.cypress.io/
Cypress 是为现代网络构建的下一代前端测试工具。对在浏览器中运行的任何东西进行快速、简单和可靠的测试。
matman
matman 是一个可用于做 web 端对端测试(E2E,End-to-End Testing)的框架,十分适合 web 前端开发人员来编写端对端测试。
用 puppeteer
做浏览器驱动