要求:
测试支付及支付检测两个接口
支付及检测的接口请求为xml格式
支付请求数据要多组不一样的数据
每个接口请求有些参数要求全局唯一
模拟正常场景,支付一次,检测5次,检测数据为支付的订单
分析如下
用 [配置原件 ->CSV Data Set Config]进行多组数据的准备
用 [sampler ->SOAP/XML-RPC Request] 请求为xml格式
用 [前置处理器 ->BeanShell PreProcessor] 进行唯一值的生成
用 [后置处理器 ->正则表达式提取器] 提前支付的返回数据作为支付检测的请求数据
用 [逻辑控制器->循环控制器]模拟支付一次检测5次的场景
用 [监听器-查看结果树]查看请求返回数据
步骤如下:
单击测试计划右键->新建线程组
单击线程组右键->参数化数据
参数化配置数据如下
添加前置处理制作请求的唯一数
代码如下:
import java.sql.Date; import java.text.SimpleDateFormat; Long timeStamp = System.currentTimeMillis(); //获取当前时间戳 SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss"); //定义时间格式 String timeNow = sdf.format(new Date(timeStamp)); // 时间戳转换成定义好的时间格式 //(数据类型)(最小值+Math.random()*(最大值-最小值+1)) //从1到9999的int型随机数 String t_no = "tn" +timeNow + (int)(1+Math.random()*(99999-1+1)); String l_no = "ln" +timeNow + (int)(1+Math.random()*(99999-1+1)); String t_req_no = "trn" +timeNow + (int)(1+Math.random()*(99999-1+1)); String o_no = "otn" +timeNow + (int)(1+Math.random()*(9999-1+1)); String iNo ="in" + timeNow + (int)(1+Math.random()*(9999-1+1)); //vars.get("name"); 从jmeter中获得变量值 //数据存到jmeter变量中 vars.put("t_no ",t_no ); vars.put("l_no ",l_no ); vars.put("t_req_no ",t_req_no ); vars.put("o_no ",o_no ); vars.put("iNo ",iNo ); log.info("------------日志开始----------------"); log.info("iNo is:"+ iNo); log.info("------------日志结束----------------"); |
添加支付请求
参数化的数据用${参数名}的格式进行编写
xml数据如下:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <p_request> <zf_head> <t_no>${t_no}</t_no> <c_no>${c_no}</c_no> <l_no>${l_no}</_no> <t_req_no>${t_req_no}</t_req_no> <o_no>${o_no}</o_no> <version>1.0</version> <p_channel>11111111</p_channel> <p_id>${p_id}</p_id> </zf_head> <acctNo>${acctNo}</acctNo> <tranAmt>${__Random(1,999999,tranAmt)}</tranAmt> <iNo>${iNo}</iNo> </p_request> |
ps:不需要规则的随机数可用jmeter自带的工具自动生成
添加支付请求后,运行查看日志
添加正则表达式提取器,取支付返回数据给检测接口调用
添加循环控制器设置为5
右键循环控制器添加检测的请求
xml请求格式如下:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <p_request> <zf_head> <t_no>${t_no}</t_no> <c_no>${c_no}</c_no> <l_no>${l_no}</_no> <t_req_no >${t_req_no }</t_req_no> <o_no>${o_no}</o_no> <version>1.0</version> <p_channel>2222222</p_channel> <p_id>${p_id}</p_id> </zf_head> <iNo>${iNo}</iNo> <oriTranDate></oriTranDate> </payment_request> |
添加查看结果树查看接口请求返回参数
运行看结果
达到测试目的,完毕。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理