怎样通过excel录入来批量造数据
背景:
自动化测试除了验证系统功能外,还能够为测试人员根据测试要求造数据实现测试需要!但是一般的自动化测试,都是在编写脚本的时候,写死在程序里的。所以本文是为了在满足系统操作流程的基础上,根据测试的要求实现测试数据的编写。
本文涉及两个新的知识点内容:
1. 读取excel数据
2. python数据库读写
2.1 创建一个简单的表
一、编写思路:
从需求出发,主要找到两个关键字:批量、要求、数据。考虑到两种实现方式,1. 页面录入 2. excel数据填写;考虑到页面操作虽然看上去很方便!但是每次都需要重新编写,而且实现批量操作也很难,最重要的是,开发成本太大!要测试人员编写一个完整的测试网页!第一步确认了:使用excel获取造数据需求。
数据记录在excel中,获取数据考虑到两种方式:1. 将excel中的数据保存在数据库中,之后系统通过数据库交互完成数据插入;2. 直接通过读取excel数据对信息进行交互。我先是通excel读取的方式操作了下,实验后发现,如果每次调用数据的时候读取excel,找数据的成本很大;批量操作根据行读取数据,也比较难搞,当然做也是肯定能够做的,只是成本比较大!所以,经过了2个小时的尝试,果断选择了数据库存取。
当然,数据库的问题也很多!首先你需要搭建个本地数据库;还需要创建数据表,创建字段,还可能涉及到字符集!不过,上述内容由于之前踩过坑了,如果需求可以看看博客里的自学mysql的方式。所以实现逻辑修改成了:读取excel一次性存入数据库,之后每次交互,都是系统与数据库之间进行交互。
实现的第一个小步:excel读取数据,并存入数据库。
分解动作1:读取excel。
分解动作1.1:引入读取excel库:
import xlrd
分解动作1.2:打开指定文件
workbook = xlrd.open_workbook(Excel_Path) # excel文本举例:u'D://自动化造数据模板.xlsx'
Sheet_Name = workbook.sheet_by_name(u'借款数据') # 定位excel中,名为“借款数据”的sheet页
分解动作1.3:读取列表数据
Term_Of_Loan = Sheet_Name.cell_value(1, 2) # 读取excel中,第二行,第三列的数据
分解动作1.4:根据数据库字段要求,修改文本属性【未修改,插入数据库提示格式错误】
Loan_Amount = int(Sheet_Name.cell_value(Count_Num, 3)) # int() 强制转换为int型
分解动作2:将读取的excel插入数据库
在进行分解动作之前,需要先创建一个数据表,本人使用的是Navicat,设计表。之前虽然没建过,但是也看到过猪跑,建表无非定义字段名、字段属性、字段长度、添加备注。

分解动作2.1:引入数据库
import pymysql
分解动作2.2:链接数据库
db = pymysql.connect('localhost', 'root', '123456', 'test', charset='utf8')
分解动作2.3:创建游标
cursor = db.cursor()
分解动作2.4:编写插入脚本:
query = 'insert into tb_bbh_dv_Invodata (ID, C_JKRDH,C_JKLX, C_JKQX, N_JKJE, N_NLV,N_JX, N_SXF, N_GLF, N_ZZSXF, N_QTJE, N_ZDTZJE, DT_CreatTime,B_SFCJ) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
分解动作2.5:执行插入脚本
cursor.execute(query, (ID, JKR_ID, Type_Of_Loan, Term_Of_Loan, Loan_Amount, Annual_Interest_Rate, Increase_Interest, Service_Charge, Management_Expense, Debt_Service_Fee, Amount_Of_Investment, Maximum_Investment, Create_Time,'0'))
db.commit()# 这句有什么用?! 不加试试,能通过算你厉害
分解动作2.5.1:写的时候遇到个问题,方法1,中有方法2,且,方法1和方法2同时使用到了数据库。方法1没有关闭数据库,方法二再调用,可能有问题!所以呢,可以将方法1的数据库连接,直接传给方法二,这样方法二只管调用,不需要考虑关闭数据库。
分解动作2.6:关闭游标以及数据库

小结:以上的两套分解动作整合到一起,就能够实现excel读取数据,存入数据库的功能,完整代码如下:

有需要的小伙伴可点击进入扣群下载,群内不定期的会分享资料教程,点击直达链接:https://jq.qq.com/?_wv=1027&k=55fzJrT
怎样通过excel录入来批量造数据的更多相关文章
- Jmeter(二十三)Jmeter-Question之“批量造数据”
日常工作中,无论是在做功能测试.接口测试还是性能测试,经常会有这么一个场景出现,“那个谁谁谁,帮我加几条订单”,“那个某某某,给购物车增添几个产品”,“在数据库加几百条数据”...等等,通常少数量,或 ...
- 基于Spring MVC实现基于form表单上传Excel文件,批量导入数据
在pom.xml中引入: <!--处理2003 excel--> <dependency> <groupId>org.apache.poi</groupId& ...
- Oracle 批量造数据
1.通过存储过程方式 CREATE OR REPLACE procedure XXZY.p_test is i number; begin .. loop INSERT INTO test_job V ...
- 项目总结04:SQL批量导入数据:将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库
将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库 写在前面:本文用的语言是java:数据库是MySql: 需求:在实际项目中,经常会被客户要求,做批量导入数据:一般的简单的单表数 ...
- PHP批量导出数据为excel表格
之前用插件phoexcel写过批量导入数据,现在用到了批量导出,就记录一下,这次批量导出没用插件,是写出一个表格,直接输出 //$teacherList 是从数据库查出来的二维数组 $execlnam ...
- java操作Excel之POI(6)使用POI实现使用模板批量添加数据
action是用struts2写的:前端界面easyUI写的, 前端: <!DOCTYPE html> <html> <head> <meta charset ...
- java操作Excel之POI(5)利用POI实现使用模板批量导出数据
后台导出方法: 在源文件夹src下面放个准备好的模板:/com/cy/template/userExportTemplate.xls,这个模板有头部一行: /** * 后台导出方法 * 利用POI实现 ...
- (转)使用Excel批量给数据添加单引号和逗号
在使用PLSQL连接oracle数据库处理数据的过程中,常用的操作是通过ID查询出数据,ID需要附上单引号,如果查询的ID为一条或者几条,我们手动添加即可,但是如果是几百条.几千条的话,就需要使用一些 ...
- java使用POI实现Excel批量导入数据
1.准备工作 1.1 创建模板表头与数据库表字段一一对应,示例如下 1.2将模板放入项目中,如下图所示: 2.前端页面 2.1 使用超链接提供模板下载地址 <html lang="zh ...
随机推荐
- 如何将腾讯视频的qlv格式转换为mp4格式
基本上每个视频app都会有自己固有的视频播放格式,比如优酷的KUX.爱奇艺的QSV和腾讯的QLV等.而今天我们重点介绍腾讯的QLV格式如何转换为MP4格式,小便也是经过多次的摸索多次的软件试用,发现的 ...
- Linux kail安装及查看命令
Linux kail安装及查看命令 apt-get update //更新源 apt-get install package ...
- 《Windows内核分析》专题-索引目录
该篇博客整理了<Windows内核分析>专题的各篇博文,方便查找. 一.保护模式 二.进程与线程 [Windows内核分析]KPCR结构体介绍 (CPU控制区 Processor Cont ...
- Unicode 和 UTF-8 之间的关系
一.ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte).也就是说,一个 ...
- Typesetting HDU - 6107
Yellowstar is writing an article that contains N words and 1 picture, and the i-th word contains aia ...
- SpringBoot自动注入分析
我们经常会被问到这么一个问题:SpringBoot相对于spring有哪些优势呢?其中有一条答案就是SpringBoot自动注入.那么自动注入的原理是什么呢?我们进行如下分析. 1:首先我们分析项目的 ...
- MacOS 安装MysqlDB 问题解决方案( 解决 IndexError: string index out of range)
pip install MySQL-python时报错如下: Command "python setup.py egg_info" failed with error code 1 ...
- [Mathematics][MIT 18.02]Detailed discussions about 2-D and 3-D integral and their connections
Since it is just a sort of discussion, I will just give the formula and condition without proving th ...
- 第三方软件 vnc提权
通过读取注册表十进制数 将得出的十进制数去掉第一个数其他转换成16进制 破解16进制数得到密码 vncx.exe -W 回车 输入16进制数 连接vnc 读取 vncx4.exe -w 8个数 自动破 ...
- 9.Linux用户管理(下)
1. 为用户添加密码 [root才能执行] 1为新用户添加密码{只能是root} {密码尽可能的复杂} [0-9][a-Z][a-Z] [!@#$%^&]* [root@yinwucheng ...