性能测试数据准备-埋数篇

性能测试准备阶段一般需要提前将数据准备好,用于脚本的参数化以及后面压测。

性能测试数据一般分为存量数据和交易数据。存量数据为历史记录数据,一般较大。交易数据的数据量则需满足压测时的需求,要足够多。

数据准备一般有以下方法:

    1.直接导入已有的数据库;(实际情况不会有大量数据的数据库,客户生产环境的数据库一般不允许导出)

    2.用工具直接产生记录,比如压测脚本或者其他造数工具;

    适用于测试点连贯的性能测试,可以用压测脚本产生所需要的数据;

    3.编写数据库存储器埋数;

    可直接将数据埋造于当前节点,不需要前置流转。

    这里讲解下第三种方式埋数。

 

编写数据库存储器埋数前期准备:

    1.页面测试点准备一条模板数据;

    2.日志级别设置为可打印sql的级别;

    3.先查询当前节点记录,记录后台sql相关表及记录状态,然后操作模板记录到下一节点,记录过程中涉及相关表记录;

    这期间可借助工具将该记录导出sql文件,比如PLSQL等;

    4.通过上一步可得到测试点数据涉及的表及状态;(亦可直接从开发得到相关sql

    5.根据前面得到的sql,将各个sql的字段进行变量参数化,以保证唯一。比如idsql之间关联字段等;

    使用notepad++打开导出的sql文件,汇总导出的sql

    选中字段值,notepad++会高亮显示其他位置关联的值;

    Ctrl+h id等关联字段值进行变量替换。

   

   

    6.Sql变量参数化后,套入存储器模板,进行局部调整即可;

    7.维护变量参数化取值区间表格,防止多个测试点埋数冲突。

    存储器模板:

----------------------oracle-------------------------

create or replace procedure 存储器名(x in number,y in number) is

j number;

i number;

begin

    j:=0;

  i:=1;

  while j<x loop

------------------------------------------外循环sql

  while i<=y loop

------------------------------------------内循环sql 

  i:=i+1;

  end loop;

  commit;

  i:=1;

  j:=j+1;

  end loop;

end;

/

------------------DB2----------------------

--/

create or replace procedure 存储器名(in x bigint,in y bigint)

begin

  declare j bigint;

  declare i bigint;

    set j=0;

  set i=1;

  while j<x do 

------------------------------------------外循环sqlsql

  while i<=y do

------------------------------------------内循环sql 

  set i=i+1;

  end while ;

  commit;

  set i=1;

  set j=j+1;

  end while ;

end

/

Oracle存储器在command窗口 sql> 粘贴回车执行

exec 存储器名(x,y); (传入参数值回车执行)

DB2存储器在工具窗口粘贴回车执行

Call存储器名(x,y); (传入参数值回车执行

猜你喜欢

转载自blog.csdn.net/qq_30599553/article/details/86025361