'接口測試參數化詳解(JMeter)'

腳本語言 Excel 川石信息 2019-07-18
"
"
接口測試參數化詳解(JMeter)

接口測試是目前最主流的自動化測試手段,它組合不同的參數向服務器發送請求,接受和解析響應結果,通過測試數據的交換邏輯來驗證服務端程序工作的正確性。我們在測試過程中需要考慮不同的輸入組合,來覆蓋不同的測試範圍;除此之外,系統中往往存在一些有唯一性校驗的接口,不允許重複錄入關鍵字段(eg: 用戶名,身份證…),針對這些有唯一性校驗的接口,需要在每次運行時動態輸入不同的數據。

為了解決上述問題,Jmeter提供了一些參數化的工具,最常用的有RandomString函數,CSVRead函數以及CSVDataSetConfig。

"
接口測試參數化詳解(JMeter)

接口測試是目前最主流的自動化測試手段,它組合不同的參數向服務器發送請求,接受和解析響應結果,通過測試數據的交換邏輯來驗證服務端程序工作的正確性。我們在測試過程中需要考慮不同的輸入組合,來覆蓋不同的測試範圍;除此之外,系統中往往存在一些有唯一性校驗的接口,不允許重複錄入關鍵字段(eg: 用戶名,身份證…),針對這些有唯一性校驗的接口,需要在每次運行時動態輸入不同的數據。

為了解決上述問題,Jmeter提供了一些參數化的工具,最常用的有RandomString函數,CSVRead函數以及CSVDataSetConfig。

接口測試參數化詳解(JMeter)

一、RandomString函數

Jmeter通過RandomString函數助手可動態生成字符串,它包括三個變量:

• Random string length:生成的String長度

• Chars to use for random string generation:用於生成String的字符集

• Name of variable in which to store the result (optional):可選,指定存儲生成的String變量名,供後續接口調用。

"
接口測試參數化詳解(JMeter)

接口測試是目前最主流的自動化測試手段,它組合不同的參數向服務器發送請求,接受和解析響應結果,通過測試數據的交換邏輯來驗證服務端程序工作的正確性。我們在測試過程中需要考慮不同的輸入組合,來覆蓋不同的測試範圍;除此之外,系統中往往存在一些有唯一性校驗的接口,不允許重複錄入關鍵字段(eg: 用戶名,身份證…),針對這些有唯一性校驗的接口,需要在每次運行時動態輸入不同的數據。

為了解決上述問題,Jmeter提供了一些參數化的工具,最常用的有RandomString函數,CSVRead函數以及CSVDataSetConfig。

接口測試參數化詳解(JMeter)

一、RandomString函數

Jmeter通過RandomString函數助手可動態生成字符串,它包括三個變量:

• Random string length:生成的String長度

• Chars to use for random string generation:用於生成String的字符集

• Name of variable in which to store the result (optional):可選,指定存儲生成的String變量名,供後續接口調用。

接口測試參數化詳解(JMeter)

通過RandomString可以生成任意長度的指定字符集的字符串,除了生成隨機字符串,還可以基於RandomString拼接擴展特定格式的字符串。

比如有些系統會校驗手機號前三位,即可通過RandomString生成後8位數字,然後拼接滿足需求的前三位數字組合。

"
接口測試參數化詳解(JMeter)

接口測試是目前最主流的自動化測試手段,它組合不同的參數向服務器發送請求,接受和解析響應結果,通過測試數據的交換邏輯來驗證服務端程序工作的正確性。我們在測試過程中需要考慮不同的輸入組合,來覆蓋不同的測試範圍;除此之外,系統中往往存在一些有唯一性校驗的接口,不允許重複錄入關鍵字段(eg: 用戶名,身份證…),針對這些有唯一性校驗的接口,需要在每次運行時動態輸入不同的數據。

為了解決上述問題,Jmeter提供了一些參數化的工具,最常用的有RandomString函數,CSVRead函數以及CSVDataSetConfig。

接口測試參數化詳解(JMeter)

一、RandomString函數

Jmeter通過RandomString函數助手可動態生成字符串,它包括三個變量:

• Random string length:生成的String長度

• Chars to use for random string generation:用於生成String的字符集

• Name of variable in which to store the result (optional):可選,指定存儲生成的String變量名,供後續接口調用。

接口測試參數化詳解(JMeter)

通過RandomString可以生成任意長度的指定字符集的字符串,除了生成隨機字符串,還可以基於RandomString拼接擴展特定格式的字符串。

比如有些系統會校驗手機號前三位,即可通過RandomString生成後8位數字,然後拼接滿足需求的前三位數字組合。

接口測試參數化詳解(JMeter)

RandomString函數非常強大,幾乎可以實現接口單個請求參數的所有參數化工作,但在實際應用中,有時候不同請求參數有一定的關聯性,此時無法通過RandomString來解決多請求參數之間的關聯性問題,需要引入CSV組件來解決。

二、CSVRead函數

SVRead函數適用於一組關聯請求參數的場合,比如要選擇用戶收穫地址,往往需要選擇省->市->區,而省市區這三個請求參數之間有關聯性,此時可以通過自定義一組滿足關聯性要求的數據,將其寫入CSV文件,然後在Jmeter中通過CSV函數來讀取CSV文件。

"
接口測試參數化詳解(JMeter)

接口測試是目前最主流的自動化測試手段,它組合不同的參數向服務器發送請求,接受和解析響應結果,通過測試數據的交換邏輯來驗證服務端程序工作的正確性。我們在測試過程中需要考慮不同的輸入組合,來覆蓋不同的測試範圍;除此之外,系統中往往存在一些有唯一性校驗的接口,不允許重複錄入關鍵字段(eg: 用戶名,身份證…),針對這些有唯一性校驗的接口,需要在每次運行時動態輸入不同的數據。

為了解決上述問題,Jmeter提供了一些參數化的工具,最常用的有RandomString函數,CSVRead函數以及CSVDataSetConfig。

接口測試參數化詳解(JMeter)

一、RandomString函數

Jmeter通過RandomString函數助手可動態生成字符串,它包括三個變量:

• Random string length:生成的String長度

• Chars to use for random string generation:用於生成String的字符集

• Name of variable in which to store the result (optional):可選,指定存儲生成的String變量名,供後續接口調用。

接口測試參數化詳解(JMeter)

通過RandomString可以生成任意長度的指定字符集的字符串,除了生成隨機字符串,還可以基於RandomString拼接擴展特定格式的字符串。

比如有些系統會校驗手機號前三位,即可通過RandomString生成後8位數字,然後拼接滿足需求的前三位數字組合。

接口測試參數化詳解(JMeter)

RandomString函數非常強大,幾乎可以實現接口單個請求參數的所有參數化工作,但在實際應用中,有時候不同請求參數有一定的關聯性,此時無法通過RandomString來解決多請求參數之間的關聯性問題,需要引入CSV組件來解決。

二、CSVRead函數

SVRead函數適用於一組關聯請求參數的場合,比如要選擇用戶收穫地址,往往需要選擇省->市->區,而省市區這三個請求參數之間有關聯性,此時可以通過自定義一組滿足關聯性要求的數據,將其寫入CSV文件,然後在Jmeter中通過CSV函數來讀取CSV文件。

接口測試參數化詳解(JMeter)

Jmeter中通過函數助手可引入CSVRead函數的支持,它有兩個參數:

• CSV File to get Values from: 需要讀取的CSV文件

• CSV文件列號:從0開始

"
接口測試參數化詳解(JMeter)

接口測試是目前最主流的自動化測試手段,它組合不同的參數向服務器發送請求,接受和解析響應結果,通過測試數據的交換邏輯來驗證服務端程序工作的正確性。我們在測試過程中需要考慮不同的輸入組合,來覆蓋不同的測試範圍;除此之外,系統中往往存在一些有唯一性校驗的接口,不允許重複錄入關鍵字段(eg: 用戶名,身份證…),針對這些有唯一性校驗的接口,需要在每次運行時動態輸入不同的數據。

為了解決上述問題,Jmeter提供了一些參數化的工具,最常用的有RandomString函數,CSVRead函數以及CSVDataSetConfig。

接口測試參數化詳解(JMeter)

一、RandomString函數

Jmeter通過RandomString函數助手可動態生成字符串,它包括三個變量:

• Random string length:生成的String長度

• Chars to use for random string generation:用於生成String的字符集

• Name of variable in which to store the result (optional):可選,指定存儲生成的String變量名,供後續接口調用。

接口測試參數化詳解(JMeter)

通過RandomString可以生成任意長度的指定字符集的字符串,除了生成隨機字符串,還可以基於RandomString拼接擴展特定格式的字符串。

比如有些系統會校驗手機號前三位,即可通過RandomString生成後8位數字,然後拼接滿足需求的前三位數字組合。

接口測試參數化詳解(JMeter)

RandomString函數非常強大,幾乎可以實現接口單個請求參數的所有參數化工作,但在實際應用中,有時候不同請求參數有一定的關聯性,此時無法通過RandomString來解決多請求參數之間的關聯性問題,需要引入CSV組件來解決。

二、CSVRead函數

SVRead函數適用於一組關聯請求參數的場合,比如要選擇用戶收穫地址,往往需要選擇省->市->區,而省市區這三個請求參數之間有關聯性,此時可以通過自定義一組滿足關聯性要求的數據,將其寫入CSV文件,然後在Jmeter中通過CSV函數來讀取CSV文件。

接口測試參數化詳解(JMeter)

Jmeter中通過函數助手可引入CSVRead函數的支持,它有兩個參數:

• CSV File to get Values from: 需要讀取的CSV文件

• CSV文件列號:從0開始

接口測試參數化詳解(JMeter)

CSVRead函數有一些侷限性,CSVRead不可指定編碼,跨系統調用時可能出現亂碼;另外多次循環同一個請求時會重複讀取第一行數據,只有當線程數設置為多個時,才會讀取多行數據。

三、CSV Data Set Config配置元件

CSV Data Set Config 是CSVRead函數的升級版組件,它可以配置更多選項來控制讀取的過程:

• Filename:CSV文件路徑

• File Encoding:編碼格式,中文系統下生成的CSV文件編碼使用GBK (英文系統使用UTF-8)

• Variables Name:生成的變量名,通過順序和Excel列數據對應,指定變量名以後DebugSampler中可查看變量值

• Delimiter:分割符,CSV默認的分割符是逗號,tab分割符

• Allow quoted data: 是否允許雙引號內的拆分,設置為Ture時,“a,b”,c 會被解析為3列數據,設置為False時,會被解析為2列數據,默認False

• Recycle on EOF:參數文件是否循環遍歷,設置為False時,文件遍歷完則終止提取,請求的參數值為EOF,默認True。無論是設置多線程,還是多次迭代,都會循環遍歷CSV文件。

• Stop thread on EOF:參數值為EOF時,是否停止執行線程。當 Recycle on EOF 設置為 true 時,此項不起任何作用。當且僅當 Recycle on EOF? 為 false 時,此項配置才生效。默認為False

• Sharing mode:共享模式,All threads:參數文件對所有線程共享,包括同一測試計劃中的不同線程組;Current thread group:只對當前線程組中的線程共享;Current thread:僅對當前線程獲取。

"
接口測試參數化詳解(JMeter)

接口測試是目前最主流的自動化測試手段,它組合不同的參數向服務器發送請求,接受和解析響應結果,通過測試數據的交換邏輯來驗證服務端程序工作的正確性。我們在測試過程中需要考慮不同的輸入組合,來覆蓋不同的測試範圍;除此之外,系統中往往存在一些有唯一性校驗的接口,不允許重複錄入關鍵字段(eg: 用戶名,身份證…),針對這些有唯一性校驗的接口,需要在每次運行時動態輸入不同的數據。

為了解決上述問題,Jmeter提供了一些參數化的工具,最常用的有RandomString函數,CSVRead函數以及CSVDataSetConfig。

接口測試參數化詳解(JMeter)

一、RandomString函數

Jmeter通過RandomString函數助手可動態生成字符串,它包括三個變量:

• Random string length:生成的String長度

• Chars to use for random string generation:用於生成String的字符集

• Name of variable in which to store the result (optional):可選,指定存儲生成的String變量名,供後續接口調用。

接口測試參數化詳解(JMeter)

通過RandomString可以生成任意長度的指定字符集的字符串,除了生成隨機字符串,還可以基於RandomString拼接擴展特定格式的字符串。

比如有些系統會校驗手機號前三位,即可通過RandomString生成後8位數字,然後拼接滿足需求的前三位數字組合。

接口測試參數化詳解(JMeter)

RandomString函數非常強大,幾乎可以實現接口單個請求參數的所有參數化工作,但在實際應用中,有時候不同請求參數有一定的關聯性,此時無法通過RandomString來解決多請求參數之間的關聯性問題,需要引入CSV組件來解決。

二、CSVRead函數

SVRead函數適用於一組關聯請求參數的場合,比如要選擇用戶收穫地址,往往需要選擇省->市->區,而省市區這三個請求參數之間有關聯性,此時可以通過自定義一組滿足關聯性要求的數據,將其寫入CSV文件,然後在Jmeter中通過CSV函數來讀取CSV文件。

接口測試參數化詳解(JMeter)

Jmeter中通過函數助手可引入CSVRead函數的支持,它有兩個參數:

• CSV File to get Values from: 需要讀取的CSV文件

• CSV文件列號:從0開始

接口測試參數化詳解(JMeter)

CSVRead函數有一些侷限性,CSVRead不可指定編碼,跨系統調用時可能出現亂碼;另外多次循環同一個請求時會重複讀取第一行數據,只有當線程數設置為多個時,才會讀取多行數據。

三、CSV Data Set Config配置元件

CSV Data Set Config 是CSVRead函數的升級版組件,它可以配置更多選項來控制讀取的過程:

• Filename:CSV文件路徑

• File Encoding:編碼格式,中文系統下生成的CSV文件編碼使用GBK (英文系統使用UTF-8)

• Variables Name:生成的變量名,通過順序和Excel列數據對應,指定變量名以後DebugSampler中可查看變量值

• Delimiter:分割符,CSV默認的分割符是逗號,tab分割符

• Allow quoted data: 是否允許雙引號內的拆分,設置為Ture時,“a,b”,c 會被解析為3列數據,設置為False時,會被解析為2列數據,默認False

• Recycle on EOF:參數文件是否循環遍歷,設置為False時,文件遍歷完則終止提取,請求的參數值為EOF,默認True。無論是設置多線程,還是多次迭代,都會循環遍歷CSV文件。

• Stop thread on EOF:參數值為EOF時,是否停止執行線程。當 Recycle on EOF 設置為 true 時,此項不起任何作用。當且僅當 Recycle on EOF? 為 false 時,此項配置才生效。默認為False

• Sharing mode:共享模式,All threads:參數文件對所有線程共享,包括同一測試計劃中的不同線程組;Current thread group:只對當前線程組中的線程共享;Current thread:僅對當前線程獲取。

接口測試參數化詳解(JMeter)

以上三個組件基本涵蓋了接口自動化中參數化的絕大多數功能,對於更復雜的參數化需求,可通過編碼方式實現腳本,並通過Jar包的方式引入腳本支持。

"

相關推薦

推薦中...