为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Go

课程名称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能够对整个服务进行一个测试,更加全面,但启动速度较慢。

图片描述
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消