jmeter经验---java 追加写入代码一例

    最近最项目参数化的时候用到,场景是这样的,需要测试A和B两个接口,其中B接口传入的参数必须是传递给A接口过的,所以整理一个思路就是:

     1. 正常调用A接口,但是将传递给A接口的参数保存到文本里,此处要注意避免写入操作影响测试、成为瓶颈;

     2. 调用B接口时,参数从上一步的文本里读取数据

收藏一下备忘:

  1. 用于将A接口传入的参数保存下来的代码

      // 保存pin和UUID,每个线程一份
      StringBuffer uuidStr = new StringBuffer();
//在测试结束的时候 写入文件
public void teardownTest(JavaSamplerContext context) {
            write2Txt("/export/uuid.txt", uuidStr.toString());
      }

      public SampleResult runTest(JavaSamplerContext arg0) {
            // TODO Auto-generated method stub
           SampleResult result = new SampleResult();
            boolean isSuccessful = false;
        
            try {
                 //************************* 构造参数开始******************************************
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//************************* 构造参数结束******************************************
                  result.sampleStart();
         
                  // 调用业务方法
                  object = a.xxxxxxxx(args);
                  if (object.isSuccess()) {
                        isSuccessful = true;                  
                  } else {
                        isSuccessful = false;                      
                  }
                  // 释放资源
                xxxxxxxxxxxxxx 
            } catch (Exception e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                  logger.info(e.getMessage());
                  
            } finally {
                  result.sampleEnd();
                  result.setSuccessful(isSuccessful);
                  uuidStr.append(pinBuffer).append(",").append(Uuid);
            }
            return result;
      }


/* * file 文件名 content 文件内容 */ public void write2Txt(String file, String conent) { BufferedWriter out = null; try { out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true))); out.write(conent + " "); } catch (Exception e) { e.printStackTrace(); } finally { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } }

    2. B接口 使用CSV Data set config 读取数据

  

相关代码:

      public Arguments getDefaultParameters() {
            Arguments args = new Arguments();
            args.addArgument("pin", "111");      
            args.addArgument("uuid", "aaa");         return args;
      }

public SampleResult runTest(JavaSamplerContext arg0) {
            // 获取从文本读取的参数值
            String pin = arg0.getParameter("pin");
            String uuid = arg0.getParameter("uuid");
            //其余代码略...
      }

 

 

 

 

 

原文地址:https://www.cnblogs.com/onmyway20xx/p/4935393.html