最近最项目参数化的时候用到,场景是这样的,需要测试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 + "\r\n");
} 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");
//其余代码略...
}

jmeter经验---java 追加写入代码一例的更多相关文章

  1. java 追加写入代码一例

    最近最项目参数化的时候用到,场景是这样的,需要测试A和B两个接口,其中B接口传入的参数必须是传递给A接口过的,所以整理一个思路就是: 1. 正常调用A接口,但是将传递给A接口的参数保存到文本里,此处要 ...

  2. jmeter经验----java 读取文件中文乱码问题

    很少写java io的代码,今天整了一个发现 本地调试好好的,放到jmeter里就打印乱码.一番折腾,终于搞定~直接上代码: List<Order> orderList = new Arr ...

  3. java追加写入txt文件

    整理了下网上的资料,数据追加写入txt文件有三种方式,见下面代码: 方法一: public void method1() { FileWriter fw = null; try { //如果文件存在, ...

  4. JAVA各种OOM代码样例及解决方法

    周末了,觉得我还有很多作业没有写,针对目前大家对OOM的类型不太熟悉,那么我们来总结一下各种OOM出现的情况以及解决方法. 我们把各种OOM的情况列出来,然后逐一进行代码编写复现和提供解决方法. 1. ...

  5. Java操作HDFS代码样例

    代码在GitHub上. 包括如下几种样例代码: 新建文件夹 删除文件/文件夹 重命名文件/文件夹 查看指定路径下的所有文件 新建文件 读文件 写文件 下载文件至本地 上传本地文件 https://gi ...

  6. JAVA追加写入文本文件

    public void method1() { FileWriter fw = null; try { //如果文件存在,则追加内容:如果文件不存在,则创建文件 File f=new File(&qu ...

  7. Java基础知识强化之IO流笔记20:FileOutputStream写出数据实现换行和追加写入

    1.  如何实现数据的换行? (1) package com.himi.fileoutputstream; import java.io.FileNotFoundException; import j ...

  8. java servlet 代码样例 (demo)

    今天又搞了下jsp +servlet 的代码样例,感觉虽然搭了好多次,可是每次还是不记得那些参数,都要去网上搜索,索性自己把这次的简单demo给记录下来,供下次使用的时候直接复制吧. 这个web逻辑 ...

  9. jmeter 测试java协议经验总结

    对java协议的良好支持,是jmeter比loadrunner优秀的地方,但是坑也不少,本文将相关点都整理下来备忘 一. 依赖的jar包 使用IDE开发jemter java协议脚本时,需要导入以下几 ...

随机推荐

  1. Plus One 加一运算

    Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...

  2. Linux c —— opendir函数和readdir函数内涵及用法(转)

    opendir函数 头文件:#include <sys/types.h>  #include <dirent.h> 函数:DIR *opendir(const char *na ...

  3. 如何去掉browserLinkSignalR

    在使用vs开发时查看源代码可以发现最下面有以下代码,此段代码会一直请求网络,感觉不爽的可以这样去掉: <!-- Visual Studio Browser Link --> <scr ...

  4. 【Linux】条件判断eq、ne、gt、lt、ge、le

    整数比较: -eq(equal) 相等 -ne(inequality) 不相等 -gt(greater than) 大于 -lt(less than) 小于 -ge(greater equal) 大于 ...

  5. java中pojo、dao命名解释

    POJO::POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称. 使用POJO名称是为了避免和EJB ...

  6. Android自定义控件进阶-打造Android自定义的下拉列表框控件

    技术:Android+java   概述 Android中的有个原生的下拉列表控件Spinner,但是这个控件有时候不符合我们自己的要求, 比如有时候我们需要类似windows 或者web网页中常见的 ...

  7. Kafka流处理平台

    1. Kafka简介 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性 ...

  8. OnPreRender事件常见用法

    protected override void OnPreRender(EventArgs e) 1) 加入脚本 protected override void OnPreRender(EventAr ...

  9. 关于easyui的问答(来自百度问答)

    求教大神,jquery easyui中$('#table').datagrid('options').queryParams是什么意思 https://zhidao.baidu.com/questio ...

  10. webservice(pers)

    1.     Java远程方法调用 Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接 ...