性能測(cè)試
1、廣義定義
基于協(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)
2摊册、狹義定義
指通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常肤京、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試颊艳。
3茅特、性能測(cè)試工具
Jmeter簡(jiǎn)介
我們?yōu)槭裁词褂肑meter
開源,免費(fèi)棋枕,基于Java編寫白修,可集成到其他系統(tǒng)可拓展各個(gè)功能插件支持接口測(cè)試,壓力(負(fù)載和壓力)測(cè)試等多種功能重斑,支持錄制回放兵睛,入門簡(jiǎn)單相較于自己編寫框架活其他開源工具,有較為完善的UI界面窥浪,便于接口調(diào)試多平臺(tái)支持祖很,可在Linux,Windows漾脂,Mac上運(yùn)行假颇,支持多協(xié)議作者:Anwfly鏈接:http://www.reibang.com/p/a53b149e6e46來(lái)源:簡(jiǎn)書著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)骨稿,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處笨鸡。
Jmeter的作用
1姜钳、接口測(cè)試 面試說(shuō)postman,因?yàn)榉奖愫糜谩?/p>
2形耗、性能測(cè)試 jmeter哥桥,也可以用postman(runner),但是沒(méi)有性能指標(biāo)
3激涤、數(shù)據(jù)庫(kù)測(cè)試
安裝JAVA環(huán)境
安裝JDK拟糕,配置環(huán)境變量
將下載Jmeter文件解壓,打開/bin/jmeter.bat
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測(cè)試快速入門
線程組是什么
測(cè)試計(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請(qǐng)求設(shè)置線程組順序執(zhí)行:勾選測(cè)試計(jì)劃中的(獨(dú)立運(yùn)行每個(gè)線程組)線程組用來(lái)模擬用戶的并發(fā)訪問(wèn)作者:Anwfly鏈接:http://www.reibang.com/p/a53b149e6e46來(lái)源:簡(jiǎn)書著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)般贼,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處愧哟。
創(chuàng)建線程組
線程數(shù)
虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)線程哼蛆。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)蕊梧。
準(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è)線程叠洗。
循環(huán)次數(shù)
每個(gè)線程發(fā)送請(qǐng)求的次數(shù)甘改。如果線程數(shù)為20 ,循環(huán)次數(shù)為100 灭抑,那么每個(gè)線程發(fā)送100次請(qǐng)求芯义〈⒚担總請(qǐng)求數(shù)為20*100=2000 。如果勾選了“永遠(yuǎn)”,那么所有線程會(huì)一直發(fā)送請(qǐng)求渴频,一直到選擇停止運(yùn)行腳本吏廉。
調(diào)度器
設(shè)置線程組啟動(dòng)的開始時(shí)間和結(jié)束時(shí)間(配置調(diào)度器時(shí)日戈,需要勾選循環(huán)次數(shù)為永遠(yuǎn))
持續(xù)時(shí)間(秒)
測(cè)試測(cè)試持續(xù)時(shí)間殷蛇,回覆蓋結(jié)束時(shí)間
啟動(dòng)延遲(秒)
測(cè)試延遲啟動(dòng)時(shí)間,會(huì)覆蓋啟動(dòng)時(shí)間
啟動(dòng)時(shí)間
測(cè)試啟動(dòng)時(shí)間劈榨,啟動(dòng)延遲會(huì)覆蓋它访递。當(dāng)啟動(dòng)時(shí)間已過(guò),手動(dòng)只需測(cè)試時(shí)當(dāng)前時(shí)間也會(huì)覆蓋它
結(jié)束時(shí)間
測(cè)試結(jié)束時(shí)間鞋既,持續(xù)時(shí)間會(huì)覆蓋它
?指定請(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ù)器地址和端口)
點(diǎn)擊run測(cè)試,很麻煩燕刻,我們使用postman測(cè)試更簡(jiǎn)單只泼,使用postman操作。
可以使用剛才的接口文檔中的卵洗,聚合接口中演示一個(gè)请唱。
設(shè)置對(duì)應(yīng)的查看內(nèi)容
查看表格信息
Sample:每個(gè)請(qǐng)求的序號(hào)
Start Time:每個(gè)請(qǐng)求開始時(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ù)的分布坦报。
作者:Anwfly
鏈接:http://www.reibang.com/p/a53b149e6e46
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有库说。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處片择。
?查看結(jié)果樹
請(qǐng)求的數(shù)據(jù)展示(請(qǐng)求頭信息潜的,請(qǐng)求參數(shù),,)
響應(yīng)的數(shù)據(jù)展示(響應(yīng)碼,響應(yīng)頭,,)
通過(guò)察看結(jié)果樹字管,我們可以看到每個(gè)請(qǐng)求的結(jié)果啰挪,其中紅色的是出錯(cuò)的請(qǐng)求信不,綠色的為通過(guò)。
聚合報(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ì)算的單位
掌握:平均時(shí)間祭刚、錯(cuò)誤率、吞吐量墙牌。
作者:Anwfly
鏈接:http://www.reibang.com/p/a53b149e6e46
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有涡驮。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處喜滨。
圖形結(jié)果
Jmeter主要組件介紹
測(cè)試計(jì)劃:使用 JMeter 進(jìn)行測(cè)試的起點(diǎn),它是其它 JMeter 測(cè)試元件的容器虽风。
線程組:代表一定數(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秒橡卤,這樣的好處是:一開始不會(huì)對(duì)服務(wù)器有太大的負(fù)載夜只。線程組是為模擬并發(fā)負(fù)載而設(shè)計(jì)。
取樣器(Sampler):模擬各種請(qǐng)求蒜魄。所有實(shí)際的測(cè)試任務(wù)都由取樣器承擔(dān)扔亥,存在很多種請(qǐng)求。如:HTTP 谈为、ftp請(qǐng)求等等旅挤。
監(jiān)聽(tīng)器:負(fù)責(zé)收集測(cè)試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式伞鲫。功能是對(duì)取樣器的請(qǐng)求結(jié)果顯示粘茄、統(tǒng)計(jì)一些數(shù)據(jù)(吞吐量、KB/S……)等秕脓。
斷言:用于來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望柒瓣,是否正確。它可以用來(lái)隔離問(wèn)題域吠架,即在確保功能正確的前提下執(zhí)行壓力測(cè)試芙贫。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的。
邏輯控制器:允許自定義JMeter發(fā)送請(qǐng)求的行為邏輯傍药,它與Sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列磺平。
定時(shí)器:負(fù)責(zé)定義請(qǐng)求(線程)之間的延遲間隔,模擬對(duì)服務(wù)器的連續(xù)請(qǐng)求拐辽。
配置元件維護(hù)Sampler需要的配置信息拣挪,并根據(jù)實(shí)際的需要會(huì)修改請(qǐng)求的內(nèi)容。
前置處理器和后置處理器負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作俱诸。前置處理器常常用來(lái)修改請(qǐng)求的設(shè)置菠劝,后置處理器則常常用來(lái)處理響應(yīng)的數(shù)據(jù)。
測(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ì)劃上添加變量
線程組
(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è)試開始時(shí)進(jìn)行初始化的工作知给。
(3)teardown thread group
一種特殊類型的ThreadGroup的,可用于執(zhí)行測(cè)試后動(dòng)作描姚。這些線程的行為完全像一個(gè)正常的線程組元件涩赢。不同的是,這些類型的線程執(zhí)行測(cè)試結(jié)束后執(zhí)行定期的線程組轩勘;類似LoadRunnner的end筒扒,測(cè)試結(jié)束時(shí)進(jìn)行回收工作。
取樣器(Http請(qǐng)求)
監(jiān)聽(tīng)器
監(jiān)聽(tīng)器(Listener)負(fù)責(zé)收集測(cè)試結(jié)果绊寻,同時(shí)也被告知了結(jié)果顯示的方式霎肯。我們常用的包括:聚合報(bào)告、查看結(jié)果樹榛斯、用表格查看結(jié)果观游,都支持將結(jié)果數(shù)據(jù)寫入文件。其他的添加上去看看就行驮俗。聚合報(bào)告前面我們介紹過(guò)懂缕,后面是查看結(jié)果樹和用表格查看結(jié)果的截圖。
循環(huán)控制器
事務(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í)間
作者:Anwfly
鏈接:http://www.reibang.com/p/a53b149e6e46
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有工碾。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處百姓。
創(chuàng)建sample 訪問(wèn)首頁(yè)和注冊(cè)頁(yè)面
聚合報(bào)告中只有一項(xiàng)事務(wù)報(bào)告
斷言---檢查點(diǎn)
斷言(Assertions)可以用來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望的渊额。它可以用來(lái)隔離問(wèn)題域,即在確保功能正確的前提下執(zhí)行壓力測(cè)試。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的旬迹。
兩個(gè)重要斷言:響應(yīng)斷言和JSONAssertion
響應(yīng)斷言:
JSON斷言:
?前置處理器和后置處理器
前置處理器(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á)式提取器屹耐。
定時(shí)器
定時(shí)器(Timer)負(fù)責(zé)定義請(qǐng)求之間的延遲間隔
Jmeter組件參數(shù)化
?參數(shù)化是什么
動(dòng)態(tài)的獲取并設(shè)置數(shù)據(jù)
為什么使用參數(shù)化
執(zhí)行批量操作,批量添加批量刪除椿猎,人工效率太低
運(yùn)用程序代替人工獲取并設(shè)置數(shù)據(jù)惶岭,安全高效
參數(shù)化實(shí)現(xiàn)之用戶自定義變量
通過(guò)這個(gè)功能,能實(shí)現(xiàn)多接口共享數(shù)據(jù)犯眠,修改一條即可修改全部
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)來(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ì)再次從第一行開始讀取瓦灶。設(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ú)打開
相同的部分使用用戶自定義變量
只需要修改一次接口
參數(shù)化實(shí)現(xiàn)之CSV Data Set Config
添加CSV Data Set Config:
添加界面:
通過(guò)這個(gè)組件可以動(dòng)態(tài)獲取并設(shè)置數(shù)據(jù)芹啥,實(shí)現(xiàn)批量添加操作
名詞解釋:
Filename:所需數(shù)據(jù)文件的路徑锻离。如和腳本同一路徑,可直接填寫文件名Fileencoding:編碼和文件保持一致即可叁征,默認(rèn)為ANSI纳账。如有中文逛薇,建議為UTF-8VariableNames:引用變量時(shí)的變量名捺疼,對(duì)應(yīng)數(shù)據(jù)文件中的每一列,以逗號(hào)分隔永罚。Delimiter:在.txt啤呼、.dat文件中,可以用逗號(hào)(,)或者Tab鍵(\t)來(lái)區(qū)分列與列Allowquote data:選項(xiàng)選為“true”的時(shí)候?qū)θ亲址奶幚沓霈F(xiàn)亂碼Recycleon EOF:到數(shù)據(jù)文件結(jié)尾時(shí)是否循環(huán)讀取呢袱。設(shè)置為True時(shí)官扣,線程數(shù)過(guò)多,數(shù)據(jù)文件讀取到最后一行時(shí)羞福,會(huì)再次從第一行開始讀取惕蹄。設(shè)置為False,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取治专,則值會(huì)默認(rèn)為<EOF>卖陵,可通過(guò)設(shè)置jmeter屬性csvdataset.eofstring來(lái)改變?cè)撝怠topthread on EOF:Recycleon EOF設(shè)置為False张峰,Stopthread on EOF設(shè)置為True泪蔫,則讀取數(shù)據(jù)文件最后一行后,停止測(cè)試喘批,不管還有多少線程組未執(zhí)行撩荣。Sharingmode:共享模式。默認(rèn)在所有線程組中使用饶深,可選擇每個(gè)線程組單獨(dú)打開
添加引用文件:
引用:
在jmeter中添加
線程數(shù)改為某個(gè)值
查看結(jié)果樹:
其他:
1餐曹、線程組線程數(shù)改為大于文件中數(shù)據(jù)的處理:
? ? ? 遇到結(jié)束符在循環(huán)
? ? ? 遇到結(jié)束符停止線程
2、如果數(shù)據(jù)來(lái)自數(shù)據(jù)庫(kù)
? ? ? 數(shù)據(jù)庫(kù)導(dǎo)出txt文件
?使用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過(guò)程需要使用的地方即可磺樱。4)_Random函數(shù)是從某數(shù)據(jù)段隨機(jī)讀取數(shù)據(jù)替換參數(shù),當(dāng)需要添加多條數(shù)據(jù)記錄且某些字段需要唯一性時(shí)使用婆咸。
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è)條件的子串等憨闰。
構(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)模板:用$$引用起來(lái)定欧,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式,則可以是$2$$3$等等怒竿,表示解析到的第幾個(gè)值給title砍鸠。如:$1$表示解析到的第1個(gè)值
(4)匹配數(shù)字:0代表隨機(jī)取值,1代表全部取值耕驰,通常情況下填0
(5)缺省值:如果參數(shù)沒(méi)有取得到值爷辱,那默認(rèn)給一個(gè)值讓它取。