性能数据的准备-Jmeter
性能测试的一般流程:
收集性能需求——>编写性能脚本——>执行性能测试——>分析测试报告——>系统性能调优
在收集性能需求后,我们会思考:
负载测试时并发时需要多少数据?例:登录
DB数据是否和线上接近?
所以——我们需要在测试前批量造一批数据进行性能测试
性能数据有个重要的点:数据必须带有特殊标记,方便与其他正常数据隔离并且在测试完成后销毁。
不同公司的性能数据不一样,这里我讲一下最常见的两种制造方式:
1、数据库直接插入性能测试数据
首先下载一个mysql的jar包放到jmeter安装目录的lib下或者直接在测试计划处引用
然后新建一个jdbc connection configration,连接目标数据库,需要填写数据库ip+端口号,用户名和密码(改用户需有修改的权限)
创建一个jdbc request,把需要插入的数据库语句附上,并且把需要动态修改的参数(类似用户名)参数化:
新增一个用户自定义变量,将参数化的变量写入,并且通过函数助手生成随机数,变量我以rac为标记,性能测试完成便于删除这些脏数据。
最后在线程组输入你需要创建的数据个数就可以啦~
我比较喜欢用循环控制器,看起来比较简洁~
通过数据库插入的方式造数据的方式,sql厉害的童鞋也可以写存储过程。
2、批量轮询跑接口造数据
最简洁的版本,只跑一个接口造数据:
将自己需要创建的用户名+密码放在一个csv文件里面,通过csv data config参数化获取uname,pass
创建一个http请求,在注册用户的接口data处参数化用户名和密码:
最后一步,线程组设置csv文件里的用户数,跑一遍后就创建了一批性能测试用户啦!
当然,这只是最基础版本的。通常的测试数据都关联多张表,所以我们需要给每个用户跑多个接口,那么这个时候,我们就需要参数关联这个秘诀了——
首先同上,添加一个csv data config,将创建的性能测试数据的用户名,密码的csv文件添加进去
新建一个http请求,放登录接口,参数化登录名和密码,从性能测试用户的csv文件中动态获取
登录成功后,需要获取到token作为其他接口造数据的关键!常用postman调接口的开发大哥都知道token的重要性,通行证呀!
通过正则表达提取器获取到token后放到公共信息头管理器中。
最后添加几个http请求,将造数据需要的接口写入即可~
这次先介绍这两种方式,后续持续更新。
其实有写python版本的,后续放在对应的分类里面做链接~