问答 大家学习 go,都用来做什么测试呢?

yifan · 2022年08月26日 · 最后由 Lyzin 回复于 2023年09月20日 · 10492 次阅读

公司用 go 写的接口服务,自己的话会 python web 开发和自动化
最近 go 炒的很火,测试学了有啥优势呢?

共收到 10 条回复 时间 点赞

最简单直接的,比不会 go 的多一门语言技能,哈哈。

按照我个人理解,go 语言本身的优势是语法相对简单,而且性能比较高(比 python 之类的解释型语言高),打包产物为一个独立文件,部署也简单。目前用 go 比较多的应该是 运维开发、服务端开发。

对测试来说,如果你这个脚本想让别人更快速地部署起来(直接下载编译后的可执行文件->运行,不用装环境),go 是个不错的选择。我看到的其中一个例子就是 sonic 平台,改为用 go 写的 sib 取代 tidevice ,这样就不用让用户特意装 python 环境来运行 tidevice 了。

不过,貌似 go 领域的测试工具框架相比 java、python ,相对比较少,所以可能有很多轮子不一定有现成的用,得自己造。

测试学了主要是能介入 go 项目的单测,也能做些服务 mock 测试,还有就是性能测试工具,如果只是做些接口层的验证,python 足够,用 go 写的话之后交接可能没人接得住。

从语言来说 go 性能比 python 好,比 java 容易写(性能:java>go>python)

从受众程度来看,java 开发岗与 go 开发岗的比例大概有个 10:1 这样。

如果你时间充裕的话其实可以研究下 go,最好造些轮子,这样你就是先行者😁

如果从事云原生相关技术栈,go 就是必备项。

go 写 http/http2 相关的服务比较方便

陈恒捷 回复

哈哈哈,无意中看到 cue 到 Sonic。

Go 爬虫比 python 会有优势,但是学习门槛还是有一点点的。
不少混沌工程或者性能相关的服务,都是 go 开发的,你可以了解下

反正我一个半调子抓哇写平台比用其他的进度快一倍……

学会了 go 再去看看 gin,向开发看齐。测试嘛,还是要懂一些开发的东西的,那样用例覆盖也要好不少

主要写 go 的单测, 写一写简单的脚本

我来说说我的情况,2022 年年中的时候,刷 boss 看到测试 JD 都是需要会编程语言,我本身会 py、shell 这些,但是感觉竞争力还是不够,然后技术领导有次聊天给我推荐学 go,了解了 go 的背景和哪些公司在用,想着自己要是左手 py、右手 go,那个人能力是不是就加倍了

  • 所以带薪学习半年跟着 B 站 go 教程学基础语法、gin、grpc、并发编程等等那些
  • 然后自己就开始写项目,将之前的 python 写的几个测试接口换成了 go(用的 gin) 实现了一遍(换完发现接口性能比 py 快了好几倍)
  • 然后用 go 写了一个项目管理平台,但是半路夭折了,只写到项目立项那块的逻辑,差不多 10 个接口的工作量,前端是组内其他同事写的
  • 确实对自己代码能力有很好的锻炼,让我对 go 使用更加熟练。能在遇到需要写测试提效工具接口的时候更熟
  • 另外还写了一些其他的项目(我又去卷了前端 vue),所以算是小全栈,自己熟悉了前后端那套,经常在公司的服务部署平台部署自己写的项目(都快把自己做成半个开发了)
  • 当然对自己测试帮助最大,测试出问题的时候就感觉自己一下子知道问题出在哪了,比如是前端问题、后端接口逻辑处理等问题,我觉得这是最大的帮助,而且意外的是我再看业务的 java 代码,基本能看懂写的逻辑,这就是多掌握一门语言好处,语言都是相通的
  • 会的多了以后心里自然对不同语言的优缺点有了解了,所以现在我基本都是用 python 写自动化、数据处理脚本等等(因为处理数据、写脚本真的比较快捷),go 来写业务测试用的接口和服务,支撑业务测试,因为考虑到接口性能、部署等问题,要是接口通用性比较强,那就不是一个人用了,甚至是研发、测试组内都在用。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册