网址查询站长工具,在线制作图片加文字的软件,这是我自己做的网站,网站建设哪里学在测试的工作过程中#xff0c;很多场景是需要构造一些数据在项目里的#xff0c;方便测试工作的进行#xff0c;构造的方法有很多#xff0c;难度和技术深度也不一样。本文提供方法供你选择。
在测试的工作过程中#xff0c;很多场景是需要构造一些数据在项目里的…在测试的工作过程中很多场景是需要构造一些数据在项目里的方便测试工作的进行构造的方法有很多难度和技术深度也不一样。本文提供方法供你选择。在测试的工作过程中很多场景是需要构造一些数据在项目里的方便测试工作的进行。比如下面的场景项目需要做性能测试需要大量的数据就算是功能测试比如测试搜索功能需要有数据做搜索测试需要检查数据的一致性的检查的时候也需要项目有大量的数据如果项目有一些统计表和图需要测试数据统计正确性的时候也需要构造海量的测试数据那么测试如何快速的构造测试数据呢构造的方法有很多难度和技术深度也不一样可以根据数量级的不同可以采取不同的方法。方法一如果项目要求的数据不多几十条或者十几条即可可以手动页面操作构成这种方法虽然原始但是简单没有技术门槛如果是少量的数据手动操作也不太费时间。不过如果数据的数量级上来了那么这种方法就不太靠谱了。方法二直接调用接口 批量发送接口请求这种方法会比纯页面添加要快速一些使用一个接口测试工具比如Jmeterpostman的CSV的方法批量读取数据发送接口请求实现数据的构造或者Python的requests库的都可以比较快的实现。但是这种方法有一定的技术门槛你必须熟练使用至少一款接口测试的工具。而且还有一些功能接口要处理接口的依赖或者有接口本地的一些bug阻塞或者性能瓶颈问题。既然不管是页面操作还是接口操作都是本质上把数据插入到数据库中那我们是否可以直接去数据库插入数据呢答案是可以的。方法三直接使用sql insert 插入数据使用使用SQL语句比如insert into tuser (username,phone) values (tricy,13444444444)插入数据。但是这种方法虽然是对数据库直接操作奈何效率太低一条一条的插入所以这种方法在实际操作中是不可取的。方法四一次性从外部导入excel表格数据第一步本地电脑准备好一个excel表格按照数据库的表的字段填入一行数据然后在excel表格里进行下拉拖拽实现数据的快速复制。如下图然后保存好这个excel文件。第二步打开连接上MySQL数据库的Navicat右键我们数据库的表选择导入向导--选择excel文件类型进行导入具体步骤如下图所示完成导入操作后数据库表里就会插入所有excel的数据。然后这种方式可以在excel表格手动拖拽复制出来千条数量级的数据但是如果数据量更大就也不太方便了。需要有更加高效的方法。方法五数据库的存储过程实现快速构建百万级的数据存储过程其实就是数据库的编程可以通过编程控制数据插入的次数。如下案例drop procedure if exists proc_batch_insert; # 如果存在存储过程就先删除create procedure proc_batch_insert() # 创建存储过程begindeclare i int; # 定义一个变量用来计数declare _name varchar(25); # 定义一个变量用来计数参数化用户名declare _phone char(11); # 定义一个变量用来计数参数化手机号码set i1; # 设置计时器的初始值为1while i1000000 do # while循环控制插入数据的次数set _name concat(tom-,i); # 拼接用户名i为变化的保证用户名的差异性set _phone 13000000000i; # 拼接手机号码i为变化的保证手机号码的差异性insert into tuser(username,phone) values(_name,_phone); # 插入数据set ii1; # 每次循环计时器加1end while;endcall proc_batch_insert(); # 运行存储过程方法六Python代码实现构造百万的数据如果有代码基础的同学也可以使用Python代码编程实现这个过程import randomimport stringimport pymysql# 数据库连接信息host 139.224.61.195user rootport 3307password 123456database test# 建立数据库连接connection pymysql.connect(hosthost, useruser,portport, passwordpassword, databasedatabase)cursor connection.cursor()# 构造百万数据batch_size 10000 # 每批插入的数据量total_records 1000000 # 总共需要生成的数据量# 获取当前表中最大的id值cursor.execute(SELECT MAX(id) FROM tuser)max_id cursor.fetchone()[0] or 0for i in range(total_records // batch_size): #是整数除法它计算出需要进行多少批次的数据生成和插入。# 生成批量数据batch_data []for i in range(batch_size):max_id 1user_id max_id # 使用自增长方式生成唯一idusername .join(random.choices(string.ascii_lowercase, k10))phone .join(random.choices(string.digits, k11))batch_data.append((user_id, username, phone))# 批量插入数据sql INSERT INTO tuser (id, username, phone) VALUES (%s, %s, %s)cursor.executemany(sql, batch_data)connection.commit()# 关闭数据库连接cursor.close()connection.close()感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取