Go测试|青训营笔记

72 阅读1分钟

测试

回归测试:

  • 手动通过终端回归一些固定的主流程场景;

集成测试:

  • 对系统功能维度做测试验证;

单元测试:

  • 开发者对单独的函数、模块做功能验证;

image.png

3.1 单元测试

image.png

3.1.1 单元测试-规则

  • Test开头,连接第一个字母大写

image.png

3.1.2 单元测试-覆盖率

image.png

image.png

3.1.3 单元测试-依赖

  • 测试依赖本地文件;

image.png

3.2 Mock测试

  • 通过Monkey,脱离本地测试文件依赖

image.png

  • 下面是一个mock的使用样例,通过patch对Readfineline进行打桩mock,默认返回line110,
  • 这里通过defer卸载mock,这样整个测试函数就摆脱了本地文件的依赖。

image.png

3.3 基准测试

  • Go语言还提供了基准测试框架,基准测试是指测试─段程序的运行性能及耗费CPU的程度。
  • 而我们在实际项目开发中,经常会遇到代码性能瓶颈,为了定位问题经常要对代码做性能分析,这就用到了基准测试。
  • 使用方法类似于单元测试,
  • 1、一个例子,10台服务器负载均衡,随机选择服务器;

image.png

  • 基准测试--运行
  • runparallel是多协程并发测试,其中基准测试有差别,
  • 因为rand为了保证全局的随机性和并发安全,持有一把全局锁,影响效率;

image.png

基准测试---优化

  • 高性能随机数方法fastrand;
  • 主要思想是牺牲了一定的数列一致性;大多数场景是适用的;

image.png

image.png