• 使用jmeter往指定文件中插入一定数量的数据


    有一个需求,新建一批账号,把获取的账号相关信息存入文本文件,当文本文件保存的数据达到一定的数量,就自动停止新建账号。

     分析下需求:

    1、把账号信息保存到文件,需要使用bean shell脚本(bean shell脚本语法和java一样,功能也一样),并且需往脚本中传入要保存的信息

    2、文件中保存的数据达到一定的数量,就自动停止新建账号。数量也是要用bean shell脚本读文件获取文件行数,并传出。自动停止新建脚本,这就需要价格jmeter的if控制器,在if控制器的条件中判断数量是否达到。

     

    脚本实现过程:

    1、位了模拟得到账号信息,先设置一个User Defined Variables,通过add > config element > User Defined Variables 添加

     

     在User Defined Variables 中添加一个变量account_info,值随意给就可以,如“111111111111”,这样往文件中保存“111111111111”模拟为账号信息

     

    2、新建一个bean shell 脚本,读取获取文件行数

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    
    int count = 0;
    try{
        File file = new File("E:\test.txt");
        // 如果文件不存在就新建
        if (!file.exists())
        { 
            file.createNewFile();
        }  
        // 读文件
        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(new FileInputStream(file.getAbsolutePath()), "UTF-8"));
        // 循环获取文件行数
        while ((str=bufferedReader.readLine())!=null)
        { 
            count = count + 1;
        }
        bufferedReader.close(); 
    
    }catch(IOException e)
    {
        e.printStackTrace();
    }
    //文件行数java变量传给jmeter变量total_lines
    vars.put("total_lines",String.valueOf(count));

    3、新建一个if 控制器

     

    if 控制器里面的条件填写:

    ${__jexl3(${total_lines}<11,aa)},其中total_lines 是bean_shell脚本返回的。使用${__jexl3(${total_lines}<11,aa)} 对${total_lines}<11进行判断并返回true 或false

     

    4、再在if控制器中新建一个 写文件bean shell

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    // 传入jmeter 变量 account  ,使用java变量 message接收
    String message= vars.get("account_info");
    try{
        File file = new File("E:\test.txt");
        // 如果文件不存在,就新建一个文件
        if (!file.exists())
        { 
            file.createNewFile();
        }
        // 文件末尾追加写入文件  
        FileOutputStream fos = new FileOutputStream(file.getAbsoluteFile(),true);
         fos.write(message.getBytes());  
         fos.write("
    ".getBytes());  
         fos.close();
    }catch(IOException e)
    {
        e.printStackTrace();
    }

    整个jmeter 脚本结构形式

     

    欢迎关注微信公众号:为测,获取更多技术干货资料

     

  • 相关阅读:
    DispatcherServlet?
    解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法?
    面向对象的特征有哪些方面?
    服务调用是阻塞的吗?
    构造器Constructor是否可被override?
    迭代器和枚举之间的区别?
    Kafka 判断一个节点是否还活着有那两个条件?
    数据传输的事务定义有哪三种?
    mq 的缺点 ?
    如何获取 topic 主题的列表?
  • 原文地址:https://www.cnblogs.com/testway/p/9510269.html
Copyright © 2020-2023  润新知