zoukankan      html  css  js  c++  java
  • 给测试环境造大批量数据

    测试中有需要大批量数据场景:一是准备大量测试数据,二是对数据库执行压测,本篇记录三种造大批量数据的方法

    目录

    1、执行存储过程

    2、使用python

    3、使用jmeter

    准备工作:

    在数据库中创建一张表,a唯一:

    create TABLE mytest(a int(11) PRIMARY key,b int(11),c VARCHAR(20));
    

     本篇记录生成10条数据方法,具体需要多少可以根据自己的需求设置循环次数

     

    1、执行存储过程

    了解存储过程格式可参考:https://www.cnblogs.com/weizhideweilai/p/8552021.html

    描述:将数据库中不可重复的字段定义成变量,每次执行插入后,将该变量加1

    drop PROCEDURE if EXISTS newone;
    CREATE PROCEDURE newone()
    begin 
    		DECLARE id1 int;   #定义一个变量
    		set id1=1;         #初始化一个值
    		while id1<=10
    			do
    				insert into mytest(a,b,c) VALUES (id1,1,"test");
    				set id1=id1+1;
    		end while;
    end;
    
    call newone();
    

     结果:

    2、使用python

    第一种:使用python生成数据,再复制到mysql中执行

    python脚本:

    for i in range(1,11):
        a = "(%s, 1, 'test'),"%int(i)
        with open("E://b.txt", "a") as fp:
            fp.write(a+"
    ")

    生成数据如下:

     修改结束符为分号,在mysql中执行插入:

    insert into mytest(a,b,c) VALUES (1, 1, 'test'),
    (2, 1, 'test'),
    (3, 1, 'test'),
    (4, 1, 'test'),
    (5, 1, 'test'),
    (6, 1, 'test'),
    (7, 1, 'test'),
    (8, 1, 'test'),
    (9, 1, 'test'),
    (10, 1, 'test');

    第二种:直接使用python链接mysql,执行sql语句

    参考https://www.cnblogs.com/weizhideweilai/p/13227049.html设置python连接mysql

    在main函数中编写脚本:

    if __name__ == '__main__':
        insert_sql = "INSERT INTO mytest VALUES "
        insert_values = "".join(["(%s,  1, 'test'), 
    "%int(i) for i in range(1,11)])
        # 拼接sql
        sql = insert_sql + insert_values[:-3]+";"
        print(sql)
        db = DbConnect(dbinfo, database="haveatry")
        db.execute(sql)
        db.close()
    

     

     

    3、使用jmeter

    首先使用jmeter连接mysql,参考:https://www.cnblogs.com/weizhideweilai/p/9320805.html

    使用函数助手生成随机数${__Random(1,20,${a})}

     填写sql请求:

    设置循环次数为10:

    随机数尽量设置大一点,避免重复,我这里范围太小,会有重复值生成,导致部分请求执行失败

     结果:

  • 相关阅读:
    JavaWeb(一)
    有趣的天平秤假币问题
    栈应用——逆波兰式表达式的值
    栈应用——最长括号匹配
    倾力总结40条常见的移动端Web页面问题解决方案
    Emmet:HTML/CSS代码快速编写神器
    我的 Github 个人博客是怎样炼成的
    解决mac下atom安装插件失败问题
    Github建站全攻略
    OS X快捷键最最齐全版(官方版)
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/13377356.html
Copyright © 2011-2022 走看看