一,对于工作中创造大量的测试数据一直比较头疼,当然你如果懂python或者java那就比较简单了,除此之外,我们如何搞定测试数据呢?

  1,使用jmeter中的csv组件读取excle表格的数据,设定循环次数就可以搞定,但是这种方法需要我们手动去excel中创造很多数据,比较麻烦

  2,可以直接操作数据库,但是如果关联表太多,也不是很方便。我们先看一下这个方法吧

二,jmeter连接数据库

  1,先在线程组下面的配置原件中添加数据库连接  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据

  2,再添加jdbc request  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据库_02

   3,准备mysql-connector-java-5.1.31.jar包,放到lib\ext目录中,正常每次打开jmeter都要配置jdbc jar包,这样的操作使jdbc默认配置成功,只需要调用即可(这里配置完了最好重新启动一下jmeter,否则不生效)

  4,数据库连接的配置  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据库_03

   注意Dababase URL:             jdbc:mysql://192.168.3.140:3306/interface_one?useUnicode=true&characterEncoding=utf8

  在上面面板中还有个链接名称不能忘记

jmeter怎么批量往redis写数据 jmeter 批量读取数据_jmeter怎么批量往redis写数据_04

  5,JDBC request的配置  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_bc_05

   查看结果树中的结果: 

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据库_06

   数据库中的结果:


jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据_07

   很显然数据库中的密码必须是加密的,但是我们这里是明文,不符合规范,那怎么办呢?

  首先我们要知道密码加密的方法,一般在公司中我们去哪里获取加密的方法呢?去询问开发或者自己去拿代码(前提是你有代码拉取权限)。如果你没有权限,开发也不搭理你怎么办呢?我们可以在测试环境找到编译的好的代码包,通过反编译工具进行反编译就可以看到源码,在源码中找到加密的方法即可

  6,操作过程

    1首先提取加密方法,我们需要可以去测试环境上找到已经编译过后的class文件(这个class文件里面必须有加密方法,一般根据文件名可以识别),然后拖到JD-GUI.exe这个反编译工具中,就可以找到加密方法,接着通过idea调试没问题就复制到beanshell采样器中,如图:    

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据库_08

    2调用类方法--生成加密的字符串--使用内置函数vars.put存到jmeter里面,作为jmeter的变量

    3调用变量${}  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_jmeter怎么批量往redis写数据_09

   7,其他操作类型    

jmeter怎么批量往redis写数据 jmeter 批量读取数据_bc_10

   使用${变量名}的方式来应用外部的变量

    先设置用户参数:    

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据库_11

    再把参数应用到sql中    

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据_12

   使用”?“作为占位符,并传递参数值和参数类型   

jmeter怎么批量往redis写数据 jmeter 批量读取数据_jmeter怎么批量往redis写数据_13

   那么我们如何插入大量的数据呢?

    首先我们可以使用csv创造出大量数据(如果数据量特别大,可以使用python实现造数据)。如:    

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据库_14

   我这里有10条数据,我的线程数要10,如:   

jmeter怎么批量往redis写数据 jmeter 批量读取数据_bc_15

 

jmeter怎么批量往redis写数据 jmeter 批量读取数据_bc_16

  这是我的执行结果 

jmeter怎么批量往redis写数据 jmeter 批量读取数据_jmeter怎么批量往redis写数据_17

   去数据库查看,数据已经全部插入到数据库中了  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据_18

 三,如何获取jdbc中数据作为下一个接口参数使用

  需要注意的几项:  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_bc_19

    在JDBC Request中添加beanshll 后置处理器  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_bc_20

//从数据库返回的对象中获取值
  Object result = vars.getObject("sms_code").get(0).get("sms_code");
  vars.put("sms_code",result);

  因为数据库返回的是一个对象,所以我们要通过vars.getObject("变量").get(0).get("key")的形式来提取里面的值

  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_bc_21

  最终结果如下:  

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据_22

 

jmeter怎么批量往redis写数据 jmeter 批量读取数据_数据_23