Jmeter之參數傳遞的三種方式


(一)CSV文件讀取要批量輸入的變量

1.使用組件:配置元件->CSV Data Set Config

2.組件位置:放在所服務請求前

3.組件說明:

  • 文件名:指向CSV配置文件的路徑(包含文件名)。
  • 文件編碼:CSV文件默認的編碼是UTF-8。
  • 變量名稱:和CSV的列相對應,名稱自定義(沒有拿中文當變量的說法)
  • 忽略首行:通常情況下,CSV的文件首行標注數據的含義,所以要設置忽略,如果不忽略的話,就從第一行來讀取。
  • 分割符:默認的英文逗號
  • 是否允許帶引號:字面意思,如果你的CSV中是有JSON數據,或者帶有引號的數據,建議設為True
  • 遇到文件結束符再次循環:字面意思,一般情況下讀取所有數據之后就可以結束了,如果是想重復利用數據,這里可以設置為True,多次循環。(操作的數據不是線程)
  • 遇到文件結束符停止線程:字面意思,配置文件讀取完畢之后,就結束當前線程。(操作的線程)
  • 線程共享模式:看想讓這個CSV數據文件作用范圍是哪里。

4.變量引用

 

JMeter產生變量的方式有很多種,但是引用變量的方式只有一種: ${變量名}

 

例如:上面的CSV讀取產生的變量名:login_name
引用的時候就是:
${login_name}

 

 

5.實例

添加變量:

 

 

引用變量:

 

 

 

(二)利用Cookie進行值的傳遞

 

(三)利用正則提取器/json提取器提取上一個接口的返回數據作為下個請求的輸入

一、正則提取器

1、正則提取器組件說明

  • 引用名稱:存儲匹配結果的變量名稱,可以是一個值也可以是一組值
  • 正則表達式:匹配的正則表達式,正則表達式里面可以有多個正則
  • 模板:正則表達式提取器類型,樣式為:$n$,模板可自由組合,拼接組成新的字符串內容。
  •  模板為$0$,則為整個表達式匹配到的內容;
  •  模板為:$1$,則對應正則表達式中的第一個小括號內()匹配的內容;
  •  模板為$2$,則對應正則表達式中的第二個小括號()匹配的內容;
  •  模板為$1$$2$,則把2個()所匹配的內容拼接起來,$1$aa$2$拼接兩個變量的內容,並在中間加上aa
  •  匹配數字:-1代表取全部數據,0代表隨機取值,1代表取第1個數據,2代表取第2個數據
  •  缺省值:找不到匹配時的值

2、實例

①添加組件

 

 

 ②設置組件

 ③引用變量

 

二、json提取器

1.json提取器組件說明

 

 

  •  變量名:存儲提取的變量名字
  •  Json Path Expressions:Json Path 表達式
  •  Match Numbers: 匹配的數量,0代表隨機獲取,1代表獲取第1個數據,-1代表獲取所有數據
  •  Compute concatenation var (suffix_ALL):是否統計所有,即將匹配到的所有值保存為變量_ALL。
  •  Default Values: 沒有匹配值時的提示信息
  • Json Extractor 提取到的值會存儲在變量里,使用方法和普通變量一樣,通過${}引用Json Extractor 的變量即可。Json Extractor存儲的變量名是基於提取器中變量名稱擴展的,建議通過添加DebugSampler獲取Json Extractor實際存儲值的變量名。

2.實例

①目標數據

 

②添加組件

 

 

 ③配置組件

 

 ④引用參數

同線程引用

跨線程引用

 

1. 傳遞變量說明

1.1 傳參方式

現在大家在用自己公司的接口做操作的時候需要傳遞token,很不方便,所以把傳遞token的打卡提到前面,可能有點難度,慢慢來,有問題留言或者到星球提問,需要用到beanshell解釋器

1.1.1 內置變量

//同線程組
vars :操作 jmeter 變量,它是測試用例與 BeanShell 交互的橋梁,常用方法:
vars.get(String key):從jmeter 中獲得變量值
vars.put(String key,String value):數據存到 jmeter 變量
//跨線程組
props :操作 jmeter 屬性,該變量引用了 JMeter 的配置信息,可以獲取Jmeter
的屬性,它的使用方法與 vars 類似,但是只能 put 進去 String 類型的值,而不能是一個對象。
props.get("START.HMS");START.HMS 為屬性名,在jmeter.properties 中定義
props.put("PROP1","1234");

1.1.2 函數助手

        聲明全局變量:
            ${__setProperty(newtoken,${token},)}
        引用全局變量
            ${__P(newtoken,)}

1.2 傳參形式

1.2.1 同線程組

//示例1.beanshell語句
String   str =vars.get("loginName");//獲取變量loginName
vars.put("key",str);//拋出做線程組內變量
//其他
默認的變量都在本線程組下使用

1.2.2 跨線程組

//示例1.beanshell語句
String   str =vars.get("token");
props.put("newToken",str);
//示例2.函數助手
${__setProperty(newtoken,${token},)}
//跨線程組引用變量的方式
${__P(newtoken,)}//只需要變量名就可以

配置元件之CSV數據文件配置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM