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