美文网首页
干货!手把手教小白批量制造测试数据!(附源码)

干货!手把手教小白批量制造测试数据!(附源码)

作者: 测试开发Kevin | 来源:发表于2022-04-21 10:41 被阅读0次

    造数据核心思想

    在性能测试的工作中,我们经常会遇到造数据的需求,这个工作可以让开发同学来配合,但这必定还要看开发同学的脸色行事!遇到nice的开发同学自然工作顺利,但是遇到配合度不高的开发同学,往往需要协调领导来促成此事,这就比较麻烦了!本文就通过循环批量插入数据的实例来模拟造数据这个场景,提供的都是造数据所需的干货SQL代码!本文默认读者了解基础sql语句和存储过程的编写方法。

    造数据的核心思想很简单:就是编写存储过程,循环插入数据

    造数据实例

    这里通过向mock数据库插入数据来给大家做demo演示:

    首先,创建一张表api_record2,字段信息如下:

    CREATE TABLE api_record2(

    id INT(11) PRIMARY KEY AUTO_INCREMENT,

    app_name VARCHAR(30) DEFAULT 'test',

    host_ip VARCHAR(30),

    access_time DATETIME,

    method VARCHAR(10),

    url VARCHAR(1000),

    api_data VARCHAR(1000),

    return_value VARCHAR(1000),

    INDEX index_app_name ( app_name )

    );

    具体的字段信息含义这里就不多做解释了(相信大家看命名就能够猜测出其含义,如果有问题欢迎留言),id是主键,app_name加了索引。

    接下来就是写存储过程了,代码如下:

    DELIMITER ;;

    DROP PROCEDURE IF EXISTS `insertdata`;

    CREATE PROCEDURE insertdata()

    BEGIN

      DECLARE i INT;

      SET i=1;

      WHILE(i<=10)DO

          INSERT INTO api_record2 (app_name,host_ip,access_time,method,url,api_data,return_value) VALUES (CONCAT('test',FLOOR( 1 + RAND() * (100 - 1))),'127.0.0.1',NOW(),'post','/yourapp_mock/func2','{"user":"kevin","pwd":"123",}','ok');

          SET i=i+1;

      END WHILE;

      COMMIT;

    END;;

    DELIMITER ;

    CALL insertdata();

    存储过程语句分析

    DELIMITER ;; 语句;;

    delimiter是mysql分隔符,在mysql客户端中分隔符默认是分号,一般情况下,在客户端命令行中,如果一行SQL命令以“;”结尾,回车后,会执行该条命令。如在创建存储过程,函数等,这时就需要全部输入一段命令,最后再一次性执行,此时解释器就需要通过delimiter来处理,把分号换成其他符号,如:“//”或“;;”,这样能够解释该段命令中的分号,实现一次性执行该段命令,否则会报错,无法执行。

    DROP PROCEDURE IF EXISTS `insertdata` 如果存储过程insertdata存在,则放弃执行

    CREATE PROCEDURE insertdata() 创建存储过程

    BEGIN 事务开始

    END 事务结束

    COMMIT 事务提交

    WHILE(i<=10)DO

    insert sql 语句

    SET i=i+1;

    END WHILE;

    批量插入数据核心:循环插入10条语句,语句实现与其他语言的循环语句几乎一致

    insert语句中CONCAT('test',FLOOR( 1 + RAND() * (100 - 1))) 表示应用名称为:test开头+1-99的随机数,主要目的是给大家讲解如何插入随机数据

    insert语句中NOW()表示获取当前时间

    CALL insertdata(); 执行存储过程

    这个例子比较简单,但已经很清晰的解释了造数据的思路和具体方法,相信大家可以结合自己的业务写出更为复杂的sql语句然后进行insert操作!原创不易,如果文章帮助了大家欢迎点赞转发!

    相关文章

      网友评论

          本文标题:干货!手把手教小白批量制造测试数据!(附源码)

          本文链接:https://www.haomeiwen.com/subject/kyjiertx.html