码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-02-10 23:11:44      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:分析   停止   fileinput   value   edr   过程   except   结构   ESS   

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

 分析下需求:

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));
View Code

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("\n".getBytes());  
     fos.close();
}catch(IOException e)
{
    e.printStackTrace();
}
View Code

整个jmeter 脚本结构形式

 技术图片

 

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

标签:分析   停止   fileinput   value   edr   过程   except   结构   ESS   

原文地址:https://www.cnblogs.com/a00ium/p/10360396.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!