Python-工具-生成测试数据

Posted yangjn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-工具-生成测试数据相关的知识,希望对你有一定的参考价值。

    在日常开发测试中,可能需要测试SQL执行性能,但是一般在开发环境中不存在测试所需的数据,因为生产环境的数据是有法律效益的,非法获取会触犯法律。

    所以在平时的工作中只能自己根据数据标准造数据,为了避免重复编写造数脚本,编写了一个通用Python脚本。

import cx_Oracle
import string
import random
def id_generator(size=6, chars=string.ascii_uppercase + string.digits):
        return ‘‘.join(random.choice(chars) for _ in range(size))
db=cx_Oracle.connect(用户名/密码@服务名)
dbcursor = db.cursor()
sql1 = insert into 
sql2 =  values( 
bl = True
while(bl==True):
    treemenuname =  input(请输表名,0 退出\n)
    sql1 =  sql1 + treemenuname + ( num = input(请输生成条数,0 退出\n)
    dbcursor.execute("select col.column_name  from user_constraints con, user_cons_columns col where con.constraint_name = col.constraint_name   and con.constraint_type = ‘P‘   and col.table_name = ‘%s‘  and rownum<=1"%treemenuname)
    zj1 = dbcursor.fetchone()
    zj  = zj1[0] 
    print("主键关键字:",zj)
    if(treemenuname == 0):
        break
    dbcursor.execute("select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from user_tab_columns where TABLE_NAME = ‘%s‘ "%treemenuname)
    rs = dbcursor.fetchall()
    if(rs):
        for i in range(len(rs)):
            yz = rs[i]
            col = yz[0]
            typ = yz[1]
            lgh = yz[2]
            sql1 = sql1 + col
            if(zj != col):
                if(typ == VARCHAR2):
                    sql2= sql2 + "" +id_generator(lgh)+""
                elif(typ == NUMBER):
                    sql2= sql2 + "%s"%i
                elif(typ == DATE):
                    sql2 = sql2 + "sysdate"
            else:
                sql2  = sql2 + "‘主键‘"
                zjlgh = lgh
            #
            if(len(rs) != i + 1):
                sql1 = sql1 + ,
                sql2 = sql2 +  ,
            else:
                sql1 = sql1 + )
                sql2 = sql2 +  )
    else:
        print("无查询结果")

    for i in range(int(num)):
        if(zj is not None):
            #print(sql2)
            dbcursor.execute(sql1 + sql2.replace(主键,id_generator(zjlgh)))
            db.commit()
print("查询完成")

    脚本保存为.py文件即可执行。

以上是关于Python-工具-生成测试数据的主要内容,如果未能解决你的问题,请参考以下文章

python_接口自动化测试框架

通过 Python 为 TensorFlow 编写模糊测试

Python 脚本生成测试数据,Python生成随机数据,Python生成大量数据保存到文件夹中

python脚本批量生成数据

Python Faker随机生成测试数据(干货)

python3 测试的时候如何批量随机生成伪数据?(faker模块的)