让自己写的脚本辅助测试,不是为了高大上,只是为了提高测试效率和测试质量

背景:

  • 日常测试经常要比对数据
  • 数据的来源可能是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 WeChat
03 150.0 22-2-2 pos
例表2
ID 姓名 支付金额 日期 支付方式
01 翠花 33.0 22-2-2 WeChat
02 张无忌 0.0 22-2-2 WeChat
03 张无忌 12.9 22-2-2 WeChat

来补一下我不成熟的代码,如果有更优秀的比对代码,欢迎交流

封装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脚本进行数据比对相关推荐

  1. python脚本性能分析

    在进行python开发时需要对python脚本的性能分析,以便对python脚本进行优化,下面使用cProfile和 pstats对python脚本性能分析. cProfile思路 1.使用cProf ...

  2. python脚本的编写_记一次python脚本的编写过程

    糖豆贴心提醒,本文阅读时间6分钟 因工作需求要写一个python脚本,来测试memcache服务器. 因为第一次写python脚本在线上运行,所以不敢大意.而又因为我自己看着python教程自学了一点 ...

  3. linux 开机自启动运行python脚本

    供测试的python脚本testboot.py(确认你的python3路径二选一): #!/usr/bin/python3 with open('testboot.txt',"w" ...

  4. 【Python】深度学习中将数据按比例随机分成随机 训练集 和 测试集的python脚本

    深度学习中经常将数据分成 训练集 和 测试集,参考博客,修改python脚本 randPickAITrainTestData.py . 功能:从 输入目录 中随机检出一定比例的文件或目录,移动到保存 ...

  5. 测试中的数据统计分析的验证:python脚本+复杂SQL总结

    正式从PHP开发转到测试岗位已有1年半,中间的职业发展与所思所考应该有1个阶段的总结,总结将在下一篇完成.今天就先通过在工作中实际用到的python脚本+复杂sql记录一下自己在测试过程中做的数据验证 ...

  6. 杂谈 python脚本调用接口进行性能和稳定性测试(套路)

    综合近来相关接口和性能相关的测试工作,今天突发"奇想",总结出一套自己适用的性能测试套路.草草记录想法如下: 性能测试=接口+多线程+服务器监控 +java熟悉(问题定位) 当然以 ...

  7. 2019年赣州市赛任务四利用python脚本进行web渗透测试

    任务四:利用python脚本进行web渗透测试 任务环境说明: 服务器场景名称: W-WebServ2008 服务器场景操作系统:Microsoft Windows2008 Server 服务器场景用 ...

  8. python测试脚本 进制转换_[python] 转换python脚本程序为二进制ELF

    方法1: freeze.py 来自python源码树. 安装pythonbrew,可安装定制化的独立python环境(略) python trunk/Tools/freeze/freeze.py ./ ...

  9. python测试开发教程 龙腾_龙腾源码网京东 有货自动下单,Python 脚本 你的口罩...

    本帖最后由 小朋友 于 2020-2-7 13:24 编辑 这个 githubcom/tychxn/jd-assistant 我写了个 Windows下的一键安装Python运行环境和安装依赖库的脚本 ...

最新文章

  1. python相对路径库_如何最简单、通俗地理解Python的搜索路径、相对路径、绝对路径?...
  2. Python入门100题 | 第034题
  3. 关于iis中的网站,在ie下点击服务器控件无反应的问题
  4. shell脚本if条件总结
  5. leetcode 1046. 最后一块石头的重量(堆)
  6. 实例52:python
  7. Flutter Provider 异步通信、Provider状态管理
  8. 【java】Java 原子性、有序性与Happens-Before
  9. mac 打不开 不受信任_管理不受信任的外键
  10. cocos2d环境及创建一个自己的项目
  11. Unity官方实例教程 Space Shooter(太空射击游戏)
  12. Swift--调用系统导航Apple map
  13. 不要再被误导了,64位X86 CPU是没有64位寻址能力的!
  14. Unity 六边形地图系列(一) 【笔记】: 创建一个六边形网格
  15. 检查内存泄露的利器--VLD使用指南
  16. Java写的第一个小游戏(续)
  17. 如何使用Google Apps脚本构建YouTube Uploader Bot
  18. 多智能体深度强化学习综述与批判——Matthew E. Taylor
  19. 多目标学习在推荐系统中的应用
  20. Unity相机旋转和人物朝向

热门文章

  1. Oracle使用序列+触发器实现表自增主键
  2. EC-PCA: 利润中心的段(Segment)更改及其相关配置-KE52/V_FAGL_SEGM_PRCT(SM30)
  3. Linux中的挂载点
  4. 【年度总结】——2015在路上
  5. 缱绻旖旎万千,不过红楼遗梦
  6. 【电气专业知识问答】问:什么是同步发电机励磁系统?
  7. Apache Hudi在AWS Glue和AWS EMR上同步元数据的异同
  8. 关于光速(c)测定的故事
  9. 【养生】20210828网上信息摘录
  10. php函数不支持的功能有什么,wapl是什么功能?启用有什么用