1. 程式人生 > >記一次jmeter從txt文字獲取數值並給測試計劃的變數賦值,jmeter永久性修改變數。

記一次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); // \r\n即為換行 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("寫入檔案成功");