go语言函数性能测试 go语言test( 三 )


语料库文件的第一行表示编码版本 。以下每一行代表构成语料库条目的每种类型的值 。由于 fuzz target 只需要 1 个输入,因此版本之后只有 1 个值 。
c.运行没有-fuzz标志的go test; 新的失败种子语料库条目将被使用:
由于我们的测试失败,是时候调试了 。
GO语言(十八):模糊测试入门(下)-Reverse为了解决这个问题,如果输入不是有效的 UTF-8 ,让go语言函数性能测试我们返回一个错误 。
a.在您的文本编辑器中,将现有Reverse函数替换为以下内容 。
如果输入字符串包含无效的 UTF-8 字符,此更改将返回错误 。
b.由于 Reverse 函数现在返回错误,因此修改main函数以丢弃额外的错误值 。将现有main功能替换为以下内容 。
这些调用Reverse应该返回一个 nil 错误 , 因为输入字符串是有效的 UTF-8 。
c.您将需要导入错误和 unicode/utf8 包 。main.go 中的 import 语句应如下所示 。
d.修改reverse_test.go文件检查是否有错误,如果返回产生错误则跳过测试 。
除了返回之外 , 您还可以调用t.Skip()以停止执行该模糊输入 。
a.使用 go test 运行测试
b.使用go test -fuzz=Fuzz进行模糊测试,几秒钟后,停止用ctrl-C模糊测试 。
除非您通过-fuzztime标志进行限制 , 否则模糊测试将一直运行,直到遇到失败的输入 。如果没有发生故障,默认是永远运行,并且可以使用 中断该过程ctrl-C 。
c. 使用go test -fuzz=Fuzz -fuzztime 30s 。如果没有30 秒发现失败 , 它会在退出模糊测试 。
模糊测试通过了go语言函数性能测试!
做得很好!您刚刚学习了在 Go 中进行模糊测试 。
— main.go —
— reverse_test.go —
Go语言使用gorm对MySQL进行性能测试之前写过了Go语言gorm框架MySQL实践,其中对gorm框架在操作MySQL的各种基础实践,下面分享一下如何使用gorm框架对MySQL直接进行性能测试的简单实践 。
这里我使用了一个原始的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实践 。
关于go语言函数性能测试和go语言test的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读