zoukankan      html  css  js  c++  java
  • 使用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 脚本结构形式

     

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

     

  • 相关阅读:
    Node 核心模块HTTP模块
    Node 的 模块 及fs 模块的使用
    Node 简介和环境安装
    RBAC权限管理模型:基本模型及角色模型解析及举例
    JS中Ajax的同步和异步
    tp5.1 获取json对象的json内容
    JavaScript 判断对象中是否有某属性
    php 函数使用可变数量的参数
    ThinkPHP5.1关于查询器查询条件为[NOT] NULL时的写法
    js中const,var,let区别
  • 原文地址:https://www.cnblogs.com/testway/p/9510269.html
Copyright © 2011-2022 走看看