一. 背景
公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据。
而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库查询,
所以验证数据没有别的入口,只能通过在数据库写入数据来进行验证。
二. 工具
Python+mysql
三.前期准备
前置:当然是要先准备好测试方案和测试用例,在准备好这些后才能目标明确将要开发自动化小工具都要有哪些功能,避免走弯路
3.1 跟开发沟通
1)确认数据库连接方式,库名 ;
2)测试所涉及到的表名;
3)每个表是对哪部分业务造成影响;
4)表之间的关联关系,同业务模块之间的不同表之间是否有关联字段;
5)表中个字段数据是否有特殊来源,如用户ID、厂商名称一类与业务有一定关联程度的字段,一定要确认好是可以随机生成的 还是 需要从指定表中获取字段
3.2 设计小工具最终要实现的效果
我设计这个小工具就希望它可以完成两件事情
1) 生成sql语句,并且能写入进入mysql数据库
2) 数据我写入sql的统计结果,方便使用它直接与页面结果进行比对
3.3 给自己加个油! 我一定可以的!
四.开始编程
***因为代码内实际业务逻辑比较强,所以下面只写出一些示例啦~
4.1 先处理一下基础数据
1)因为我将要写入的内容涉及到全国的省市名称和省市行政区域代码,所以先找开发要了一个他们使用的全国省市名称及代码对照json,然后处理成字典格式备用
2)编写写入sql的语句头
通过配置文件的方式将各个表的写入语句的前半句语法格式和写入字段名称编辑好。
之后每次使用的时候只需通过配置文件读取对应表的写入语句再拼装上要写入的内容就是一个完整的sql语句了
使用配置文件的模式主要是可以统一管理,并且可以保持后面生成环节的代码整洁
[veh_scrap]
veh = INSERT INTO zqy_veh_scrap_sto (zqy_id, vin, pack_num, scrap_time, bat_is_scrap,wmi,epname,epcode,province_code,city_code,submit_time) values
加python学习qq群:775690737 送python零基础入门学习资料+99个源码
4.2 编写工具模块
1)编写随机工具
因为写入的内容大部分字段需要不重复,所以使用random模块,定义不同的方法生成各种类型随机数据,如随机身份证号 随机姓名 随机编码 随机ID 等等...
再生成写入数据的时候,就可以引用这个随机工具模块引用里面的方法取随机值,以保证写入数据的唯一性
例:
def random_vin():
"""
生成随机vin
:return:
"