继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第7天 go语言测试与性能调优

洋溢1310659
关注TA
已关注
手记 26
粉丝 2
获赞 4

课程名称GO开发工程师

课程章节:4-1:测试;4-2:代码覆盖率和性能测试;4-3:使用pprof进行性能调优;4-4/5:测试http服务器;4-6生成文档和示例代码;4-7:测试总结

课程讲师ccmouse

课程内容
传统测试

  • 测试数据和测试逻辑混在一起
  • 出错信息不明确
  • 一旦一个 数据出错,测试全部结束

表格驱动测试

  • 分离的测试数据和测试逻辑
  • 明确的出错信息
  • 可以部分失败
  • go语言的语法使得我们更易实践表格驱动测试

命令行进行测试:

  • 进入待测试的文件所在的目录
  • go test .

覆盖率
(被执行代码行数/总的代码行数)命令行:

  • go test --coverprofile=c.out
  • go tool cover 查看代码覆盖率工具使用说明
  • go tool cover -html=“c.out” // 在html页面查看(注意windows下c.out要加引号)

性能测试

  • go test -bench .
  • b.N benchmark 会自动推送需要测试的数量(b *testing.B)
  • CPU
    go test -bench . -cpuprofile cpu.out
    go tool pprof .\cpu.out(交互式)
    — help(帮助文档)
    — web(可以看出性能消耗在哪些地方,针对性的进行优化)

http 测试

  • 模拟http request response -> 单元测试
    httptest.NewRecorder()
    httptest.NewRequest
  • http server -> 功能更全面
    httptest.NewServer()

课程收获

  1. go语言不同于其它语言的测试方式-> 表格驱动;
  2. 覆盖率、性能测试借助go tool,方便、快捷查看分析结果;针对性能瓶颈持续优化。
  3. 模拟http 请求,响应可以模拟单元测试场景,速度快;模拟启动http server能够对整个服务进行一个测试,更加全面,但启动速度较慢。

图片描述
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP