欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JMeter參數(shù)化4種實現(xiàn)方式(小結)

 更新時間:2021年12月16日 09:37:17   作者:云深i不知處  
參數(shù)化是自動化測試腳本的一種常用技巧,可將腳本中的某些輸入使用參數(shù)來代替,JMeter提供了多種參數(shù)化方式,下面就其中常用的4種展開闡述,感興趣的可以來了解一下

1 參數(shù)化釋義

什么是參數(shù)化?從字面上去理解的話,就是事先準備好數(shù)據(jù)(廣義上來說,可以是具體的數(shù)據(jù)值,也可以是數(shù)據(jù)生成規(guī)則),而非在腳本中寫死,腳本執(zhí)行時從準備好的數(shù)據(jù)中取值。

參數(shù)化:是自動化測試腳本的一種常用技巧,可將腳本中的某些輸入使用參數(shù)來代替,如登錄時利用GET/POST請求方式傳遞參數(shù)的場景,在腳本運行時指定參數(shù)的取值范圍和規(guī)則。
腳本在運行時,根據(jù)需要選取不同的參數(shù)值作為輸入,該方式稱為數(shù)據(jù)驅動測試(Data Driven Test),而參數(shù)的取值范圍被稱為數(shù)據(jù)池(Data Pool)。

JMeter提供了多種參數(shù)化方式,下面就其中常用的4種展開闡述。

方式 適用場景
CSV Data Set Config 我們通常所指的參數(shù)化。數(shù)據(jù)存儲在文件中,參數(shù)化取值范圍大,靈活性強
User Parameter 適用于參數(shù)取值范圍很小時
函數(shù)助手 _Random等函數(shù),生成隨機數(shù)字和隨機字符串實現(xiàn)參數(shù)化
User Defined Variables 用戶自定義變量,更多用于設置全局變量

2 參數(shù)化實現(xiàn)

2.1 CSV Data Set Config

在JMeter中提起參數(shù)化,我們默認就想到CSV Data Set Config(以下簡稱CSV),CSV能夠讀取文件中的數(shù)據(jù)并生成變量,被JMeter腳本引用,從而實現(xiàn)參數(shù)化。下面我們來詳細探究一下。

CSV簡介

線程組右鍵–>添加–>配置元件–>CSV Data Set Config,就創(chuàng)建了一個CSV,界面是這個樣子的:

在這里插入圖片描述

各項參數(shù)詳解如下:

參 數(shù) 描 述 必 須
Name 腳本中顯示的這個元件的描述性名稱
Filename 文件名。待讀取文件的名稱。可以寫入絕對路徑,也可以寫入相對路徑(相對于bin目錄),如果直接寫文件名,則該文件要放在bin目錄中。對于分布式測試,主機和遠程機中相應目錄下應該有相同的CSV文件
File Encoding 文件編碼。文件讀取時的編碼格式,不填則使用操作系統(tǒng)的編碼格式
Variable Names 變量名稱。多個變量名之間必須用分隔符分隔。如果該項為空,則文件首行會被讀取并解析為列名列表
Ignore first line 是否忽略首行?如果csv文件中沒有表頭,則選擇false
Delimiter 分隔符。將一行數(shù)據(jù)分隔成多個變量,默認為逗號,也可以使用“\t”。如果一行數(shù)據(jù)分隔后的值比Vairable Names中定義的變量少,這些變量將保留以前的值(如果有值的話)
Allow quoted data? 是否允許變量使用雙引號?允許的話,變量將可以括在雙引號內,并且這些變量名可以包含分隔符
Recycle on EOF? 遇到文件結束符是否再次循環(huán)?默認為 true
Stop thread on EOF? 遇到文件結束符是否停止線程?默認為 true
Recycle on EOF? 當Recycle on EOF為False時,停止線程,當Recycle on EOF為True時,此項無意義,默認為 false
Sharing mode 線程共享模式。1、All threads(默認):一個線程組內,各個線程(用戶)唯一順序取值;2、current thread:一個線程組內,各個線程(用戶)各自順序取值;3、線程組各自獨立,但每個線程組內各個線程(用戶)唯一順序取值;

需要著重說明一下的是Sharing mode,也就是線程共享模式。線程共享模式,是指多個線程對文件數(shù)據(jù)取值順序模式,JMeter提供了3種模式:

All threads:所有線程。如果腳本有多個線程組,在這種模式下,各線程組的所有線程也要依次唯一順序取值。例如,腳本有2個線程組,各有2個線程,文件內有5行數(shù)據(jù),腳本運行時,將如下圖一樣循環(huán)往復取值:

在這里插入圖片描述

Current thread group:當前線程組。各個線程組之間隔離,線程組內的線程順序唯一取值。

在這里插入圖片描述

Current thread:當前線程。這種模式下,每個線程獨立,順序唯一取值。

在這里插入圖片描述

CSV實例

下面看一個實例。首先有userInfo.txt的文件,放置在bin目錄中,內容如下:

在這里插入圖片描述

在這里插入圖片描述

  • 文件名:文件在bin目錄中,使用相對目錄
  • 變量名稱:兩列數(shù)據(jù)分別屬于mobile和password兩個變量
  • 分隔符:以逗號分割

在HTTP請求中引用CSV生成的變量的方式是${變量名}的方式:

在這里插入圖片描述

運行腳本,察看結果樹:

在這里插入圖片描述

可以看到,文件中的數(shù)據(jù)被腳本成功引用。JMeter使用CSV實現(xiàn)參數(shù)化就是這么簡單。

注意事項

CSV使用中最常見的一個問題是文件路徑不對。當遇到這種問題時,因為運行腳本沒有明顯提示,許多人遇到后會感覺很懵,不知道問題在哪。其實,仔細觀察會發(fā)現(xiàn)右上角黃色三角處數(shù)字在增加,點擊該區(qū)域便打開了日志,日志里記錄了相應錯誤:File userInfo2.txt must exist and be readable,也就是提示參數(shù)化文件不存在或路徑不可達。

在這里插入圖片描述

2.2 User Parameters

User Parameters,也就是用戶參數(shù),也能實現(xiàn)參數(shù)化。

創(chuàng)建方式:HTTP請求上右鍵–>添加–>前置處理器(Pre processors)–>用戶參數(shù)。

通過【添加變量】添加mobile和password兩個變量,通過【添加用戶】添加3組數(shù)據(jù):

在這里插入圖片描述

在HTTP請求中引用參數(shù)化的數(shù)據(jù):

在這里插入圖片描述

運行腳本,設置好的數(shù)據(jù)被成功引用。

在這里插入圖片描述

這種方式相對來說簡易一些,數(shù)據(jù)范圍有限,適用場景也少。而且,每個線程會一直使用一組數(shù)據(jù)。例如,設置4個線程并發(fā),那么線程1使用用戶_1的數(shù)據(jù),線程2使用用戶_2的數(shù)據(jù),線程3使用用戶_3的數(shù)據(jù),線程4使用用戶_1的數(shù)據(jù),無論各個線程循環(huán)多少次。

在這里插入圖片描述

2.3 用戶定義的變量

用戶自定義的變量,也可以實現(xiàn)請求參數(shù)的參數(shù)化。

創(chuàng)建方式:線程組上右鍵–>配置元件(config element)–>用戶定義的變量。

在這里插入圖片描述

如上圖,用起來也很簡單,添加變量名和相對應的值就可以了。后面引用變量和前面一樣,使用${mobile}的方式。

【用戶定義的變量】一般并非用來做HTTP請求參數(shù)化,而是用來定義全局變量,比如參數(shù)化文件路徑、host、url等。

【用戶定義的變量】創(chuàng)建在【線程組】上,則在線程組內生效,如果創(chuàng)建在【Test Plan】上,則對所有線程組生效。

2.4 Random

函數(shù)助手中的Random函數(shù),

創(chuàng)建方式:Tools–>函數(shù)助手對話框–>選擇一個功能–>_Random:

在這里插入圖片描述

上圖中,生成了一個表達式:${__Random(8000,9000,)},我們用這個表達式替換想要參數(shù)化的變量值,例如下圖中的price變量:

在這里插入圖片描述

運行腳本,察看結果樹,可以看到效果:

在這里插入圖片描述

這種方式適用于值在一定區(qū)間無規(guī)律隨機取值的變量參數(shù)化,例如價格、數(shù)量等,并不適用于有較強規(guī)則的變量進行參數(shù)化,例如手機號。

到此這篇關于JMeter參數(shù)化4種實現(xiàn)方式(小結)的文章就介紹到這了,更多相關JMeter參數(shù)化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java中Swing會奔跑的線程俠

    java中Swing會奔跑的線程俠

    本文通過代碼示例給大家詳細講解了java中Swing會奔跑的線程俠這個經(jīng)典的示例,有興趣的朋友學習下。
    2018-03-03
  • SpringBoot全局異常處理方案分享

    SpringBoot全局異常處理方案分享

    這篇文章主要介紹了SpringBoot全局異常處理方案分享,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Java多線程的同步優(yōu)化的6種方案

    Java多線程的同步優(yōu)化的6種方案

    大家使用多線程無非是為了提高性能,在Java中,有多線程并發(fā)時,我們可以使用多線程同步的方式來解決內存一致性的問題。本文就詳細的介紹了Java多線程同步優(yōu)化,感興趣的可以了解一下
    2021-05-05
  • Java中AML讀寫常用工具包及使用方法示例

    Java中AML讀寫常用工具包及使用方法示例

    這篇文章主要給大家介紹了關于Java中AML讀寫常用工具包及使用方法的相關資料,Java?YAML工具類是一種用于處理YAML格式文件的工具類,可以方便地讀取、寫入和操作YAML文件,需要的朋友可以參考下
    2024-04-04
  • Character.UnicodeBlock中cjk的說明詳解

    Character.UnicodeBlock中cjk的說明詳解

    這篇文章主要為大家詳細介紹了Character.UnicodeBlock中cjk的說明,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Java字節(jié)緩沖流原理與用法詳解

    Java字節(jié)緩沖流原理與用法詳解

    這篇文章主要介紹了Java字節(jié)緩沖流原理與用法,結合實例形式總結分析了java字節(jié)流與緩沖區(qū)相關原理與操作技巧,需要的朋友可以參考下
    2019-09-09
  • 一文詳解各種ElasticSearch查詢在Java中的實現(xiàn)

    一文詳解各種ElasticSearch查詢在Java中的實現(xiàn)

    Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎,下面這篇文章主要給大家介紹了關于各種ElasticSearch查詢在Java中實現(xiàn)的相關資料,需要的朋友可以參考下
    2023-11-11
  • java 漢諾塔Hanoi遞歸、非遞歸(仿系統(tǒng)遞歸)和非遞歸規(guī)律 實現(xiàn)代碼

    java 漢諾塔Hanoi遞歸、非遞歸(仿系統(tǒng)遞歸)和非遞歸規(guī)律 實現(xiàn)代碼

    漢諾塔(Hanoi) 算法Java實現(xiàn)。通過三個函數(shù),分別對Hanoi進行遞歸、非遞歸和非遞歸規(guī)律實現(xiàn)。
    2013-05-05
  • Java8函數(shù)式接口的基礎學習教程

    Java8函數(shù)式接口的基礎學習教程

    這篇文章主要給大家介紹了關于Java8函數(shù)式接口基礎學習的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • IDEA報錯:Unable to save settings Failed to save settings

    IDEA報錯:Unable to save settings Failed to save settings

    這篇文章主要介紹了IDEA報錯:Unable to save settings Failed to save settings的相關知識,本文給大家分享問題原因及解決方案,需要的朋友可以參考下
    2020-09-09

最新評論