课程名称: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()
课程收获:
- go语言不同于其它语言的测试方式-> 表格驱动;
- 覆盖率、性能测试借助go tool,方便、快捷查看分析结果;针对性能瓶颈持续优化。
- 模拟http 请求,响应可以模拟单元测试场景,速度快;模拟启动http server能够对整个服务进行一个测试,更加全面,但启动速度较慢。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦