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

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

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. 动态insert mybatis与ibatis

    mybatis: <insert id="insert" parameterType="hashMap"> INSERT INTO item < ...

  2. linux 指定tomcat的具体路径

    1.直接修改catalina.sh中对应的变量 CATALINA_HOME=/xx/xxCATALINA_BASE=/xx/xx (该方法需要找到所有的变量进行修改,不适合,推荐使用方式2) 2.在p ...

  3. 虚拟现实中自由步行(free-space walking)

    之前我们讲到了虚拟现实中漫游方式的分类.虚拟现实中的漫游(travel/navigate)方式,即是应用提供给用户的,在虚拟环境中移动的方式.虚拟现实的漫游方式中,有一种被称为“完全动作线索”1,即用 ...

  4. SpringBoot自定义异常,优雅解决业务逻辑中的错误

    概要 你是不是在为业务逻辑中出现的异常弄的焦头烂额,常常在后台报错,前端却无法提示错误内容,导致用户体验极差?比如下单失败,前端只能提示下单失败,但是却不知道为什么失败,是库存不足,还是余额不足,亦或 ...

  5. Redis对象——字符串

    文章导航-readme 前言     上一篇文章Redis之对象篇--Redis对象系统简介简单介绍了Redis的对象系统.Redis使用对象来表示数据库中的键和值每个对象都由一个redisObjec ...

  6. HashMap底层数据结构详解

    一.HashMap底层数据结构 JDK1.7及之前:数组+链表 JDK1.8:数组+链表+红黑树 关于HashMap基本的大家都知道,但是为什么数组的长度必须是2的指数次幂,为什么HashMap的加载 ...

  7. bugku细心地大象

    解压得到图片,查看属性,发现一段编码. 用winhex打开图片,发现头文件是错的,正常jpg文件头文件为FF D8 FF E0 说明不是图片,是zip的文件头,更换格式. 丢到kali用binwalk ...

  8. MAC 上的Phantomjs的安装和配置

    1.下载 http://phantomjs.org/download.html 选择mac版本下载 2.下载完成后,解压缩,然后放到自己的一个目录下面 例如:/usr/local/Phantomjs/ ...

  9. Django-debug-toolbar(调试使用)

    Django-debug-toolbar django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息. https: ...

  10. Flask中的cookie和session

    from flask import Flask app = Flask(__name__) 一.cookie from flask import Flask, make_response, reque ...