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

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

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

1 參數(shù)化釋義

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

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

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

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

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

2.1 CSV Data Set Config

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

CSV簡介

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

在這里插入圖片描述

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

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

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

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

在這里插入圖片描述

Current thread group:當(dāng)前線程組。各個線程組之間隔離,線程組內(nèi)的線程順序唯一取值。

在這里插入圖片描述

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

在這里插入圖片描述

CSV實例

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

在這里插入圖片描述

在這里插入圖片描述

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

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

在這里插入圖片描述

運(yùn)行腳本,察看結(jié)果樹:

在這里插入圖片描述

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

注意事項

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

在這里插入圖片描述

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ù):

在這里插入圖片描述

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

在這里插入圖片描述

這種方式相對來說簡易一些,數(shù)據(jù)范圍有限,適用場景也少。而且,每個線程會一直使用一組數(shù)據(jù)。例如,設(shè)置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)–>用戶定義的變量。

在這里插入圖片描述

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

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

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

2.4 Random

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

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

在這里插入圖片描述

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

在這里插入圖片描述

運(yùn)行腳本,察看結(jié)果樹,可以看到效果:

在這里插入圖片描述

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

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

相關(guān)文章

  • java中Swing會奔跑的線程俠

    java中Swing會奔跑的線程俠

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

    SpringBoot全局異常處理方案分享

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

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

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

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

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

    Character.UnicodeBlock中cjk的說明詳解

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

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

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

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

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

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

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

    Java8函數(shù)式接口的基礎(chǔ)學(xué)習(xí)教程

    這篇文章主要給大家介紹了關(guān)于Java8函數(shù)式接口基礎(chǔ)學(xué)習(xí)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    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的相關(guān)知識,本文給大家分享問題原因及解決方案,需要的朋友可以參考下
    2020-09-09

最新評論