1. 程式人生 > >jmeter之斷言、資料提取器(正則表示式、jsonpath、beanshell)、聚合報告、引數化

jmeter之斷言、資料提取器(正則表示式、jsonpath、beanshell)、聚合報告、引數化

 

  • ctx - ( JMeterContext ) - gives access to the context
  • vars - ( JMeterVariables ) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object()); vars.getObject("OBJ2");
  • props - (JMeterProperties - class java.util.Properties) - e.g. props.get("START.HMS"); props.put("PROP1","1234");
  • prev - ( SampleResult ) - gives access to the previous SampleResult (if any)
  • sampler - (Sampler)- gives access to the current sampler

ctx 地址:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html

vars 地址:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html

prev地址:http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html

 

 

 

jmeter中jsonpath用的jar包

本次指令碼

一、斷言

包含、匹配,如果做效能測試一般都用包含,預設是響應文字

二、資料提取器包括:1、正則表示式提取器;2、jsonpath 提取器;3、beanshell

正則表示式和jsonpath提取器,提取的值可以用在第二次請求用,上一個介面的資料做為下一個介面請求的資料,可以用beanshell裡的responseData ,當做一個map,也可以用jsonpath 和正則表示式,jsonpath 的只針對json的格式,正則表示式可以用在不規則的情況下。

1、正則表示式,主要用於提取返回資訊中的資料,做判斷用。

Apply to:預設即可
要檢查的欄位:主體等選擇,一般我們選擇主體,即伺服器返回給我們的頁面主體資訊
引用名稱:即引數名稱,這個自己定義,在後面時可用
正則表示式: 正則表示式中()括起來的部分就是要提取的。.代表任意字元,+代表出現任意次,後面加?。
模板:$1$代表只有一組資料
匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0,如果在LR中,取出的值是一個數組,還得處理一下,LR11版本用一個隨機的函式就可以不用寫大段的程式碼來處理陣列
預設值:如果引數沒有取得到值,那預設給一個值讓它取

正則表示式 裡的引用名 放到beanshell裡使用,log.info("myname::::::"+vars.get("myname"));

 

2、jsonpath

需要新增jar包,

3、beanshell

在beanshell中寫入 String responseData = prev.getResponseDataAsString();  引用responseData 這個名字就可以使用了

三、聚合報告裡面做效能用的比較多,響應時間主要用的是99%line,代表百分之99的請求響應時間低於多少ms;

聚合報告頁面中,在所有資料寫入一個檔案,檔名寫上路徑,就可以輸出到那個路徑jtl 格式的報告,然後可以轉換成html格式

 

四、CSV引數化

FileName:即同目錄下csv檔案的名稱
File Encoding: 預設為ANSI
Varible Names: 定義文字檔案中的引數名,引數之間逗號分隔.定義後可在指令碼在以Shell變數的同樣的方式引用
Allow Quoated data: 雙引號相關
迴圈Recycle on EOF: 設定為True後,允許迴圈取值
到最後就停止Stop Thread on EOF: 當Recycle on EOF為false並且Stop Thread on EOF為true,則讀完csv檔案中的記錄後,停止執行
Sharing Mode: 設定是否執行緒共享
設定執行緒迴圈為永遠,CSV的Recycle on EOF=False,
Stop thread on EOF=True

原文:https://blog.csdn.net/qq_30353203/article/details/77671922