QA 问题整合
2020/09/01 限流策略
2021/02/28 前后端测试
2021/11/14 测试 tips
前后端测试
最近工作中会涉及测试用例的编写等等,特此进行记录。测试不仅仅是测试人员进行补齐,通常我们在代码微调甚至代码重构过程中可能会误将一些功能的实现造成了影响,此时测试就起了重要作用,它可以在新改动上线前回归测试一下所有的功能以保证正常上线。
按照不同的划分标准可将测试分为不同的种类,目前实践过的主要有单元测试(白盒)、集成测试(黑盒+白盒),e2e 测试(所谓的用户真实场景,黑盒),其实三者都属于功能测试,主要用过的测试框架是 jest,支持断言、仿真、生成测试报告等。
前端测试
前端测试区别于服务端测试往往除了功能测试还会涉及前端界面的一些测试,此处可以用单元测试对 UI 的测试进行补齐,同时 vue 同样给出了一些 UI 测试方式,参考 Vue Test Utils
服务端测试
- controllers 层可以主要对涉及的接口进行功能测试(黑盒)
- services 层可以对具体接口中的逻辑进行测试,更类似于单元测试(白盒)
测试的 tips
- 黑盒测试时,比如我们测试整个请求链路的正确性,可能不限于对于正确请求的测试,对于错误请求的测试我们可以结合如 jest 的
toThrowError
进行对返回结果的检测。 - 检查某个关键步骤是否被调用,可以结合如 jest 的
jest.spy
和toHaveBeenCalled()
进行使用 - 白盒测试时我们往往是对一些代码逻辑进行更为针对性的测试,比如我有一个 parse 函数专门用于解析某个 http 请求的结果,若我要对 parse 进行白盒测试,此时通常结合如 jest 的
mockFn.mockReturnValue(value)
来 mock 返回结果然后再对 parse 进行测试。
限流策略
限流即一种服务降级方式,用以保证高峰流量时系统的正常运行。
限流可以认为服务降级的一种,限流就是限制系统的输入和输出流量已达到保护系统的目的。一般来说系统的吞吐量是可以被测算的,为了保证系统的稳定运行,一旦达到的需要限制的阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者部分拒绝处理等等。
黑盒扫描与流量重放
做流量重放的目的何在?
流量回放系统,利用生产上现有真实流量进行镜像,原始流量依然回到生产环境的真实服务器,流量的镜像拷贝会分发到集群外的测试服务器上,在测试服务器上可以实现不同版本的功能测试,或者加压10倍进行性能压测。