golang 单元测试、性能测试、性能监控技术
golang 单元测试、性能测试、性能监控技术go语言提供了强大的测试工具,下面举例简单介绍一下
go test 单元测试例如对包helper下的util.go 进行单元测试,util.go 里主要包含两个功能,一个是对字符串进行sha1加密,一个是验证手机号码
如果我们要测试验证手机号码功能是否正确,我们可以在该包下新建util_test.go文件,一般命名方式为 _test.go(为测试文件主文件名),测试函数以 Test函数(t *testing.T) 形式 util_test.go
go test go test -bench=. 进行性能测试
在当前目录的命令行窗口执行 生成CPU性能监控图go用pprof包来做代码的性能监控包括:
如果你的go程序是用http包启动的web服务器,你想查看自己的web服务器的状态。这个时候就可以选择net/http/pprof。你只需要引入包_”net/http/pprof” 如果想以图形的形式展现,那么首先要安装Graphviz(图形工具,供go调用生成时序图,官网下载地址Graphviz,国内下载地址百度-Graphviz),想要生成CPU状态分析图,再开启一个命令窗口执行
如果你的go程序只是一个应用程序,比如计算阶乘,那么你就不能使用net/http/pprof包了,你就需要使用到runtime/pprof。具体做法就是用到pprof.StartCPUProfile和pprof.StopCPUProfile,具体使用请参考官方博文https://blog.golang.org/profiling-go-programs var cpuprofile = flag.String("cpuprofile","","write cpu profile to file")
func main() {
flag.Parse()
if *cpuprofile != "" {
f,err := os.Create(*cpuprofile)
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
...
参考链接
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |