go语言接口测试框架 go 接口测试框架

golang性能测试框架k6源码分析k6是新兴的性能测试框架,比肩jmeter,另外测试脚本使用js,更加适合自动化的架构 。
k6启动的框架是使用golang的cli标准框架cobra,入口函数
进入cobra框架后,我们直接查看getRunCmd,这个是命令run的入口 , 主要工作都是从这里开始 。
重点关注初始化Runner , 这个是通过js脚本,使用goja库解析后,生成的实际执行单元 。
进入js目录,查看Runner的结构,runner.go
Runner有一些配置属性 , 另外还有方法,方法用lib.Runner的接口进行规范 。
Runner有一个NewVU方法,里面定义了连接参数,实现api测试
返回主函数,在初始化完成Runner后,启动调度器,以及做结果收集
最终封装成一个engine
启动测试
Golang web 框架对比【go语言接口测试框架 go 接口测试框架】由于 golang 提供了完善的net/http标准库,基于该标准库实现一个web框架的难度相比其他语言低了不少,所以go web框架简直就是百花齐放 。从老牌的revel和 beego,到新出的 gin ,和 iris 等,而且还有一些类似于 chi 这种router 。个人一般小项目,尤其是中间件需要暴露一些http接口的,基本就使用chi即可 。
本次测试主要是gin iris echo 这三个框架 。侧重在于高性能 , 从并发和json序列化和反序列化两个方面来测评,毕竟后台项目侧重的也就是这两个方面 。
为了选择符合重IO的框架,现设定如下场景的demo,demo的具体要求如下:
gin:
iris:
echo:
由于要测试5种body样本,4种场景,4个框架 , 因此把重点数据筛选出来(吞吐量、错误率和99%Line,重要性依次递减),结果都绘制了图形,方便比对查看 。
综合以上各个测试结果可以看出,gin以及iris都是非常优秀的框架,gin的优势比其他稍微大点,iris次之,而echo相应差一点 。
本次测试只是简单测试了一下3个框架的并发和json相关 。对比结果,不包括生态和工具的完善度等等 。如果测试有什么不完善的地方,欢迎交流 。
另外欢迎大家试用和star另外一个web框架 baa,为了避嫌我没有贴出baa的数据,性能测试处于gin之后和iris之间 。
Go语言使用gorm对MySQL进行性能测试之前写过go语言接口测试框架了Go语言gorm框架MySQL实践go语言接口测试框架 , 其中对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语言进行简单的接口测试在正常的测试中,当我们需要进行接口测试时,通常使用接口调试工具,如postman进行接口测试
目前我在尝试使用Go语言进行接口测试,使用的库均为Go自带的库 。
注:当前采用的接口为时事新闻接口 , 每天可以请求100次,需要的同学,可以自行使用 。
go语言接口测试框架的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go 接口测试框架、go语言接口测试框架的信息别忘了在本站进行查找喔 。

    推荐阅读