职业经验 测试开发 - 快速定位问题⚡️

小巴哥 · 2023年03月02日 · 最后由 小巴哥 回复于 2023年03月20日 · 10745 次阅读

写在前面

这两天工作实在是有点小忙,感觉好久没更新了,但是平时也是有感而发的比较多,今天遇到一个问题,感觉挺有意思,处理过程也非常有意义,希望能给大家一个借鉴吧。

测试平台又又又出问题了

今天一位小姐姐找到了我们大组长,说 测试平台添加自动化测试用例失败,之后我们组长把我拉到了一个群里让我去看一下,硬着头皮回复好的,由于这个功能不是我开发的,开发这个的同事请假了,我从来没看过这段代码,但是既然找到了我,只能放手一搏了。

沟通

找到了这位小姐姐沟通了一下什么情况,因为这个是使用好久的功能,出问题肯定是偶现问题,第一个就是询问复现步骤,根据小姐姐的说法,复现了该场景,我把请求通过 curl 的方式复制出来,这里说下 curl ,它是一个命令行工具,用于与服务器之间传输数据。它支持多种协议,我们常用的就是 http 协议,这个也很简单就是打开浏览器控制台,在相应请求上 copy as curl 即可。

image.png

为什么用 curl

第二步就是打开 postman,postman 有一个很好用的功能,就是导入功能,有的小伙伴不喜欢用 postman 就是因为还需要修改 请求头,请求参数,一个一个粘贴复制,这样确实很麻烦,但是如果用过 curl 导入,秒完成一个接口的添加,然后就把 请求链接修改成了我本地,用这个访问到了我本地进行调试。
image.png

找到问题

通过 postman 请求到了到了本地,我发现了确实 接口报错了,报错内容 # Data too long for column ‘xxxx‘ at row 1,根据字面意思, 原因是在添加 parameter 字段时,parameter 的值太长导致,mysql 报错。

image.png

解决问题

根据经验,我找到了该字段,首先想到的是 修改该字段的数值长度,我查了数据库看到该字段为 varchar 类型,长度 为 10000 ,尝试修改更大,还是报错,后来直接把字段类型修改为 longtxt
文本类型,在此请求,测试用例添加成功。

image.png

总结

工具利用的好,可以快速解决问题,办公效果翻倍,在平时工作时,大家遇到接口报错,可以给开发提 bug 时备注 curl 那么开发怎么问题也会非常迅速,更会觉得你很专业。最后, 从沟通到修改完成 20 分钟左右解决了问题,收到了领导和小姐姐的点赞,哈哈哈。

image.png

写在最后

我是小巴哥,一个陪你成长,实实在在分享 测试干货职场经验的人,欢迎关注!!!

共收到 15 条回复 时间 点赞

问题来了,那为什么使用 varchar 会提示参数太长呢?65535 还不够用么🙄

typo: varchaer => varchar

@dyc289686387 感谢,已修改

@a747080030 修改超过一定数值会报这个问题的错https://blog.csdn.net/qq_37817473/article/details/99737271

“大家遇到接口报错,可以给开发提 bug 时备注 curl 那么开发怎么问题也会非常迅速,更会觉得你很专业”
我以前的做法都是手动去复制参数,学会了,直接 copy as cURL

不错的分享,过程很清晰。

提个小疑问,这里面的 找用户收集复现步骤 + 本地调试复现并看到报错 ,是否可以简化为直接看线上服务相应时间的日志?这样沟通成本更低,而且也避免一些非必现问题被放过。

陈恒捷 回复

嗯,感谢大佬指点,确实这样解决问题会更有效率,原因是我们测试平台的日志不算是特别完善,就导致了一些问题定位起来困难,之后会解决这种问题

小巴哥 回复

客气啦,算不上大佬。只是做一下经验交流。

我们线上和测试环境数据是隔离的,所以很多时候本地是很难直接复现问题的。定位排查高度依赖日志,所以看到第一反应是查线上日志。

漂亮,不过这类还是前端也做下 formRules 会好一些
这样如果字符长度不够用就会被反馈一个需求,而不是一个缺陷啦,哈哈哈

不只是测开,其实测试同学也需要具备快速定位能力。但是对这个案例,我有以下疑问:
疑问 1. 为什么不能直接就在浏览器里面就看到报错信息,而且要这么麻烦在 postman 里面导入再发送同一个请求?
​疑问 2. 正在报错在服务器端不能直接捕获,一定要去重现者的电脑里面看?
​疑问 3. 数据库字段设计应该是有一定标准的,只是因为这个报错就直接把字段类型改掉,虽然能解决问题,但其实是缺乏了一个完整的问题分析和影响分析过程;而且修改的过程是一边改一边看效果,直到问题解决,是不符合我们改 bug 的最佳实践的,也缺乏足够的分析和验证。

刚刚看到社区微信号推送的这个文章,特地过来探讨一下😅😅😅

Jerry li 回复

嗯,感谢提问
疑问 1 一般服务端会捕获到这种报错,所以浏览器一般看不到这样的问题,使用 postman 可能是我个人的习惯了
疑问 2 原因是我们测试平台的日志不算是特别完善,就导致了一些问题定位起来困难,这也是我们自身的问题,后续有时间会把日志进行优化
疑问 3 感谢大佬给的建议和指点,经验和实践上确实有不足的地方,可能没有按照开发的规范来严格要求自己平台的开发,规范开发流程也是一个好的团队该做的

小巴哥 回复

谢谢回复。加油!

最后那个消息好熟悉,如流?百度?

大佬 curl 有 cmd 和 bash 两个功能,是要选择哪个去进行操作嘞,发现复制出来的格式有点奇怪

蔡藏锋 回复

没有见过这两个功能,但是根据你的描述,感觉和 操作系统有关,cmd 应该对应 windows 环境,bash 对应 linux 、mac 环境

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册