接口测试-jmeter串联xml数据格式请求

发表于:2019-7-04 14:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Alisa168    来源:简书

  要求:
  测试支付及支付检测两个接口
  支付及检测的接口请求为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),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号