go语言性能测试 go 语言 性能

golang性能测试框架k6源码分析k6是新兴的性能测试框架,比肩jmeter,另外测试脚本使用js , 更加适合自动化的架构 。
k6启动的框架是使用golang的cli标准框架cobra,入口函数
进入cobra框架后 , 我们直接查看getRunCmd , 这个是命令run的入口,主要工作都是从这里开始 。
重点关注初始化Runner , 这个是通过js脚本,使用goja库解析后,生成的实际执行单元 。
【go语言性能测试 go 语言 性能】进入js目录,查看Runner的结构,runner.go
Runner有一些配置属性,另外还有方法,方法用lib.Runner的接口进行规范 。
Runner有一个NewVU方法,里面定义了连接参数 , 实现api测试
返回主函数,在初始化完成Runner后,启动调度器,以及做结果收集
最终封装成一个engine
启动测试
Go语言使用gorm对MySQL进行性能测试之前写过go语言性能测试了Go语言gorm框架MySQL实践,其中对gorm框架在操作MySQL的各种基础实践,下面分享一下如何使用gorm框架对MySQL直接进行性能测试的简单实践 。
这里go语言性能测试我使用了一个原始的Go语言版本的FunTester测试框架 , 现在只有一个基本的方法,实在是因为Go语言特性太强了 。框架设计的主要思路之一就是利用Go语言的闭包和方法参数特性 , 将一个func()当做性能测试的主题,通过不断运行这个func()来实现性能测试 。当然还有另外一个思路就是运行一个多线程任务类 , 类似Java版本的com.funtester.base.constaint.ThreadBase抽象类,这样可以设置一些类的属性,绑定一些测试资源,适配更多的测试场景 。
下面演示select的性能测试,这里我用了随机ID查询的场景 。
这里我使用从35开始递增的ID进行删除 。
这里使用了select的用例部分 , 随机ID,然后更新name字段,随机10个长度的字符串 。
这里用到了FunTester字段都是随机生成 。
到这里可以看出 , 性能测试框架用到的都是gorm框架的基础API使用,这里MySQL连接池的管理工作完全交给了gorm框架完成,看资料说非常牛逼,我们只需要设置几个参数 。这个使用体现很像HttpClient设置HTTP连接池类似,这里我们也可以看出这些优秀的框架使用起来都是非常简单的 。
PS:关于gorm的基础使用的请参考上一期的文章Go语言gorm框架MySQL实践 。
微机test函数作用Go语言自带了 testing 测试包go语言性能测试,可以进行自动化的单元测试go语言性能测试 , 输出结果验证go语言性能测试 , 并且可以测试性能 。
为什么需要测试
完善的测试体系go语言性能测试,能够提高开发的效率,当项目足够复杂的时候 , 想要保证尽可能的减少 bug,有两种有效的方式分别是代码审核和测试,Go语言中提供了 testing 包来实现单元测试功能 。
测试规则
要开始一个单元测试 , 需要准备一个 go 源码文件,在命名文件时文件名必须以_test.go结尾,单元测试源码文件可以由多个测试用例(可以理解为函数)组成,每个测试用例的名称需要以 Test 为前缀,例如:
func TestXxx( t *testing.T ){
//......
}
go语言性能测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go 语言 性能、go语言性能测试的信息别忘了在本站进行查找喔 。

    推荐阅读