zoukankan      html  css  js  c++  java
  • 记一次jmeter从txt文本获取数值并给测试计划的变量赋值,jmeter永久性修改变量。

    前言:

    需要永久性的改变变量。

    其实这个办法并不是最好的,但是是最容易实现的。后期可做成从数据库里直接取值。

    赋值BeanShell

    import java.io.File;  
    import java.io.InputStreamReader;  
    import java.io.BufferedReader;  
    import java.io.BufferedWriter;  
    import java.io.FileInputStream;  
    import java.io.FileWriter;  
    import java.util.ArrayList;
    import java.util.List;
    
        private String stringLine="";
    
        public static int getPrice(int k)
        {
        //        /* 读入TXT文件 */  
            String pathname = "D:\\Java\\Jmeter\\apache-jmeter-5.0\\bin\\DaiShouFuLuRuYongHu.txt"; // 绝对路径或相对路径都可以,这里是绝对路径
            File filename = new File(pathname); // 要读取以上路径的input。txt文件
            InputStreamReader reader = new InputStreamReader(new FileInputStream(filename)); // 建立一个输入流对象reader
            BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
            List line = new ArrayList();
            List lineint = new ArrayList();
            int i=0;
            String[] s = br.readLine().split(",");
            for(i =0 ; i<s.length; i++){
                line.add(s[i]);
            }
            for (i = 0;i<line.size();i++)
            {
                //去掉多余的空格
                String b = line.get(i).toString().trim();
                //转成int并存储
                lineint.add(Integer.parseInt(b)+1);
                System.out.println(i+"I:"+lineint.get(i));
            }
            //转成字符串
            stringLine = "";
            for (i = 0;i<line.size();i++)
            {
                //转成字符
                String b = String.valueOf(lineint.get(i));
                //转成String并存储
                if(i!=0)
                {
                    stringLine += ",";
                }
                stringLine+=b;
            }
            System.out.println(stringLine);
    
    return lineint.get(k);
        }   
    
    public static void setTxt()
    {
        System.out.println("输入中");
           File writename = new File("D:\\Java\\Jmeter\\apache-jmeter-5.0\\bin\\DaiShouFuLuRuYongHu.txt");// 相对路径,如果没有则要建立一个新的output。txt文件
            //writename.createNewFile(); // 创建新文件
            BufferedWriter out = new BufferedWriter(new FileWriter(writename));
            System.out.println("输入中");
            out.write(stringLine); // 
    即为换行
            out.flush(); // 把缓存区内容压入文件
            out.close(); // 最后记得关闭文件    
    }
    
    
    //vars.get("${merchantName}");
    int cc = getPrice(0);
    String aa = vars.get("merchantName");
    aa+=cc;
    vars.put("merchantName",aa);
    
    int dd = getPrice(1);
    String ddd = "";
    ddd+=dd;
    vars.put("SPid",ddd);
    
    System.out.println(stringLine);
    setTxt();
    System.out.println("写入文件成功");
  • 相关阅读:
    MySQL(数据库)
    移动端兼容
    Vue常用指令
    JS浮点运算精度问题
    ES11新增的9个新特性
    后端要采用ArrayBuffer上传文件
    重磅来袭 Vue 3.0 One Piece 正式发布
    Vue 事件的高级使用方法
    浏览器的回流与重绘(Reflow&Repaint)
    微前端介绍
  • 原文地址:https://www.cnblogs.com/zdfbk/p/10143354.html
Copyright © 2011-2022 走看看