• 使用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 脚本结构形式

     

     

     

     

  • 相关阅读:
    maven第三章 maven使用入门
    各个软件产生的原因
    maven的pom.xml深入理解
    批量同步订单信息(包括状态)到订单中心心得
    数据库连接超时和go away、如何检测数据库的最大连接数
    记录错误日志的技巧
    架构思想总结同步和事务的具体应用
    业务逻辑复杂性处理
    日志系统总结
    php捕获异常的处理
  • 原文地址:https://www.cnblogs.com/xiaowenshu/p/10550539.html
Copyright © 2020-2023  润新知