遇到问题长时间不能解决时,你是否懂得变换思路呢?

举报
小博测试成长之路 发表于 2022/05/29 23:01:25 2022/05/29
【摘要】 先介绍一下需求的背景: 最近在做数据入库测试的时候,源数据是调第三方api接口获取的数据入库,一开始的时候,按照产品给的解析文档和接口字段映射关系,已经把入库的需求都测试完了,后来产品在分析数据的时候,修改了一下规则,改成数据源返回的结果中,a字段的值大于b字段的值时,此条数据不入库。 接下来开始对这个规则微调进行验证,测试的...

先介绍一下需求的背景:

最近在做数据入库测试的时候,源数据是调第三方api接口获取的数据入库,一开始的时候,按照产品给的解析文档和接口字段映射关系,已经把入库的需求都测试完了,后来产品在分析数据的时候,修改了一下规则,改成数据源返回的结果中,a字段的值大于b字段的值时,此条数据不入库。

接下来开始对这个规则微调进行验证,测试的整体思路是:

1、目前现有的数据已经入库,可以考虑将对应的这种数据找出来,删掉后,再重新执行数据清洗的etl任务,检查这些按照新规则需要过滤掉的数据,是否不会再入库。

2、删除一条已入库的正常数据,然后再重新执行任务单独跑这条数据,检查是否可以重新入库,验证之前的正常功能没有改出问题。

问题来了:

我们入库的数据是存在mongodb数据库里面的,而且这两个字段的值是数值型,但是数据库存储的是字符串,直接用对比的话,筛选出来的数据是不对的。

mongo对比两个字段的查询用法:

db.table_name.find({"$where": "this.fields1 == this.fields2"})

像上面这种用法,对比是否相等还行,要对比两个字符串的值的大小的时候,是行不通的,还得百度一下这种复杂的操作是怎么弄的,还涉及到字段的格式转换,貌似要用到 aggregate,对我来说这种复杂的用法用得少,在折腾了一小会之后,想到了另一种办法:那就是将表里面的数据导出到csv文件里面,然后自己在文件里面用excel筛选对比一下,很快就找到了自己想筛选的数据。

如果大家公司对只能使用正版软件没要求的,可以试试用Studio3T,可以用类似SQL的用法去查询MongoDB中的数据,然后还可以对应的生成查询语句和各种脚本。当然,像这种这么好用的工具,肯定是付费的软件,对于公司有严格要求的来说,不能将这种未购买的软件用于商业用途。

说了这么多,是想告诉大家,在遇到问题的时候,如果当前的解决方案行不通的时候,不妨静下心来换一种思路。比如,平常大家在工作中遇到问题的时候,如果自己花了半小时还没找到原因或者还不知道怎么解决的,不妨尝试问一下身边的同行,说不定你现在遇到的问题,正好大佬们踩过坑。但是,要注意一点,群里问别人问题的时候,自己要先把问题描述清楚。类似那种 怎么做接口测试,有没有用过pytest,如果是这么问问题的话,估计绝大多数情况下是没什么人搭理你的~

文章来源: xiaobotester.blog.csdn.net,作者:小博测试成长之路,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaobotester.blog.csdn.net/article/details/125026050

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。