【测试数据比对】Python脚本进行数据比对
让自己写的脚本辅助测试,不是为了高大上,只是为了提高测试效率和测试质量
背景:
- 日常测试经常要比对数据
- 数据的来源可能是oracle,系统导出的Excel数据,产品提供的数据,自造的业务数据,等,
- 总结记录测试过程
需求分析
- 针对实际业务需求,数据比对的结果是要验证什么内容,达到什么目的
- 数据比对一致应该怎么输出
- 数据比对不一致应该如何,不一致的数据的进一步验证
用例设计及数据准备
无论数据来源是如何,建议将数据二次转换为Excel表中
- 将数据比对的数据,转为Excel,设置为表1和表2
- 将表1与表2数据进行比对,比对后将不一致的数据导出
- 对不一致的数据进行二次验证,是否存在因字段,数值格式(比如金额中1和1.0 可能比对结果为不一致)
- 对不一致数据是否合理,实际测试中,可能会有更加复杂的数据给到测试,如果与开发产品评估,不一致的数据为合理,即通过(曾遇到有些功能验证较为困难,开发只能提供了一份其他系统的总的数据,只能将数据分成几部分验证)
- 这里有一点要注意,表1和表2数据可能字段很多,且不一样,建议根据实际要求筛选字段数据比对,将表1和表2的列字段清洗为一致,才有比对的价值
用Python脚本实现
如果用对比工具的话,只能做个别少量数据,比如50个数据左右,因为当数据较大时,相对不一致的情况也就越多,不适合用手动的方式
脚本设计方案
- 封装Excel获取数据的方法
- 导入表1数据
- 导入表2数据
- 遍历表1数据与表2比对,取出不一致的数据,写入txt表(或Excel中)
- 遍历表2数据与表1比对,取出不一致的数据,写入txt表(或Excel中)
例表1
ID | 姓名 | 支付金额 | 日期 | 支付方式 |
---|---|---|---|---|
01 | 张三 | 10 | 22-2-2 | 现金 |
02 | 张无忌 | 12.9 | 22-2-2 | |
03 | 乙 | 150.0 | 22-2-2 | pos |
例表2 | ||||
ID | 姓名 | 支付金额 | 日期 | 支付方式 |
– | – | – | – | – |
01 | 翠花 | 33.0 | 22-2-2 | |
02 | 张无忌 | 0.0 | 22-2-2 | |
03 | 张无忌 | 12.9 | 22-2-2 |
来补一下我不成熟的代码,如果有更优秀的比对代码,欢迎交流
封装Excel获取数据的方法,将数据以元祖或list 返回
# 定义一个获取excel文件的函数/方法,传入【文件名称】和【excel中的表名】
def getexceldata_cuihuan(filename,sheetname):exceldir = f'{"../excel文件路径/"}{filename}'excelbook = xlrd.open_workbook(exceldir,formatting_info=True)# 获取单元表worksheet = excelbook.sheet_by_name(sheetname)sheetrownum = worksheet.nrowsexecldatalsit =[]# 获取总行数#获取行数据for i in range(1, sheetrownum): # 遍历行数为i# 获取列。这里自己定义需要获取的列名。这个列一般都是需要进行比对的列str1 = worksheet.cell(i, 0).valuestr2 = worksheet.cell(i, 1).valuestr3 = worksheet.cell(i, 2).value# 将金额转为float(如果比对的内容涉及金额,需要将金额转为浮点数,否则可能会导致比对失败)# str3 = float(worksheet.cell(i, 2).value) execldatalsit.append((str1, str2, str3)) # 以列表的形式存储列数据return execldatalsitif __name__ == '__main__':t = getexceldata_cuihuan('excel文件.xls', '导出表')for one in t:print(one)
导入表1数据
导入表2数据
先新建一个txt来准备用做最后的结果的写入
for循环遍历表1 ,将表1的每一行数据取出与表2比对
遍历结束后,将结果写到txt文件中
可将不一致的数据中,将数据,或者唯一键ID,将id生成到新的list中,后续可以用于新的脚本,用于核对这部分不一致的数据
for循环遍历表2,将表2中的每一行数据取出与表1比对
遍历结束后,将结果写到txt文件中
`
【测试数据比对】Python脚本进行数据比对相关推荐
- python脚本性能分析
在进行python开发时需要对python脚本的性能分析,以便对python脚本进行优化,下面使用cProfile和 pstats对python脚本性能分析. cProfile思路 1.使用cProf ...
- python脚本的编写_记一次python脚本的编写过程
糖豆贴心提醒,本文阅读时间6分钟 因工作需求要写一个python脚本,来测试memcache服务器. 因为第一次写python脚本在线上运行,所以不敢大意.而又因为我自己看着python教程自学了一点 ...
- linux 开机自启动运行python脚本
供测试的python脚本testboot.py(确认你的python3路径二选一): #!/usr/bin/python3 with open('testboot.txt',"w" ...
- 【Python】深度学习中将数据按比例随机分成随机 训练集 和 测试集的python脚本
深度学习中经常将数据分成 训练集 和 测试集,参考博客,修改python脚本 randPickAITrainTestData.py . 功能:从 输入目录 中随机检出一定比例的文件或目录,移动到保存 ...
- 测试中的数据统计分析的验证:python脚本+复杂SQL总结
正式从PHP开发转到测试岗位已有1年半,中间的职业发展与所思所考应该有1个阶段的总结,总结将在下一篇完成.今天就先通过在工作中实际用到的python脚本+复杂sql记录一下自己在测试过程中做的数据验证 ...
- 杂谈 python脚本调用接口进行性能和稳定性测试(套路)
综合近来相关接口和性能相关的测试工作,今天突发"奇想",总结出一套自己适用的性能测试套路.草草记录想法如下: 性能测试=接口+多线程+服务器监控 +java熟悉(问题定位) 当然以 ...
- 2019年赣州市赛任务四利用python脚本进行web渗透测试
任务四:利用python脚本进行web渗透测试 任务环境说明: 服务器场景名称: W-WebServ2008 服务器场景操作系统:Microsoft Windows2008 Server 服务器场景用 ...
- python测试脚本 进制转换_[python] 转换python脚本程序为二进制ELF
方法1: freeze.py 来自python源码树. 安装pythonbrew,可安装定制化的独立python环境(略) python trunk/Tools/freeze/freeze.py ./ ...
- python测试开发教程 龙腾_龙腾源码网京东 有货自动下单,Python 脚本 你的口罩...
本帖最后由 小朋友 于 2020-2-7 13:24 编辑 这个 githubcom/tychxn/jd-assistant 我写了个 Windows下的一键安装Python运行环境和安装依赖库的脚本 ...
最新文章
- python相对路径库_如何最简单、通俗地理解Python的搜索路径、相对路径、绝对路径?...
- Python入门100题 | 第034题
- 关于iis中的网站,在ie下点击服务器控件无反应的问题
- shell脚本if条件总结
- leetcode 1046. 最后一块石头的重量(堆)
- 实例52:python
- Flutter Provider 异步通信、Provider状态管理
- 【java】Java 原子性、有序性与Happens-Before
- mac 打不开 不受信任_管理不受信任的外键
- cocos2d环境及创建一个自己的项目
- Unity官方实例教程 Space Shooter(太空射击游戏)
- Swift--调用系统导航Apple map
- 不要再被误导了,64位X86 CPU是没有64位寻址能力的!
- Unity 六边形地图系列(一) 【笔记】: 创建一个六边形网格
- 检查内存泄露的利器--VLD使用指南
- Java写的第一个小游戏(续)
- 如何使用Google Apps脚本构建YouTube Uploader Bot
- 多智能体深度强化学习综述与批判——Matthew E. Taylor
- 多目标学习在推荐系统中的应用
- Unity相机旋转和人物朝向
热门文章
- Oracle使用序列+触发器实现表自增主键
- EC-PCA: 利润中心的段(Segment)更改及其相关配置-KE52/V_FAGL_SEGM_PRCT(SM30)
- Linux中的挂载点
- 【年度总结】——2015在路上
- 缱绻旖旎万千,不过红楼遗梦
- 【电气专业知识问答】问:什么是同步发电机励磁系统?
- Apache Hudi在AWS Glue和AWS EMR上同步元数据的异同
- 关于光速(c)测定的故事
- 【养生】20210828网上信息摘录
- php函数不支持的功能有什么,wapl是什么功能?启用有什么用