问答 对于客户端发送给服务端的数据如何进行测试验证

mengzh · September 19, 2019 · Last by zxz replied at March 04, 2020 · 7697 hits

之前公司的windows产品会给服务端发送大量的log,今天突然想到这么问题。如何进行对大量的log进行验证呢?我们原来都是进行手工验证,非常繁琐,有没有自动化的方法呢?亦或者有没有其他更好地测试方法呢?以下两个场景是我想到的:
1 普通log,一般安装就会发送
2 某个场景下触发的log
我觉得无论移动端还是PC端都有这样的问题,在这里请教各位。

共收到 19 条回复 时间 点赞

log不是用来查问题的吗 为什么还要验证log

线上环境应该不会加吧 测试环境有时候用来调试问题会加一些log日志

有些log是记录用户操作或者是管理员操作之类的,上家公司碰到类似的;当时只能靠手工查询对应的数据表验证;
理想情况下:个人觉得可以一次性操作完后然后查询log,写一个脚本去验证。

log记录的正确性要求严格的话还是验证下比较好
客户端产品模拟点击,知道每一步的操作,访问日志断言即可(粗略验证)

一般我们是直接通过 code review 来确认重要地方有打印 log 的代码+功能测试的时候留意下是不是真的有打印。正常来说一个用户请求或操作,在一个系统内部打印的log在10条以内,所以人工看工作量倒不会很大。

听你的描述,这种 log 更类似于用户操作或者客户端各类操作的事件埋点?

只能慢慢去使用系统,对比log,搞一个干净的环境,最后摸清源头了,脚本也就出来了

理论上可以,但实际上很少有这样做的。

一般保存日志有几种方式:数据库、文件、消息队列消费至ES;
如果你要验证 log,只需要在执行对应操作后,去检查是否产生了正确的日志(读数据库、文件等)即可。

陈恒捷 回复

是这样的,主要是对一些用户行为的分析,用于以后对产品进行改进。由于有太多的变量因素,所以一直找不到有效的测试方法

Jack 回复

可以,但是估计工作量也很大,因为变量太多,这种情况只能说在固定环境下进行验证。

mengzh #10 · October 07, 2019 作者
Elsie 回复

准确说应该是用户的一些行为记录。不是说debug的log,原谅我用词不当😩

mengzh #11 · October 07, 2019 作者
arrow 回复

因为log量大,每次都要依次查看,很是费力。所以想问问各位有移动端经验的是怎么做的。

mengzh 回复

那这是另一个范畴了,和你的题目差异比较大。。。

可以看看小红书 MTSC 2018 的一个 topic ,介绍他们怎么测试客户端埋点的,做得比较全和自动化。

mengzh #13 · October 08, 2019 作者
陈恒捷 回复

好的,多谢

arrow 回复

为啥消息队列都会推送给ES 原理是什么

15Floor has been deleted

感觉你想说的是数据分析,对log进行数据分析呢

mengzh #17 · October 16, 2019 作者

额, 其实数据分析我们不做,数据分析是服务端有人做,但是我们需要验证发送的数据正确。

18Floor has been deleted

其实这里需要关注的是两个点:
1、客户端写log的逻辑
2、上传log的功能
那么测试方法来了:
1、客户端写log使用公共类/方法,因此调用这个API即可,然后覆盖各种场景
2、上传功能,这个就是老生常谈了,先确认文件的唯一标准为:文件名+MD5。如果研发有提供download/查询的接口直接使用即可;如果没有相关接口接比较麻烦了,测试环境可以直接上服务器确认,或者自己写个download。发布线上只要确认分支id,其他可能出问题的也就只有网络和存储服务器了,基本可以认为测试任务完成了。

客户端上传肯定是调用服务器的api,直接自己写一个服务器的api,然后让客户端调用,在程序上直接写验证脚本。这样弄一个,以后都可以自动化测试了。而且还可以持续集成。后续测试只需补充用例就可以了。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up