工具使用:JMeter

JMeter

一、 性能測(cè)試

1施戴、 性能測(cè)試是什么

基于協(xié)議模擬用戶發(fā)出請(qǐng)求,對(duì)服務(wù)器形成一定負(fù)載萌丈,來(lái)測(cè)試服務(wù)器的性能指標(biāo)是否滿足要求

性能指標(biāo)關(guān)注點(diǎn):時(shí)間性能赞哗、空間性能

性能測(cè)試與頁(yè)面無(wú)關(guān)

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

2肪笋、性能測(cè)試工具

二. Jmeter簡(jiǎn)介

1、 我們?yōu)槭裁词褂肑meter

開(kāi)源度迂,免費(fèi)藤乙,基于Java編寫,可集成到其他系統(tǒng)可拓展各個(gè)功能插件

支持接口測(cè)試惭墓,壓力(負(fù)載和壓力)測(cè)試等多種功能坛梁,支持錄制回放,

入門簡(jiǎn)單相較于自己編寫框架活其他開(kāi)源工具腊凶,有較為完善的UI界面划咐,便于接口調(diào)試

多平臺(tái)支持拴念,可在Linux,Windows褐缠,Mac上運(yùn)行

支持多協(xié)議

2政鼠、Jmeter的作用

接口測(cè)試 可使用postman/jmeter

性能測(cè)試 可使用jmeter

數(shù)據(jù)庫(kù)測(cè)試

3. Jmeter怎么用

Windows下Jmeter下載安裝

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

4公般、安裝JAVA環(huán)境

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

將下載Jmeter文件解壓胡桨,打開(kāi)/bin/jmeter.bat

5官帘、 Jmeter的目錄結(jié)構(gòu)

/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用戶手冊(cè)

三. Jmeter的使用

1、 線程組是什么

進(jìn)程: 一個(gè)正在執(zhí)行的程序?qū)?yīng)一個(gè)進(jìn)程

線程: 一個(gè)進(jìn)程有多個(gè)執(zhí)行線程

線程組: 按照線程性質(zhì)對(duì)線程分組

三者關(guān)系: 一個(gè)進(jìn)程有多個(gè)線程組揽浙,一個(gè)線程組有多個(gè)線程

測(cè)試計(jì)劃—線程組—線程組屬性中的線程數(shù)

并發(fā)執(zhí)行:多個(gè)線程同時(shí)執(zhí)行状婶,特點(diǎn):執(zhí)行結(jié)束的順序與開(kāi)始的順序不一致

順序執(zhí)行:按照線程的啟動(dòng)順序挨個(gè)執(zhí)行

默認(rèn)情況下,線程組中的線程是并發(fā)執(zhí)行

每一個(gè)線程都要執(zhí)行組內(nèi)的http請(qǐng)求

設(shè)置線程組順序執(zhí)行:勾選測(cè)試計(jì)劃中的(獨(dú)立運(yùn)行每個(gè)線程組)

線程組用來(lái)模擬用戶的并發(fā)訪問(wèn)

創(chuàng)建線程組

1馅巷、線程組主要包含三個(gè)參數(shù):線程數(shù)膛虫、準(zhǔn)備時(shí)長(zhǎng)(Ramp-Up Period(in seconds))、循環(huán)次數(shù)钓猬。

2稍刀、線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)線程敞曹。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)账月。

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

4、循環(huán)次數(shù):每個(gè)線程發(fā)送請(qǐng)求的次數(shù)拢锹。如果線程數(shù)為20 谣妻,循環(huán)次數(shù)為100 ,那么每個(gè)線程發(fā)送100次請(qǐng)求卒稳√0耄總請(qǐng)求數(shù)為20*100=2000 。如果勾選了“永遠(yuǎn)”充坑,那么所有線程會(huì)一直發(fā)送請(qǐng)求湃窍,一到選擇停止運(yùn)行腳本闻蛀。

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

6觉痛、持續(xù)時(shí)間(秒):測(cè)試持續(xù)時(shí)間,會(huì)覆蓋結(jié)束時(shí)間

7茵休、啟動(dòng)延遲(秒):測(cè)試延遲啟動(dòng)時(shí)間薪棒,會(huì)覆蓋啟動(dòng)時(shí)間

8、啟動(dòng)時(shí)間:測(cè)試啟動(dòng)時(shí)間榕莺,啟動(dòng)延遲會(huì)覆蓋它俐芯。當(dāng)啟動(dòng)時(shí)間已過(guò),手動(dòng)只需測(cè)試時(shí)當(dāng)前時(shí)間也會(huì)覆蓋它钉鸯。

9吧史、 結(jié)束時(shí)間:測(cè)試結(jié)束時(shí)間,持續(xù)時(shí)間會(huì)覆蓋它唠雕。

2贸营、 創(chuàng)建http請(qǐng)求

3、 指定請(qǐng)求域名岩睁,請(qǐng)求路徑

一個(gè)HTTP請(qǐng)求有著許多的配置參數(shù)钞脂,下面將詳細(xì)介紹:

名稱:本屬性用于標(biāo)識(shí)一個(gè)取樣器,建議使用一個(gè)有意義的名稱捕儒。

注釋:對(duì)于測(cè)試沒(méi)有任何作用冰啃,僅用戶記錄用戶可讀的注釋信息。

服務(wù)器名稱或IP :HTTP請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱或IP地址刘莹。

端口號(hào):目標(biāo)服務(wù)器的端口號(hào)阎毅。

方法:發(fā)送HTTP請(qǐng)求的方法,可用方法包括GET点弯、POST扇调、HEAD、PUT蒲拉、OPTIONS肃拜、TRACE痴腌、DELETE等雌团。

Content encoding :內(nèi)容的編碼方式,默認(rèn)值為iso8859

路徑:目標(biāo)URL路徑(不包括服務(wù)器地址和端口)

4士聪、 設(shè)置對(duì)應(yīng)的查看內(nèi)容

5锦援、 查看表格信息

Sample:每個(gè)請(qǐng)求的序號(hào)

Start Time:每個(gè)請(qǐng)求開(kāi)始時(shí)間

Thread Name:每個(gè)線程的名稱

Label:Http請(qǐng)求名稱

Sample Time:每個(gè)請(qǐng)求所花時(shí)間,單位毫秒

Status:請(qǐng)求狀態(tài)剥悟,如果為勾則表示成功灵寺,如果為叉表示失敗曼库。

Bytes:請(qǐng)求的字節(jié)數(shù)

樣本數(shù)目:也就是上面所說(shuō)的請(qǐng)求個(gè)數(shù),成功的情況下等于你設(shè)定的并發(fā)數(shù)目乘以循環(huán)次數(shù)

平均:每個(gè)線程請(qǐng)求的平均時(shí)間

最新樣本:表示服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間

偏離:服務(wù)器響應(yīng)時(shí)間變化略板、離散程度測(cè)量值的大小毁枯,或者,換句話說(shuō)叮称,就是數(shù)據(jù)的分布种玛。

6、 查看結(jié)果樹(shù)

通過(guò)察看結(jié)果樹(shù)瓤檐,我們可以看到每個(gè)請(qǐng)求的結(jié)果赂韵,其中紅色的是出錯(cuò)的請(qǐng)求,綠色的為通過(guò)挠蛉。

Thread Name:線程組名稱

Sample Start: 啟動(dòng)開(kāi)始時(shí)間

Load time:加載時(shí)長(zhǎng)

Latency:等待時(shí)長(zhǎng)

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:返回的頭部信息

7祭示、 聚合報(bào)告參數(shù)說(shuō)明

lable:對(duì)應(yīng)每一個(gè)http請(qǐng)求,顯示的是http請(qǐng)求的Name谴古,如百度http請(qǐng)求name為baidu

#Samples:表示這一次的測(cè)試中一共發(fā)出了多少請(qǐng)求质涛,如上圖所示,sougou和baidu的http請(qǐng)求每個(gè)都發(fā)出30個(gè)請(qǐng)求

Average:平均響應(yīng)時(shí)間讥电,指的是所有的請(qǐng)求的平均響應(yīng)時(shí)間蹂窖,如上圖的30個(gè)請(qǐng)求的總的響應(yīng)時(shí)間除以30得出的平均響應(yīng)時(shí)間,默認(rèn)的情況下是單個(gè)請(qǐng)求的平均響應(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%:本次測(cè)試中出現(xiàn)錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)纠炮,如上圖所示月趟,本次的測(cè)試中,sougou的http請(qǐng)求66.6%的請(qǐng)求出錯(cuò)恢口,而baidu的請(qǐng)求則沒(méi)有出錯(cuò)的請(qǐng)求

Throughput:吞吐量孝宗,默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù),如上圖所示耕肩,每秒完成的請(qǐng)求數(shù)分別為6.6個(gè)每秒因妇,6.2個(gè)每秒

Recived KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量,以kb為計(jì)算的單位

8猿诸、 圖形結(jié)果

樣本數(shù)目:總共發(fā)送到服務(wù)器的請(qǐng)求數(shù)婚被。

最新樣本:代表時(shí)間的數(shù)字,是服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間梳虽。

吞吐量:服務(wù)器每分鐘處理的請(qǐng)求數(shù)址芯。

平均值:總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請(qǐng)求數(shù)。

中間值:有一半的服務(wù)器響應(yīng)時(shí)間低于該值而另一半高于該值。

偏離:表示服務(wù)器響應(yīng)時(shí)間變化谷炸、離散程度測(cè)量值的大小北专。

四、 Jmeter主要組件介紹

1旬陡、測(cè)試計(jì)劃是使用 JMeter 進(jìn)行測(cè)試的起點(diǎn)拓颓,它是其它 JMeter 測(cè)試元件的容器。

2描孟、線程組:代表一定數(shù)量的并發(fā)用戶录粱,它可以用來(lái)模擬并發(fā)用戶發(fā)送請(qǐng)求。實(shí)際的請(qǐng)求內(nèi)容在Sampler中定義画拾,它被線程組包含啥繁。可以在“測(cè)試計(jì)劃->添加->線程組”來(lái)建立它青抛,然后在線程組面板里有幾個(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秒捣辆,這樣的好處是:一開(kāi)始不會(huì)對(duì)服務(wù)器有太大的負(fù)載。線程組是為模擬并發(fā)負(fù)載而設(shè)計(jì)此迅。

3汽畴、取樣器(Sampler):模擬各種請(qǐng)求。所有實(shí)際的測(cè)試任務(wù)都由取樣器承擔(dān)耸序,存在很多種請(qǐng)求忍些。如:HTTP 、ftp請(qǐng)求等等坎怪。

4罢坝、監(jiān)聽(tīng)器:負(fù)責(zé)收集測(cè)試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式搅窿。功能是對(duì)取樣器的請(qǐng)求結(jié)果顯示嘁酿、統(tǒng)計(jì)一些數(shù)據(jù)(吞吐量、KB/S……)等男应。

5闹司、邏輯控制器:允許自定義JMeter發(fā)送請(qǐng)求的行為邏輯,它與Sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列殉了。

6开仰、斷言:用于來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望拟枚,是否正確薪铜。它可以用來(lái)隔離問(wèn)題域众弓,即在確保功能正確的前提下執(zhí)行壓力測(cè)試。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的隔箍。

7、定時(shí)器:負(fù)責(zé)定義請(qǐng)求(線程)之間的延遲間隔蜒滩,模擬對(duì)服務(wù)器的連續(xù)請(qǐng)求。

8俯艰、配置元件維護(hù)Sampler需要的配置信息,并根據(jù)實(shí)際的需要會(huì)修改請(qǐng)求的內(nèi)容画株。

9、前置處理器和后置處理器負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作谓传。前置處理器常常用來(lái)修改請(qǐng)求的設(shè)置芹关,后置處理器則常常用來(lái)處理響應(yīng)的數(shù)據(jù)。

1侥衬、測(cè)試計(jì)劃

1、測(cè)試計(jì)劃就是一個(gè)完整的場(chǎng)景

2贬媒、“獨(dú)立運(yùn)行每個(gè)線程組” :勾選以后所有的線程組都是順序執(zhí)行的了。一般不勾選际乘,讓所有 的線程組并發(fā)啟動(dòng)漂佩。

3脖含、“函數(shù)測(cè)試模式” :勾選后會(huì)有詳細(xì)的請(qǐng)求記錄,消耗資源投蝉,影響客戶端性能养葵。一般不勾選。

4瘩缆、用戶定義的變量:全局變量关拒,測(cè)試計(jì)劃上可以添加用戶定義的變量。一般添加一些系統(tǒng)常用的配置。如果測(cè)試過(guò)程中想切換環(huán)境着绊,切換配置谐算,一般不建議在測(cè)試計(jì)劃上添加變量

2、 線程組

(1)thread group(線程組)

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

(2)setup thread group

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

(3)teardown thread group

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

3赘来、 取樣器(Http請(qǐng)求)

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

1)名稱:用于標(biāo)識(shí)一個(gè)sample现喳。建議使用一個(gè)有意義的名稱

2)注釋:對(duì)于測(cè)試沒(méi)任何影響犬辰,僅用來(lái)記錄用戶可讀的注釋信息

3)服務(wù)器名稱或IP:http請(qǐng)求發(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請(qǐng)求時(shí)的協(xié)議坏晦,http/https,大小寫不敏感蜓斧,默認(rèn)http

6)方法:發(fā)送http請(qǐng)求的方法

7)Content encoding:內(nèi)容的編碼方式(Content-Type=application/json;charset=utf-8)

8)路徑:目標(biāo)的URL路徑(不包括服務(wù)器地址和端口)

9)自動(dòng)重定向:如果選中該項(xiàng),發(fā)出的http請(qǐng)求得到響應(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 請(qǐng)求時(shí)辽装,使用

12)Parameters拾积、Body Data以及Files Upload的區(qū)別:

parameter是指函數(shù)定義中參數(shù)拓巧,而argument指的是函數(shù)調(diào)用時(shí)的實(shí)際參數(shù)

簡(jiǎn)略描述為:parameter=形參(formal parameter)肛度, argument=實(shí)參(actual parameter)

在不很嚴(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ù)“)

Body Data指的是實(shí)體數(shù)據(jù)壹堰,就是請(qǐng)求報(bào)文里面主體實(shí)體的內(nèi)容,一般我們向服務(wù)器發(fā)送請(qǐng)求峻厚,攜帶的實(shí)體主體參數(shù)惠桃,可以寫入這里

Files Upload指的是:從HTML文件獲取所有有內(nèi)含的資源:被選中時(shí)辜王,發(fā)出HTTP請(qǐng)求并獲得響應(yīng)的HTML文件內(nèi)容后還對(duì)該HTML

進(jìn)行Parse 并獲取HTML中包含的所有資源(圖片孕蝉、flash等):(默認(rèn)不選中)

如果用戶只希望獲取特定資源莲兢,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達(dá)式,只有能匹配指定正則表達(dá)式的URL指向資源會(huì)被下載

4收班、 監(jiān)聽(tīng)器

監(jiān)聽(tīng)器(Listener)負(fù)責(zé)收集測(cè)試結(jié)果闺阱,同時(shí)也被告知了結(jié)果顯示的方式酣溃。我們常用的包括:聚合報(bào)告纪隙、查看結(jié)果樹(shù)、用表格查看結(jié)果碘饼,都支持將結(jié)果數(shù)據(jù)寫入文件艾恼。其他的添加上去看看就行钠绍。聚合報(bào)告前面我們介紹過(guò)柳爽,后面是查看結(jié)果樹(shù)和用表格查看結(jié)果的截圖磷脯。

5、 邏輯控制器

6打毛、 循環(huán)控制器幻枉、事務(wù)控制器

1)循環(huán)控制器

2)事務(wù)控制器

作用: 事務(wù)控制器會(huì)生產(chǎn)一個(gè)額外的采樣器展辞,用來(lái)統(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í)間

生成聚合報(bào)告

勾選 Generate parent sample

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

7团南、 斷言—檢查點(diǎn)

斷言(Assertions)可以用來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望的吐根。它可以用來(lái)隔離問(wèn)題域拷橘,即在確保功能正確的前提下執(zhí)行壓力測(cè)試冗疮。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的术幔。

8湃密、 前置處理器和后置處理器

前置處理器(Pre Processors)和后置處理器(Post Processors)負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作。前置處理器常常用來(lái)修改請(qǐng)求的設(shè)置目养,后置處理器則常常用來(lái)處理響應(yīng)的數(shù)據(jù)癌蚁。我們主要在動(dòng)態(tài)關(guān)聯(lián)中用到后置處理器的正則表達(dá)式提取器努释。

9伐蒂、 定時(shí)器

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

五逸邦、 Jmeter組件參數(shù)化

1缕减、使組件參數(shù)化的原因

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

執(zhí)行批量操作桥狡,批量添加批量刪除,人工效率太低

運(yùn)用程序代替人工獲取并設(shè)置數(shù)據(jù)娜汁,安全高效

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

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

例:如果多個(gè)接口都有相同的變量

可以使用用戶自定義變量

3灼芭、 參數(shù)化實(shí)現(xiàn)之CSV Data Set Config

通過(guò)這個(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)來(lái)區(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ù)過(guò)多烤送,數(shù)據(jù)文件讀取到最后一行時(shí)帮坚,會(huì)再次從第一行開(kāi)始讀取讯泣。設(shè)置為False,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取晦墙,則值會(huì)默認(rèn)為肴茄,可通過(guò)設(shè)置jmeter屬性csvdataset.eofstring來(lái)改變?cè)撝怠?/p>

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

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

4、使用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開(kāi)始的链蕊,第一列0、第二列1、第三列2、依次類推,然后點(diǎn)擊【生成】按鈕,則會(huì)自動(dòng)生成我們需要的參數(shù)化函數(shù)。

3) 復(fù)制生成的參數(shù)化函數(shù), copy過(guò)程需要使用的地方即可。

4) _Random函數(shù)是從某數(shù)據(jù)段隨機(jī)讀取數(shù)據(jù)替換參數(shù)花颗,當(dāng)需要添加多條數(shù)據(jù)記錄且某些字段需要唯一性時(shí)使用今野。

5宰睡、Jmeter正則表達(dá)式提取

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

位置1:名稱及注釋

正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern)廓啊,可以用來(lái)檢查一個(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á)式的開(kāi)始和結(jié)束位置。子表達(dá)式可以獲取供以后使用译秦。

. 匹配除換行符 \n 之外的任何單字符。要匹配 . 定躏,請(qǐng)使用 . 豁护。

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

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

說(shuō)明:

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

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

():括起來(lái)的部分就是要提取的蔑祟。

.:匹配任何字符串趁耗。

+:一次或多次。

?:不要太貪婪疆虚,在找到第一個(gè)匹配項(xiàng)后停止苛败。

(3)模板:用KaTeX parse error: Can't use function '$' in math mode at position 28: …式中有多個(gè)正則表達(dá)式,則可以是$?23$等等径簿,表示解析到的第幾個(gè)值給title罢屈。如:1 11表示解析到的第1個(gè)值

(4)匹配數(shù)字:0代表隨機(jī)取值,1代表全部取值篇亭,通常情況下填0

(5)缺省值:如果參數(shù)沒(méi)有取得到值缠捌,那默認(rèn)給一個(gè)值讓它取。

————————————————

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末译蒂,一起剝皮案震驚了整個(gè)濱河市曼月,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柔昼,老刑警劉巖哑芹,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異岳锁,居然都是意外死亡绩衷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門激率,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咳燕,“玉大人,你說(shuō)我怎么就攤上這事乒躺≌忻ぃ” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵嘉冒,是天一觀的道長(zhǎng)曹货。 經(jīng)常有香客問(wèn)我咆繁,道長(zhǎng),這世上最難降的妖魔是什么顶籽? 我笑而不...
    開(kāi)封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任玩般,我火速辦了婚禮,結(jié)果婚禮上礼饱,老公的妹妹穿的比我還像新娘坏为。我一直安慰自己,他們只是感情好镊绪,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布匀伏。 她就那樣靜靜地躺著,像睡著了一般蝴韭。 火紅的嫁衣襯著肌膚如雪够颠。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天榄鉴,我揣著相機(jī)與錄音履磨,去河邊找鬼。 笑死牢硅,一個(gè)胖子當(dāng)著我的面吹牛蹬耘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播减余,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼综苔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了位岔?” 一聲冷哼從身側(cè)響起如筛,我...
    開(kāi)封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抒抬,沒(méi)想到半個(gè)月后杨刨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡擦剑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年妖胀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惠勒。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赚抡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纠屋,到底是詐尸還是另有隱情涂臣,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布售担,位于F島的核電站赁遗,受9級(jí)特大地震影響署辉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岩四,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一哭尝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炫乓,春花似錦刚夺、人聲如沸献丑。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)创橄。三九已至箩做,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妥畏,已是汗流浹背邦邦。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留醉蚁,地道東北人燃辖。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像网棍,于是被迫代替她去往敵國(guó)和親黔龟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • 隨著市場(chǎng)上推出越來(lái)越多的測(cè)試工具滥玷,大家使用起來(lái)也比較盲目氏身,就我個(gè)人而言,使用過(guò)LoadRunner和Jmeter很...
    baiynistx閱讀 1,301評(píng)論 1 2
  • Jmeter簡(jiǎn)介 jmeter基本概念 Apache JMeter是Apache組織開(kāi)發(fā)的基于Java的壓力測(cè)試工...
    2640a8321f43閱讀 570評(píng)論 0 0
  • 測(cè)試計(jì)劃:是使用jmeter進(jìn)行測(cè)試的起點(diǎn)惑畴,是其他測(cè)試元件的容器蛋欣,一個(gè)完整的測(cè)試計(jì)劃 包括一個(gè)或多個(gè)線程組,邏輯控...
    測(cè)試猴閱讀 3,102評(píng)論 0 4
  • 最近有小朋友經(jīng)常問(wèn)關(guān)聯(lián)怎么做如贷,正好遇到一個(gè)好的小實(shí)例陷虎,寫下。 收益: 從一個(gè)小的測(cè)試實(shí)例中可以快速簡(jiǎn)單的了解到j(luò)m...
    果果醬ya閱讀 1,971評(píng)論 2 6
  • 轉(zhuǎn)載地址: https://blog.csdn.net/huyanyan08/article/details/80...
    蠟筆廣志閱讀 323評(píng)論 0 1