首页 > 编程知识 正文

数据库查询返回值,什么接口表示从数据库中返回的结果集

时间:2023-05-06 18:08:24 阅读:260068 作者:4810

之前做了一期关于 校验Web前后相关页面数据的分享 ,这次来做一期 关于接口返回值和数据库的记录的校验

情景是 我们产品要我校验web前端页面的数据,保证所呈现出来的数据结果的准确性,实际我没整过,也不知道这部分要咋测。几万条数据的明细,我真不可能一条一条数据去对。我的思路是 校验接口返回值和数据库表的记录;

【实际思路和产品要求的 还是有些问题的,因为前端页面解析时会对多个空格、回车做压缩,所以接口返回值会被“修改”,和前端真正显示的还有极个别的差别;再不用前端特殊处理的前提下,如果把页面数据导出CSV文件后,将其和数据库的记录做个校验,这样可能更加符合我们产品的要求-后面会分享

个人博客:https://blog.csdn.net/zyooooxie

具体情景

前端页面:

接口返回值:

接口返回的值我就不上图了;

数据库表里的字段:【部分字段马赛克处理,谅解】

对比2个列表的元素

拿到接口返回值和数据库表里的数据后,需要把每一条明细对比,到底能不能对得上;我的思路是将这2个列表的元素做对比;

封装的方法:传入2个list,对list1做遍历,判断此元素是否在list2,如果在,就删掉list2的;如果不在,就报错;等待整个遍历结束,断言list2是否为空;

def t_f3(self, list_a, list_b): """for 循环""" if len(list_a) == len(list_b): print(len(list_b), len(list_a), '2个list的长度') for i in range(len(list_a)): if list_a[i] in list_b: print(list_a[i]) list_b.remove(list_a[i]) else: print('error') raise AssertionError assert len(list_b) == 0 print('校验通过') else: print('长度不相同', len(list_b), len(list_a)) raise AssertionError def t_f2(self, list_a, list_b): """while 循环""" if len(list_a) == len(list_b): print(len(list_b), len(list_a), '2个list的长度') for a in list_a: while a in list_b: list_b.remove(a) break assert len(list_b) == 0 print('校验通过') else: print('长度不相同', len(list_b), len(list_a)) raise AssertionError def t_f1(self, list_a, list_b): """循环嵌套""" if len(list_a) == len(list_b): print(len(list_b), len(list_a), '2个list的长度') for a in list_a: for b in list_b: if a == b: print(a) list_b.remove(b) break assert len(list_b) == 0 print('校验通过') else: print('长度不相同', len(list_b), len(list_a)) raise AssertionError

这一部分分享的 三个方法是一个思路。但这一部分 我花了一周的时间,还是依靠同事的帮助;(因为我的思路,始终没能解决重复元素的问题)

我最初的思路是循环嵌套两个list,若list1的a == list2的b,将其加入另一个list3,最后判断list3的长度和list1、list2是否相等;
后面改为先求list1、list2的交集、再求并集、最后把交集、并集求差集,断言差集的长度为0;

若list1 = [1, 2, 2, 2, 2, 2, 2, 2, 2, 2],list2 = [2, 1, 1, 1, 1, 1, 1, 1, 1, 1],即list1、list2长度相同 且 里面有不同的重复元素,我的2个思路实际是没法测出来的;

脚本执行结果

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。