背景:
  自动化测试除了验证系统功能外,还能够为测试人员根据测试要求造数据实现测试需要!但是一般的自动化测试,都是在编写脚本的时候,写死在程序里的。所以本文是为了在满足系统操作流程的基础上,根据测试的要求实现测试数据的编写。

本文涉及两个新的知识点内容:

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录入来批量造数据的更多相关文章

  1. Jmeter(二十三)Jmeter-Question之“批量造数据”

    日常工作中,无论是在做功能测试.接口测试还是性能测试,经常会有这么一个场景出现,“那个谁谁谁,帮我加几条订单”,“那个某某某,给购物车增添几个产品”,“在数据库加几百条数据”...等等,通常少数量,或 ...

  2. 基于Spring MVC实现基于form表单上传Excel文件,批量导入数据

    在pom.xml中引入: <!--处理2003 excel--> <dependency> <groupId>org.apache.poi</groupId& ...

  3. Oracle 批量造数据

    1.通过存储过程方式 CREATE OR REPLACE procedure XXZY.p_test is i number; begin .. loop INSERT INTO test_job V ...

  4. 项目总结04:SQL批量导入数据:将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库

    将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库 写在前面:本文用的语言是java:数据库是MySql: 需求:在实际项目中,经常会被客户要求,做批量导入数据:一般的简单的单表数 ...

  5. PHP批量导出数据为excel表格

    之前用插件phoexcel写过批量导入数据,现在用到了批量导出,就记录一下,这次批量导出没用插件,是写出一个表格,直接输出 //$teacherList 是从数据库查出来的二维数组 $execlnam ...

  6. java操作Excel之POI(6)使用POI实现使用模板批量添加数据

    action是用struts2写的:前端界面easyUI写的, 前端: <!DOCTYPE html> <html> <head> <meta charset ...

  7. java操作Excel之POI(5)利用POI实现使用模板批量导出数据

    后台导出方法: 在源文件夹src下面放个准备好的模板:/com/cy/template/userExportTemplate.xls,这个模板有头部一行: /** * 后台导出方法 * 利用POI实现 ...

  8. (转)使用Excel批量给数据添加单引号和逗号

    在使用PLSQL连接oracle数据库处理数据的过程中,常用的操作是通过ID查询出数据,ID需要附上单引号,如果查询的ID为一条或者几条,我们手动添加即可,但是如果是几百条.几千条的话,就需要使用一些 ...

  9. java使用POI实现Excel批量导入数据

    1.准备工作 1.1 创建模板表头与数据库表字段一一对应,示例如下 1.2将模板放入项目中,如下图所示: 2.前端页面 2.1 使用超链接提供模板下载地址 <html lang="zh ...

随机推荐

  1. Hadoop点滴-初识MapReduce(2)

    术语: job(作业):客户端需要执行的一个工作单元,包括输入数据.MP程序.配置信息 Hadoop将job分成若干task(任务)来执行,其中包括两类任务:map任务.reduce任务.这些任务在集 ...

  2. [Vjudge][POJ][Tony100K]搜索基础练习 - 全题解

    目录 POJ 1426 POJ 1321 POJ 2718 POJ 3414 POJ 1416 POJ 2362 POJ 3126 POJ 3009 个人整了一些搜索的简单题目,大家可以clone来练 ...

  3. vue平行组件传值

    平行组件传值 通过平行组件传值可以实现任何情境下的传值,包括(父传子,子传父) 代码示例 <!DOCTYPE html> <html lang="en"> ...

  4. IDEA 学习笔记之 Console显示日志大小

    Console显示日志大小: IntelliJ IDEA默认的Output输出缓存区大小只有1024KB,超过大小限制的就会被清除,而且还会显示[too much output to process] ...

  5. 快学Scala 第二十一课 (初始化trait的抽象字段)

    初始化trait的抽象字段: trait Logged { println("Logged constructor") def log(msg: String){ println( ...

  6. MongoDB 学习笔记之 入门安装和配置

    下载MongoDB: 下载解压即可使用. 为了启动方便和统一管理, 在Mongo根目录下建立/data, /logs, /conf文件夹. 在conf文件夹下建立mongodb.conf 文件,基本配 ...

  7. 对接第三方服务引起的小思考-回调和Sign算法

    背景 ​ 最近在对接一个同事写的支付公用模块,然后对第三方服务引起一两个小思考. 思考 回调 来看看我们同事是如何做回调的. 首先,请求支付接口的时候,将回调URL作为请求body的一个参数[不加密] ...

  8. logback颜色

    官网日志连接:https://logback.qos.ch/manual/layouts.html#coloring 举例 logging.pattern.console=%red(%d{yyyy-M ...

  9. 02-19 k近邻算法(鸢尾花分类)

    [TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ ...

  10. css3——box-sizing属性

    很多朋友们可能会疑惑,不知道box-sizing属性是有什么作用,自己也很少会用到,但是想必不少人在做网页布局的时候经常遇到一个问题就是我明明设置了父元素设置了假如是宽高500px,5个子元素左浮动设 ...