在CentOS上进行Golang测试,可以按照以下步骤进行:
下载并解压Golang安装包:
从Golang官方网站下载适用于CentOS的二进制文件,例如 go1.17.2.linux-amd64.tar.gz
。
wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz
配置环境变量:
编辑 /etc/profile
文件,添加以下内容:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
使环境变量生效:
source /etc/profile
验证安装:
go version
创建测试文件:
在你的Go项目目录中,创建一个以 _test.go
结尾的文件,例如 hello_test.go
,并编写测试代码:
package main
import (
"testing"
)
func TestHelloWorld(t *testing.T) {
expected := "Hello, World!"
actual := Hello("World")
if actual != expected {
t.Errorf("expected %s but got %s", expected, actual)
}
}
运行测试:
在终端中,导航到包含测试文件的目录,然后运行以下命令来执行测试:
go test
如果测试通过,你应该会看到输出:
PASS
ok _/path/to/your/package 0.001s
安装测试框架:
例如,安装 ginkgo
和 gomega
:
go get github.com/onsi/ginkgo/v2/ginkgo
go get github.com/onsi/gomega/...
编写和运行Ginkgo测试:
创建一个 ginkgo
测试文件,例如 myapp_test.go
:
package myapp
import (
"github.com/onsi/ginkgo/v2"
"github.com/onsi/gomega"
)
var _ = ginkgo.Describe("MyApp", func() {
ginkgo.It("should do something", func() {
Expect(true).To(BeTrue())
})
})
运行 ginkgo
测试:
ginkgo -r
基准测试:
使用 go test
命令进行基准测试,测量函数执行时间:
go test -bench .
性能分析:
使用 pprof
进行性能分析:
在代码中导入 net/http/pprof
包,并启动HTTP服务:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe("127.0.0.1:6060", nil)
}()
}
运行程序,并使用 go tool pprof
命令对 cpu.out
文件进行分析:
go tool pprof http://127.0.0.1:6060/debug/pprof/profile?seconds=30
HTTP性能测试:
使用 wrk
进行HTTP性能测试:
go install github.com/wg/wrk@latest
wrk -t12 -c400 -d30s http://localhost:8080
并发测试:
使用 go test -race
进行并发测试:
go test -race
执行路径跟踪:
使用 trace
进行执行路径跟踪:
在代码中导入 runtime/trace
包,并启动跟踪:
import (
"os"
"runtime/trace"
)
func main() {
f, err := os.Create("trace.out")
if err != nil {
panic(err)
}
defer f.Close()
err = trace.Start(f)
if err != nil {
panic(err)
}
defer trace.Stop()
// 程序代码
}
运行程序并生成跟踪文件:
go run main.go
使用 go tool trace
命令分析跟踪文件:
go tool trace trace.out