大一网站开发项目答辩,工厂怎么做网站,珠海网站建设网,私有云网站建设实践环境
win10
JMeter 5.4.1
需求描述
需求是这样的#xff0c;需要压测某个接口(取消分配接口)#xff0c;请求这个接口之前#xff0c;需要先登录系统(物流WMS系统)#xff0c;并在登录后#xff0c;选择并进入需要操作的仓库#xff0c;然后请求接口#xff0c;…实践环境
win10
JMeter 5.4.1
需求描述
需求是这样的需要压测某个接口(取消分配接口)请求这个接口之前需要先登录系统(物流WMS系统)并在登录后选择并进入需要操作的仓库然后请求接口接口报文如下
{orderNos: [OB-20231221-0000025,OB-20231221-0000026], warehouseCode: 763DCD
}要求warehouseCode和登录用户所属仓库保持一致orderNos必须归属于warehouseCode简单理解就是登录用户只能操作所选仓库的订单。
此外每个订单参数只能用一次
脚本设计与实现
整体实现 具体设计如下
1、用户自定义变量配置 2、将登录用户数据(登录账号登录密码所属仓库)存放在一个文本文件如下
load_testing_user_info.txt
userName,password,warehouseCode
opt022DCP1,iOKqmObkHLqd5whJzcBr/.../kmUN/ND393iQkE,022DCP
opt763DCD573,iOKqmObkHLqd5whJzcBr/.../kmUN/ND393iQkE,763DCD
opt022DCP782,iOKqmObkHLqd5whJzcBr/.../kmUN/ND393iQkE,022DCP
opt022DCP32,iOKqmObkHLqd5whJzcBr/.../kmUN/ND393iQkE,022DCP
opt763DCD753,iOKqmObkHLqd5whJzcBr/.../kmUN/ND393iQkE,763DCD
opt763DCD150,iOKqmObkHLqd5whJzcBr/.../kmUN/ND393iQkE,763DCD
...3、将仓库订单数据分别按仓库分组存放在不同的文件
763DCD-orders.txt
orderWarehouseorders
763DCDOB-20231221-0000025,OB-20231221-0000026
763DCDOB-20231221-0000027,OB-20231221-0000028
763DCDOB-20231221-0000029,OB-20231221-0000030
763DCDOB-20231221-0000031,OB-20231221-0000032022DCP-orders.txt
orderWarehouseorders
022DCPOB-20231221-0000029,OB-20231221-0000030,OB-20231221-0000031,OB-20231221-0000032,OB-20231221-0000033
022DCPOB-20231222-0048049,OB-20231222-0048050,OB-20231222-0048051,OB-20231222-0048052,OB-20231222-0048053
022DCPOB-20231222-0053060,OB-20231222-0053061,OB-20231222-0053062,OB-20231222-0053063,OB-20231222-0053064
022DCPOB-20231222-0058083,OB-20231222-0058084,OB-20231222-0058085,OB-20231222-0058087,OB-20231222-00580864、将仓库订单数据文件添加到不同的IF逻辑控制器下增加IF判断条件--判断登录用户所属仓库和是否和订单数据文件所属仓库一致如果一致则可读取对应数据文件
5、要求订单数据不可重复使用步骤3操作会导致CSV Data Set Config配置元件的Recycle on EOF?: FalseStop thread on EOF?:True 配置项无法起到精确控制(有作用但读取到文件末尾时不会立即停止还是有线程会继续从头读取至于啥时候才会全部停止我也不清楚最后线程会因为这个配置停止就是)
解决方案在对应的IF逻辑控制下添加线程共享计数器并在数据文件之后添加脚本采样器脚本里判断计数器当前值是否大于文件最大内容行数如果大于则停止线程
if (Long.parseLong(vars.get(fileLineReadCnt1)) Long.parseLong(vars.get(maxFileLineNum2))) {ctx.getThread().stop()
} 2024最新Jmeter接口测试从入门到精通全套项目实战教程