贾永琪的技术博客

Go-知识测试-性能测试分析工具-benchstat

p=0.000表示结果的可信程度,p值越大可信程度越低,统计学中通常把p=0.05作为临界值,超过此值说明结果不可信,可能是样本过少等原因。benchstat 是 Go 官方推荐的一款命令行工具,可以针对一组或多组样本进行分析,如果同时分析两组样本,还可以给出性能变化结果。至此,go的测试结束,通过学习go测试,首先是会写各种测试case,其次是理解了各种测试的目的,最后则是学习了很多优秀的实现。自动计算出了平均值,在cpu=10的时候,每次操作2.534微妙,样本离散值(2%)如果没有设置,默认是。_golang benchmark测试结果怎么看

Go-知识测试-子测试

子测试提供了一种在一个测试函数中执行多个测试的能力,可以自己编排执行顺序,或者做一些初始化等操作。Run 函数启动一个单独的协程来运行名字为name的子测试f,并且会阻塞等待其执行结束,除非子测试f显式调用Parallel将自己编程一个可并行的测试,最后返回bool类型的测试结果。所有的测试,都是由TestMain使用Run方法直接或者间接启动。每启动一个子测试,都会创建一个testing.T或者testing.B变量,该变量集成当前测试的部分属性,然后以新的。_go *testing.t

Go-知识测试-模糊测试

模糊测试(Fuzzing)是一种通过构造随机数据对代码进行测试的测试方法,相比于单元测试,它能提供更为全面的测试覆盖,从而找出代码中的潜在漏洞。从1.18开始,Go开始正式支持模糊测试。模糊测试要保证测试文件以_test.go结尾。测试方法必须以FuzzXxx开头。模糊测试方法必须以*testing.F作为参数。Go 1.18 的 Fuzz 测试使用了一种称为 “coverage-guided fuzzing” 的技术来生成随机输入。_go 模糊测试

Go-知识测试-工作机制

在 Go 语言的源码中,go test 命令的实现主要在 src/cmd/go/internal/test 包中。当你运行 go test 命令时,Go 的命令行工具会调用这个包中的代码来执行测试。在 src/cmd/go/internal/test 包中,runTest 函数是 go test 命令的主要入口点。这个函数负责解析命令行参数,构建测试的二进制文件,启动这个二进制文件,以及读取和解析测试结果。_go test