测试
回归测试:
- 手动通过终端回归一些固定的主流程场景;
集成测试:
- 对系统功能维度做测试验证;
单元测试:
- 开发者对单独的函数、模块做功能验证;
3.1 单元测试
3.1.1 单元测试-规则
- Test开头,连接第一个字母大写
3.1.2 单元测试-覆盖率
3.1.3 单元测试-依赖
- 测试依赖本地文件;
3.2 Mock测试
- 通过Monkey,脱离本地测试文件依赖
- 下面是一个mock的使用样例,通过patch对Readfineline进行打桩mock,默认返回line110,
- 这里通过defer卸载mock,这样整个测试函数就摆脱了本地文件的依赖。
3.3 基准测试
- Go语言还提供了基准测试框架,基准测试是指测试─段程序的运行性能及耗费CPU的程度。
- 而我们在实际项目开发中,经常会遇到代码性能瓶颈,为了定位问题经常要对代码做性能分析,这就用到了基准测试。
- 使用方法类似于单元测试,
- 1、一个例子,10台服务器负载均衡,随机选择服务器;
- 基准测试--运行
- runparallel是多协程并发测试,其中基准测试有差别,
- 因为rand为了保证全局的随机性和并发安全,持有一把全局锁,影响效率;
基准测试---优化
- 高性能随机数方法fastrand;
- 主要思想是牺牲了一定的数列一致性;大多数场景是适用的;