jmeter使用数据库创造批量数据
一,对于工作中创造大量的测试数据一直比较头疼,当然你如果懂python或者java那就比较简单了,除此之外,我们如何搞定测试数据呢?
1,使用jmeter中的csv组件读取excle表格的数据,设定循环次数就可以搞定,但是这种方法需要我们手动去excel中创造很多数据,比较麻烦
2,可以直接操作数据库,但是如果关联表太多,也不是很方便。我们先看一下这个方法吧
二,jmeter连接数据库
1,先在线程组下面的配置原件中添加数据库连接
2,再添加jdbc request
3,准备mysql-connector-java-5.1.31.jar包,放到lib\ext目录中,正常每次打开jmeter都要配置jdbc jar包,这样的操作使jdbc默认配置成功,只需要调用即可(这里配置完了最好重新启动一下jmeter,否则不生效)
4,数据库连接的配置
注意Dababase URL: jdbc:mysql://192.168.3.140:3306/interface_one?useUnicode=true&characterEncoding=utf8
在上面面板中还有个链接名称不能忘记
5,JDBC request的配置
查看结果树中的结果:
数据库中的结果:
很显然数据库中的密码必须是加密的,但是我们这里是明文,不符合规范,那怎么办呢?
首先我们要知道密码加密的方法,一般在公司中我们去哪里获取加密的方法呢?去询问开发或者自己去拿代码(前提是你有代码拉取权限)。如果你没有权限,开发也不搭理你怎么办呢?我们可以在测试环境找到编译的好的代码包,通过反编译工具进行反编译就可以看到源码,在源码中找到加密的方法即可
6,操作过程
1首先提取加密方法,我们需要可以去测试环境上找到已经编译过后的class文件(这个class文件里面必须有加密方法,一般根据文件名可以识别),然后拖到JD-GUI.exe这个反编译工具中,就可以找到加密方法,接着通过idea调试没问题就复制到beanshell采样器中,如图:
2调用类方法--生成加密的字符串--使用内置函数vars.put存到jmeter里面,作为jmeter的变量
3调用变量${}
通过for循环可以直接写入很多数据到数据库中,同时还可以实现写入到文件中