jmeter組件介紹

<meta charset="utf-8">

一. 性能測試

1.1. 性能測試是什么

1.1.1 廣義定義

基于協(xié)議模擬用戶發(fā)出請求,對(duì)服務(wù)器形成一定負(fù)載,來測試服務(wù)器的性能指標(biāo)是否滿足要求性能指標(biāo)關(guān)注點(diǎn):時(shí)間性能、空間性能性能測試與頁面無關(guān)

1.1.1 狹義定義

指通過自動(dòng)化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試。

1.2. 性能測試工具

image

<meta charset="utf-8">

二. Jmeter簡介

2.1. 我們?yōu)槭裁词褂肑meter

開源,免費(fèi),基于Java編寫,可集成到其他系統(tǒng)可拓展各個(gè)功能插件
支持接口測試,壓力(負(fù)載和壓力)測試等多種功能,支持錄制回放,
入門簡單相較于自己編寫框架活其他開源工具,有較為完善的UI界面,便于接口調(diào)試
多平臺(tái)支持,可在Linux,Windows,Mac上運(yùn)行,支持多協(xié)議

2.2. Jmeter的作用

  1. 接口測試 面試說postman,因?yàn)榉奖愫糜谩?/li>
  2. 性能測試 jmeter,也可以用postman(runner),但是沒有性能指標(biāo)
  3. 數(shù)據(jù)庫測試

2.3. Jmeter怎么用

Windows下Jmeter下載安裝,登錄 http://jmeter.apache.org/download_jmeter.cgi ,根據(jù)自己平臺(tái),下載對(duì)應(yīng)文件

image

2.4. 安裝JAVA環(huán)境

安裝JDK,配置環(huán)境變量(具體步驟不做介紹)

image

將下載Jmeter文件解壓,打開/bin/jmeter.bat

image
image

2.5. Jmeter的目錄結(jié)構(gòu)

image

/bin 目錄常用文件介紹:

examples:目錄下包含Jmeter使用實(shí)例
ApacheJMeter.jar:JMeter源碼包
jmeter.bat:windows下啟動(dòng)文件
jmeter.sh:Linux下啟動(dòng)文件
jmeter.log:Jmeter運(yùn)行日志文件
jmeter.properties:Jmeter配置文件
jmeter-server.bat:windows下啟動(dòng)負(fù)載生成器服務(wù)文件
jmeter-server:Linux下啟動(dòng)負(fù)載生成器文件
/docs目錄——Jmeter幫助文檔
/extras目錄——提供了對(duì)Ant的支持文件,可也用于持續(xù)集成
/lib目錄——存放Jmeter依賴的jar包,同時(shí)安裝插件也放于此目錄
/licenses目錄——軟件許可文件,不用管
/printable_docs目錄——Jmeter用戶手冊

三. 使用Jmeter測試快速入門

3.1. 線程組是什么

進(jìn)程: 一個(gè)正在執(zhí)行的程序?qū)?yīng)一個(gè)進(jìn)程
線程: 一個(gè)進(jìn)程有多個(gè)執(zhí)行線程
線程組:   按照線程性質(zhì)對(duì)線程分組。查看任務(wù)管理器(愛奇藝有多個(gè))
三者關(guān)系: 一個(gè)進(jìn)程有多個(gè)線程組,一個(gè)線程組有多個(gè)線程

測試計(jì)劃—線程組—線程組屬性中的線程數(shù)
并發(fā)執(zhí)行:多個(gè)線程同時(shí)執(zhí)行,特點(diǎn):執(zhí)行結(jié)束的順序與開始的順序不一致
順序執(zhí)行:按照線程的啟動(dòng)順序挨個(gè)執(zhí)行
默認(rèn)情況下,線程組中的線程是并發(fā)執(zhí)行
每一個(gè)線程都要執(zhí)行組內(nèi)的http請求
設(shè)置線程組順序執(zhí)行:勾選測試計(jì)劃中的(獨(dú)立運(yùn)行每個(gè)線程組)
線程組用來模擬用戶的并發(fā)訪問

3.1.1. 創(chuàng)建線程組

image

3.1.2. 線程組主要包含三個(gè)參數(shù):

線程數(shù)、準(zhǔn)備時(shí)長(Ramp-Up Period(in seconds))、循環(huán)次數(shù)。

3.1.3. 線程數(shù):

虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)線程。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)。

3.1.4. 準(zhǔn)備時(shí)長(秒):

設(shè)置的虛擬用戶數(shù)需要多長時(shí)間全部啟動(dòng)。如果線程數(shù)為20 ,準(zhǔn)備時(shí)長為10 ,那么需要10秒鐘啟動(dòng)20個(gè)線程。也就是每秒鐘啟動(dòng)2個(gè)線程。

3.1.5. 循環(huán)次數(shù):

每個(gè)線程發(fā)送請求的次數(shù)。如果線程數(shù)為20 ,循環(huán)次數(shù)為100 ,那么每個(gè)線程發(fā)送100次請求??傉埱髷?shù)為20*100=2000 。如果勾選了“永遠(yuǎn)”,那么所有線程會(huì)一直發(fā)送請求,一直到選擇停止運(yùn)行腳本。

3.1.6. 調(diào)度器

設(shè)置線程組啟動(dòng)的開始時(shí)間和結(jié)束時(shí)間(配置調(diào)度器時(shí),需要勾選循環(huán)次數(shù)為永遠(yuǎn))

3.1.7. 持續(xù)時(shí)間(秒)

測試持續(xù)時(shí)間,會(huì)覆蓋結(jié)束時(shí)間

3.1.8. 啟動(dòng)延遲(秒)

測試延遲啟動(dòng)時(shí)間,會(huì)覆蓋啟動(dòng)時(shí)間

3.1.9. 啟動(dòng)時(shí)間

測試啟動(dòng)時(shí)間,啟動(dòng)延遲會(huì)覆蓋它。當(dāng)啟動(dòng)時(shí)間已過,手動(dòng)只需測試時(shí)當(dāng)前時(shí)間也會(huì)覆蓋它。

3.1.10. 結(jié)束時(shí)間

測試結(jié)束時(shí)間,持續(xù)時(shí)間會(huì)覆蓋它。

image

3.2. 創(chuàng)建http請求

見得最多,所以我們著重講解:

image

3.3. 指定請求域名,請求路徑

接口文檔講解

image
一個(gè)HTTP請求有著許多的配置參數(shù),下面將詳細(xì)介紹:
名稱:本屬性用于標(biāo)識(shí)一個(gè)取樣器,建議使用一個(gè)有意義的名稱。
注釋:對(duì)于測試沒有任何作用,僅用戶記錄用戶可讀的注釋信息。
服務(wù)器名稱或IP :HTTP請求發(fā)送的目標(biāo)服務(wù)器名稱或IP地址。
端口號(hào):目標(biāo)服務(wù)器的端口號(hào)。
方法:發(fā)送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
Content encoding :內(nèi)容的編碼方式,默認(rèn)值為iso8859
路徑:目標(biāo)URL路徑(不包括服務(wù)器地址和端口)

點(diǎn)擊run測試,很麻煩,我們使用postman測試更簡單,使用postman操作。
可以使用剛才的接口文檔中的,聚合接口中演示一個(gè)。

3.4. 設(shè)置對(duì)應(yīng)的查看內(nèi)容

image

注意:如果監(jiān)聽器中有jp@gc開頭的,都是第三方插件

3.5. 查看表格信息

image
Sample:每個(gè)請求的序號(hào)
Start Time:每個(gè)請求開始時(shí)間
Thread Name:每個(gè)線程的名稱
Label:Http請求名稱
Sample Time:每個(gè)請求所花時(shí)間,單位毫秒
Status:請求狀態(tài),如果為勾則表示成功,如果為叉表示失敗。
Bytes:請求的字節(jié)數(shù)
樣本數(shù)目:也就是上面所說的請求個(gè)數(shù),成功的情況下等于你設(shè)定的并發(fā)數(shù)目乘以循環(huán)次數(shù)
平均:每個(gè)線程請求的平均時(shí)間
最新樣本:表示服務(wù)器響應(yīng)最后一個(gè)請求的時(shí)間
偏離:服務(wù)器響應(yīng)時(shí)間變化、離散程度測量值的大小,或者,換句話說,就是數(shù)據(jù)的分布。

3.6. 查看結(jié)果樹

  • 請求的數(shù)據(jù)展示(請求頭信息,請求參數(shù),,)

    image
  • 響應(yīng)的數(shù)據(jù)展示(響應(yīng)碼,響應(yīng)頭,,)

    image

    通過察看結(jié)果樹,我們可以看到每個(gè)請求的結(jié)果,其中紅色的是出錯(cuò)的請求,綠色的為通過。

Thread Name:線程組名稱
Sample Start: 啟動(dòng)開始時(shí)間
Load time:加載時(shí)長
Latency:等待時(shí)長
Size in bytes:發(fā)送的數(shù)據(jù)總大小
Headers size in bytes:發(fā)送數(shù)據(jù)的其余部分大小
Sample Count:發(fā)送統(tǒng)計(jì)
Error Count:交互錯(cuò)誤統(tǒng)計(jì)
Response code:返回碼
Response message:返回信息
Response headers:返回的頭部信息

3.7. 聚合報(bào)告參數(shù)說明

image
lable:對(duì)應(yīng)每一個(gè)http請求,顯示的是http請求的Name,如百度http請求name為baidu
#Samples:表示這一次的測試中一共發(fā)出了多少請求,如上圖所示,sougou和baidu的http請求每個(gè)都發(fā)出30個(gè)請求
Average:平均響應(yīng)時(shí)間,指的是所有的請求的平均響應(yīng)時(shí)間,如上圖的30個(gè)請求的總的響應(yīng)時(shí)間除以30得出的平均響應(yīng)時(shí)間,默認(rèn)的情況下是單個(gè)請求的平均響應(yīng)時(shí)間,但當(dāng)使用了“事務(wù)控制器”時(shí),則以事物為單位顯示平均響應(yīng)時(shí)間
Median:中位數(shù),也就是50%用戶的響應(yīng)時(shí)間
90%Line:90%用戶的響應(yīng)時(shí)間
Min:最小響應(yīng)時(shí)間
Max:最大的響應(yīng)時(shí)間
Error%:本次測試中出現(xiàn)錯(cuò)誤的請求的數(shù)量/請求的總數(shù),如上圖所示,本次的測試中,sougou的http請求66.6%的請求出錯(cuò),而baidu的請求則沒有出錯(cuò)的請求
Throughput:吞吐量,默認(rèn)情況下表示每秒完成的請求數(shù),如上圖所示,每秒完成的請求數(shù)分別為6.6個(gè)每秒,6.2個(gè)每秒
Recived KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量,以kb為計(jì)算的單位

掌握:平均時(shí)間、錯(cuò)誤率、吞吐量。

3.8. 圖形結(jié)果

image
樣本數(shù)目:總共發(fā)送到服務(wù)器的請求數(shù)。
最新樣本:代表時(shí)間的數(shù)字,是服務(wù)器響應(yīng)最后一個(gè)請求的時(shí)間。
吞吐量:服務(wù)器每分鐘處理的請求數(shù)。
平均值:總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請求數(shù)。
中間值:有一半的服務(wù)器響應(yīng)時(shí)間低于該值而另一半高于該值。
偏離:表示服務(wù)器響應(yīng)時(shí)間變化、離散程度測量值的大小。

四. Jmeter主要組件介紹

  1. 測試計(jì)劃:使用 JMeter 進(jìn)行測試的起點(diǎn),它是其它 JMeter 測試元件的容器。
  2. 線程組:代表一定數(shù)量的并發(fā)用戶,它可以用來模擬并發(fā)用戶發(fā)送請求。實(shí)際的請求內(nèi)容在Sampler中定義,它被線程組包含??梢栽凇皽y試計(jì)劃->添加->線程組”來建立它,然后在線程組面板里有幾個(gè)輸入欄:線程數(shù)、Ramp-Up Period(in seconds)、循環(huán)次數(shù),其中Ramp-Up Period(in seconds)表示在這時(shí)間內(nèi)創(chuàng)建完所有的線程。如有8個(gè)線程,Ramp-Up = 200秒,那么線程的啟動(dòng)時(shí)間間隔為200/8=25秒,這樣的好處是:一開始不會(huì)對(duì)服務(wù)器有太大的負(fù)載。線程組是為模擬并發(fā)負(fù)載而設(shè)計(jì)。
  3. 取樣器(Sampler):模擬各種請求。所有實(shí)際的測試任務(wù)都由取樣器承擔(dān),存在很多種請求。如:HTTP 、ftp請求等等。
  4. 監(jiān)聽器:負(fù)責(zé)收集測試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式。功能是對(duì)取樣器的請求結(jié)果顯示、統(tǒng)計(jì)一些數(shù)據(jù)(吞吐量、KB/S……)等。
  5. 斷言:用于來判斷請求響應(yīng)的結(jié)果是否如用戶所期望,是否正確。它可以用來隔離問題域,即在確保功能正確的前提下執(zhí)行壓力測試。這個(gè)限制對(duì)于有效的測試是非常有用的。
  6. 邏輯控制器:允許自定義JMeter發(fā)送請求的行為邏輯,它與Sampler結(jié)合使用可以模擬復(fù)雜的請求序列。
  7. 定時(shí)器:負(fù)責(zé)定義請求(線程)之間的延遲間隔,模擬對(duì)服務(wù)器的連續(xù)請求。
  8. 配置元件維護(hù)Sampler需要的配置信息,并根據(jù)實(shí)際的需要會(huì)修改請求的內(nèi)容。
  9. 前置處理器和后置處理器負(fù)責(zé)在生成請求之前和之后完成工作。前置處理器常常用來修改請求的設(shè)置,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)。

4.1. 測試計(jì)劃

image
1.測試計(jì)劃就是一個(gè)完整的場景
2.“獨(dú)立運(yùn)行每個(gè)線程組” :勾選以后所有的線程組都是順序執(zhí)行的了。一般不勾選,讓所有 的線程組并發(fā)啟動(dòng)。
3.“函數(shù)測試模式” :勾選后會(huì)有詳細(xì)的請求記錄,消耗資源,影響客戶端性能。一般不勾選。
4.用戶定義的變量:全局變量,測試計(jì)劃上可以添加用戶定義的變量。一般添加一些系統(tǒng)常用的配置。如果測試過程中想切換環(huán)境,切換配置,一般不建議在測試計(jì)劃上添加變量

image

4.2. 線程組

image

(1)thread group(線程組)

這個(gè)就是我們通常添加運(yùn)行的線程。通俗的講一個(gè)線程組,可以看做一個(gè)虛擬用戶組,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶。

(2)setup thread group

一種特殊類型的ThreadGroup的,可用于執(zhí)行預(yù)測試操作。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試前進(jìn)行定期線程組的執(zhí)行;類似LoadRunner的init,測試開始時(shí)進(jìn)行初始化的工作。

(3)teardown thread group

一種特殊類型的ThreadGroup的,可用于執(zhí)行測試后動(dòng)作。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試結(jié)束后執(zhí)行定期的線程組;類似LoadRunnner的end,測試結(jié)束時(shí)進(jìn)行回收工作。

image

4.3. 取樣器(Http請求)

image

關(guān)于http請求的的屬性參數(shù)說明:

1)名稱:用于標(biāo)識(shí)一個(gè)sample。建議使用一個(gè)有意義的名稱
2)注釋:對(duì)于測試沒任何影響,僅用來記錄用戶可讀的注釋信息
3)服務(wù)器名稱或IP:http請求發(fā)送的目標(biāo)服務(wù)器名稱或者IP地址,比如http://www.baidu.com
4)端口號(hào):目標(biāo)服務(wù)器的端口號(hào),默認(rèn)值為80,可不填
5)協(xié)議:向目標(biāo)服務(wù)器發(fā)送http請求時(shí)的協(xié)議,http/https,大小寫不敏感,默認(rèn)http
6)方法:發(fā)送http請求的方法(鏈接:http://www.cnblogs.com/imyalost/p/5630940.html)
7)Content encoding:內(nèi)容的編碼方式(Content-Type=application/json;charset=utf-8)
8)路徑:目標(biāo)的URL路徑(不包括服務(wù)器地址和端口)
9)自動(dòng)重定向:如果選中該項(xiàng),發(fā)出的http請求得到響應(yīng)是301/302,jmeter會(huì)重定向到新的界面
10)Use keep Alive:jmeter 和目標(biāo)服務(wù)器之間使用 Keep-Alive方式進(jìn)行HTTP通信(默認(rèn)選中)
11)Use multipart/from-data for HTTP POST :當(dāng)發(fā)送HTTP POST 請求時(shí),使用
12)Parameters、Body Data以及Files Upload的區(qū)別:
 1. parameter是指函數(shù)定義中參數(shù),而argument指的是函數(shù)調(diào)用時(shí)的實(shí)際參數(shù)
 2. 簡略描述為:parameter=形參(formal parameter), argument=實(shí)參(actual parameter)
 3.在不很嚴(yán)格的情況下,現(xiàn)在二者可以混用,一般用argument,而parameter則比較少用
  While defining method, variables passed in the method are called parameters.
  當(dāng)定義方法時(shí),傳遞到方法中的變量稱為參數(shù).
  While using those methods, values passed to those variables are called arguments.
  當(dāng)調(diào)用方法時(shí),傳給變量的值稱為引數(shù).(有時(shí)argument被翻譯為“引數(shù)“)
 4、Body Data指的是實(shí)體數(shù)據(jù),就是請求報(bào)文里面主體實(shí)體的內(nèi)容,一般我們向服務(wù)器發(fā)送請求,攜帶的實(shí)體主體參數(shù),可以寫入這里
 5、Files Upload指的是:從HTML文件獲取所有有內(nèi)含的資源:被選中時(shí),發(fā)出HTTP請求并獲得響應(yīng)的HTML文件內(nèi)容后還對(duì)該HTML
   進(jìn)行Parse 并獲取HTML中包含的所有資源(圖片、flash等):(默認(rèn)不選中)
   如果用戶只希望獲取特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達(dá)式,只有能匹配指定正則表達(dá)式的URL指向資源會(huì)被下載

4.4. 監(jiān)聽器

監(jiān)聽器(Listener)負(fù)責(zé)收集測試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式。我們常用的包括:聚合報(bào)告、查看結(jié)果樹、用表格查看結(jié)果,都支持將結(jié)果數(shù)據(jù)寫入文件。其他的添加上去看看就行。聚合報(bào)告前面我們介紹過,后面是查看結(jié)果樹和用表格查看結(jié)果的截圖。

image

4.5. 循環(huán)控制器

image
image
image

4.6. 事務(wù)控制器

作用: 事務(wù)控制器會(huì)生產(chǎn)一個(gè)額外的采樣器,用來統(tǒng)計(jì)該控制器子結(jié)點(diǎn)的所有時(shí)間。
在線程組下創(chuàng)建事務(wù)控制器
參數(shù):
· Generate parent sample:(選中這個(gè)參數(shù)結(jié)果展示如下圖紅框,否則顯示為下圖藍(lán)框)
· Include duration of timer and pre-post processors in generated sample:選中這一項(xiàng)會(huì)統(tǒng)計(jì)定時(shí)器(timer)的時(shí)間,否則只統(tǒng)計(jì)采樣器(sample)的時(shí)間

image

創(chuàng)建sample 訪問首頁和注冊頁面

image

生成聚合報(bào)告

image

勾選

image

聚合報(bào)告中只有一項(xiàng)事務(wù)報(bào)告

image

4.7. 斷言---檢查點(diǎn)

斷言(Assertions)可以用來判斷請求響應(yīng)的結(jié)果是否如用戶所期望的。它可以用來隔離問題域,即在確保功能正確的前提下執(zhí)行壓力測試。這個(gè)限制對(duì)于有效的測試是非常有用的。
兩個(gè)重要斷言:響應(yīng)斷言和JSONAssertion
響應(yīng)斷言:

image

JSON斷言:

image

4.8. 前置處理器和后置處理器

image

前置處理器(Pre Processors)和后置處理器(Post Processors)負(fù)責(zé)在生成請求之前和之后完成工作。前置處理器常常用來修改請求的設(shè)置,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)。我們主要在動(dòng)態(tài)關(guān)聯(lián)中用到后置處理器的正則表達(dá)式提取器。
https://www.cnblogs.com/fengpingfan/p/4755411.html

4.9. 定時(shí)器

定時(shí)器(Timer)負(fù)責(zé)定義請求之間的延遲間隔

image
image

五. Jmeter組件參數(shù)化

5.1. 參數(shù)化是什么

動(dòng)態(tài)的獲取并設(shè)置數(shù)據(jù)

5.2. 為什么使用參數(shù)化

執(zhí)行批量操作,批量添加批量刪除,人工效率太低
運(yùn)用程序代替人工獲取并設(shè)置數(shù)據(jù),安全高效
比如:對(duì)被測系統(tǒng)的用戶名和密碼進(jìn)行參數(shù)化,來模擬多個(gè)用戶同時(shí)登錄系統(tǒng)

5.3. 參數(shù)化實(shí)現(xiàn)之用戶自定義變量

通過這個(gè)功能,能實(shí)現(xiàn)多接口共享數(shù)據(jù),修改一條即可修改全部

image

Filename:所需數(shù)據(jù)文件的路徑。如和腳本同一路徑,可直接填寫文件名
File encoding:編碼和文件保持一致即可,默認(rèn)為ANSI。如有中文,建議為UTF-8
Variable Names:引用變量時(shí)的變量名,對(duì)應(yīng)數(shù)據(jù)文件中的每一列,以逗號(hào)分隔。如不填寫,文件的第一行數(shù)據(jù)將被讀取為變量名
Delimiter:在.txt、.dat文件中,可以用逗號(hào)(,)或者Tab鍵(\t)來區(qū)分列與列
Allow quote data:選項(xiàng)選為“true”的時(shí)候?qū)θ亲址奶幚沓霈F(xiàn)亂碼
Recycle on EOF:到數(shù)據(jù)文件結(jié)尾時(shí)是否循環(huán)讀取。設(shè)置為True時(shí),線程數(shù)過多,數(shù)據(jù)文件讀取到最后一行時(shí),會(huì)再次從第一行開始讀取。設(shè)置為False,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取,則值會(huì)默認(rèn)為<EOF>,可通過設(shè)置jmeter屬性csvdataset.eofstring來改變該值。
Stop thread on EOF:Recycle on EOF設(shè)置為False,Stop thread on EOF設(shè)置為True,則讀取數(shù)據(jù)文件最后一行后,停止測試,不管還有多少線程組未執(zhí)行。
Sharing mode:共享模式。默認(rèn)在所有線程組中使用,可選擇每個(gè)線程組單獨(dú)打開
相同的部分使用用戶自定義變量
只需要修改一次接口
效果展示

5.4. 參數(shù)化實(shí)現(xiàn)之CSV Data Set Config

通過這個(gè)組件可以動(dòng)態(tài)獲取并設(shè)置數(shù)據(jù),實(shí)現(xiàn)批量添加操作

Filename:所需數(shù)據(jù)文件的路徑。如和腳本同一路徑,可直接填寫文件名

File encoding:編碼和文件保持一致即可,默認(rèn)為ANSI。如有中文,建議為UTF-8

Variable Names:引用變量時(shí)的變量名,對(duì)應(yīng)數(shù)據(jù)文件中的每一列,以逗號(hào)分隔。Delimiter:在.txt、.dat文件中,可以用逗號(hào)(,)或者Tab鍵(\t)來區(qū)分列與列

Allow quote data:選項(xiàng)選為“true”的時(shí)候?qū)θ亲址奶幚沓霈F(xiàn)亂碼

Recycle on EOF:到數(shù)據(jù)文件結(jié)尾時(shí)是否循環(huán)讀取。設(shè)置為True時(shí),線程數(shù)過多,數(shù)據(jù)文件讀取到最后一行時(shí),會(huì)再次從第一行開始讀取。設(shè)置為False,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取,則值會(huì)默認(rèn)為<EOF>,可通過設(shè)置jmeter屬性csvdataset.eofstring來改變該值。

Stop thread on EOF:Recycle on EOF設(shè)置為False,Stop thread on EOF設(shè)置為True,則讀取數(shù)據(jù)文件最后一行后,停止測試,不管還有多少線程組未執(zhí)行。

Sharing mode:共享模式。默認(rèn)在所有線程組中使用,可選擇每個(gè)線程組單獨(dú)打開

查看結(jié)果樹

5.5. 、使用Jmeter函數(shù)助手(文件中不要出現(xiàn)中文):

1、點(diǎn)擊 選項(xiàng)-->函數(shù)助手 調(diào)出函數(shù)助手對(duì)話框
2、選擇 _CSVRead 函數(shù)(下圖第一個(gè)框)
3、函數(shù)參數(shù):
 1)第一個(gè)參數(shù):填寫文件路徑。
 2)第二個(gè)參數(shù):文件列號(hào)是從0開始的,第一列0、第二列1、第三列2、依次類推,然后點(diǎn)擊【生成】按鈕,則會(huì)自動(dòng)生成我們需要的參數(shù)化函數(shù)。
  3) 復(fù)制生成的參數(shù)化函數(shù), copy過程需要使用的地方即可。
  4) _Random函數(shù)是從某數(shù)據(jù)段隨機(jī)讀取數(shù)據(jù)替換參數(shù),當(dāng)需要添加多條數(shù)據(jù)記錄且某些字段需要唯一性時(shí)使用。

六. Jmeter正則表達(dá)式提取

6.1. 使用正則提取

  運(yùn)用Jmeter正則提取器,可以從請求的響應(yīng)結(jié)果中取到需要的內(nèi)容,從而實(shí)現(xiàn)關(guān)聯(lián)。關(guān)聯(lián)是請求與請求之間存在數(shù)據(jù)依賴關(guān)系,需要從上一個(gè)請求獲取下一個(gè)請求需要回傳回去的數(shù)據(jù)

位置1:名稱及注釋

正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等。

字符 描述
* 匹配前面的子表達(dá)式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價(jià)于{0,}。
+ 匹配前面的子表達(dá)式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價(jià)于 {1,}。
? 匹配前面的子表達(dá)式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等價(jià)于 {0,1}。
( ) 標(biāo)記一個(gè)子表達(dá)式的開始和結(jié)束位置。子表達(dá)式可以獲取供以后使用。
. 匹配除換行符 \n 之外的任何單字符。要匹配 . ,請使用 . 。

構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣。也就是用多種元字符與運(yùn)算符可以將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式。正則表達(dá)式的組件可以是單個(gè)的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。

位置2:正則表達(dá)式提取的相關(guān)設(shè)置

說明:

(1)引用名稱:下一個(gè)請求要引用的參數(shù)名稱,如填寫title,則可用${title}引用它。

(2)正則表達(dá)式:

():括起來的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:不要太貪婪,在找到第一個(gè)匹配項(xiàng)后停止。
(3)模板:用$$引用起來,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式,則可以是$2$$3$等等,表示解析到的第幾個(gè)值給title。如:$1$表示解析到的第1個(gè)值
(4)匹配數(shù)字:0代表隨機(jī)取值,1代表全部取值,通常情況下填0
(5)缺省值:如果參數(shù)沒有取得到值,那默認(rèn)給一個(gè)值讓它取。

案例:api接口

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一. 性能測試 1.0 為什么要進(jìn)行性能測試? 評(píng)估當(dāng)前系統(tǒng)的能力 尋找性能瓶頸,優(yōu)化系統(tǒng)性能 評(píng)估軟件是否滿足...
    Anwfly閱讀 2,950評(píng)論 0 9
  • Jmeter配置安裝成功后進(jìn)入就可以看到以下頁面 a、測試計(jì)劃: 名稱與注釋就是相對(duì)于這個(gè)測試計(jì)劃的一些備注信...
    步入芳華閱讀 2,471評(píng)論 0 0
  • 運(yùn)行jmeter.bat(在window平臺(tái)上)或jmeter(在unix平臺(tái)上)來運(yùn)行JMeter。(運(yùn)行成功后...
    悟_232c閱讀 1,002評(píng)論 0 1
  • 介紹Jmeter常用元件,大概了解下,具體使用過程中會(huì)更深入的講解和了解。 打開jmeter頁面:包含測試計(jì)劃+工...
    b499783e8279閱讀 862評(píng)論 0 0
  • 夜鶯2517閱讀 128,155評(píng)論 1 9

友情鏈接更多精彩內(nèi)容