业务场景
针对某一个POST保存数据的请求接口,如下
public ApiResultDto<?> add(@RequestBody PropertyDto req) {
return propertyService.add(req);
}
public class PropertyDto {
private String type;
private String code;
private String name;
}
需求:希望在jemter性能测试中,该接口不同变量的值来自不同地方,比如type来源于csv文件,多线程共享该文件,code进行随机编码,name通过计数器按顺序编码,从而达到不同请求体的内容是不一样的,实现多线程批量插入数据的目的。
解决方案
1、type来源于csv文件
使用配置元件-CSV 数据文件设置,添加文件在type.csv文件中指定具体的数据,并自定义变量名称type,如果是多个变量的值,使用逗号分隔即可
2、code进行随机编码
根据需求生成对应的随机变量函数,比如我需要大写字母和阿拉伯数字组成的62位随机字符,可以生成对应的隨機函数:${__RandomString(6,ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,)}
常见的随机函数:
${__Random(1,100,)}
${__RandomString(3,ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,)}
${__UUID}
${__RandomDate(yyyy-MM-dd,)}
3、name通过计数器按顺序编码
添加配置元件-计数器,根据需求进行配置配置
最终效果
{
"name": "name_${count}",
"code": "code_${__RandomString(6,ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,)}",
"type": "${type}"
}