IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> go语言性能测试go test -> 正文阅读

[开发测试]go语言性能测试go test

go test

语法:

go test [build/test flags] [package] [build/test flags && test binary flags]

test flag

go help testflag

  • -bench 指定运行的基准测试,默认不进行基准测试,常用-bench=.来运行所有的基准测试
  • -benchtime 指定每个基准测试运行的时间,默认是1s,例如-benchtime=3s制定每个基准测试运行3s,也可以通过Nx的方式来指定基准测试运行的次数,例如-benchtime=10x表示每个基准测试运行10次,这里的N对应基准测试的b.N
  • -count 指定执行测试的次数,默认执行1次,如果设置了-cpu指定GOMAXPROCS,那么对指定的cpu数测试n次。
  • -cpu 1,2,4指定一个或多个GOMAXPROCS来进行测试
  • -cover 是否显示测试覆盖率,默认是不显示,通过-cover=true开启显示
  • -covermode 指定测试覆盖率的模式,count:统计代码访问次数;set:统计代码是否被访问;atomic:一般在并发工程中使用
    *-coverpkg 指定要统计覆盖率的包 ./…表示当前目录下的所有包
  • -failfast 一个测试用例失败后,不进行下面的测试
  • -list
  • -parallel 运行在测试用例中条用t.Parallel来进行并发测试,-parallel可以指定并发的数量,默认是与GOMAXPROCS一致
  • -run 指定运行的单元测试,例如-run=TestA来指定运行TestA测试
  • -short
  • -timeout 指定超时时间
  • -v 打印详细信息
  • -vet 检查静态错误
  • -benchmem 在执行基准测试时打印内存分配信息
  • -blockprofile 将goroutine阻塞信息写入文件
  • -coverprofile 将测试覆盖率信息写入文件
  • -memprofile 将内存分配信息写入文件
  • -memprofilearate 更精准的内存分配信息
  • -mutexprofile 锁信息
  • -mutexprofilefraction
  • -outputdir 输出文件的目录
  • -trace 写入trace信息

常用用法:

1.单元测试

func TestRandomString(t *testing.T){
	str:=RandomString(32)
	t.log(str)
}

go test -v -run ^TestRandomString$ ./…
-v 打印详细信息
-run 指定要进行的单元测试用例

2.基准测试

func BenchmarkRandomString(b *testing.B){
	// do something
	b.ReserTimer()
	for i:=0;i<b.N;i++{
		RandomString(32)
	}
	b.StopTimer()
	// do something
}

go test -bench . -run=none -benchtimes=2s -cpu=1,2,4 -count=2 -benchmem

-run=none 只运行基准测试
-benchtimes=2s 每个基准测试运行2s
-cpu=1,2,4 运行在GOMAXPROCS分别为1,2,4的情况下进行基准测试
-count=2 分别在1,2,4的cpu下分别跑两次基准测试
-benchmem 输出内存分配信息

3.并发基准测试

func BechmarkRandomString2(b *testing.B){
	b.RunParallel(func(pb *testing.PB){
		for pb.Next(){
			RandomString(32)
		}
	})
}

go test -bench . -run=none
RunParallel创建多个goroutinue然后把b.N个迭代测试分布到这些goroutine上。goroutinue的数目默认是GOMAXPROCS,如果要增加non-COU-bound的benchmark的并发个数,在执行RunParallel之前调用SetParallelism。

4.测试覆盖率

go test -cover -covermode=count -coverpkg ./… -coverprofile=out.cov .
统计当前目录下的包的测试覆盖率,并生成文件
go tool cover -html=out.cov
使用网页的方式查看测试覆盖率(推荐)
go tool cover -func=out.cov

参考

Go Test 总结

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:19:40  更:2022-01-12 00:19:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 5:58:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码