国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

測(cè)試工具JMeter的使用

這篇具有很好參考價(jià)值的文章主要介紹了測(cè)試工具JMeter的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

JMeter的安裝配置

測(cè)試的性能指標(biāo)

TPS

響應(yīng)時(shí)長(zhǎng)

并發(fā)連接 和 并發(fā)用戶

CPU/內(nèi)存/磁盤/網(wǎng)絡(luò) 負(fù)載

性能測(cè)試實(shí)戰(zhàn)流程

JMeter

JMeter快速上手

GUI模式 運(yùn)行

HTTP請(qǐng)求默認(rèn)值

錄制網(wǎng)站流量

模擬間隔時(shí)間

Cookie管理器

消息數(shù)據(jù)關(guān)聯(lián)

變量

后置處理器

CSV 數(shù)據(jù)文件設(shè)置

斷言

循環(huán)控制器

預(yù)處理器

命令行模式 運(yùn)行

dashboard 產(chǎn)生圖表


JMeter的安裝配置

參考教程

測(cè)試工具JMeter詳細(xì)安裝配置教程(保證一次安裝成功)_jmeter安裝教程-CSDN博客

基本能成功,不能成功自己按報(bào)錯(cuò)自行搜索解決辦法

測(cè)試的性能指標(biāo)

參考鏈接

TPS

TPS (transaction per second) 是 服務(wù)端 每秒處理請(qǐng)求的數(shù)量

TPS 最直觀的反映了 系統(tǒng)的處理能力,當(dāng)然是重要的性能指標(biāo)之一。

說(shuō)到 TPS ,和其相關(guān)的還有如下這些名詞:

  • RPS (request per second) 是 測(cè)試工具 每秒發(fā)送請(qǐng)求的數(shù)量

    RPS 和 TPS 概念不同,前者是每秒發(fā)出的請(qǐng)求數(shù)量。后者是處理完成的請(qǐng)求數(shù)量。

    但是顯然,RPS 是決定 TPS 的重要因素。

    TPS 是由 RPS 、網(wǎng)絡(luò)延遲 、服務(wù)端本身的處理速度 這3個(gè)因素決定的。

    一個(gè)性能表現(xiàn)良好的系統(tǒng),TPS和RPS幾乎是相同的

  • EPS (error per second) 是 服務(wù)端 每秒處理出錯(cuò)的數(shù)量,也包含在TPS中。

    一個(gè)性能表現(xiàn)良好的系統(tǒng),EPS 應(yīng)該一直為0

  • TOPS (timeout per second) 是 服務(wù)端 每秒處理超時(shí)的數(shù)量

    超時(shí)時(shí)間具體是多少,應(yīng)該由產(chǎn)品需求定義。

    一個(gè)性能表現(xiàn)良好的系統(tǒng),TOPS 應(yīng)該一直為0

前面說(shuō)過(guò) TPS 是由 RPS 、網(wǎng)絡(luò)延遲 、服務(wù)端本身的處理速度 這3個(gè)因素決定的。

服務(wù)端本身的處理速度 就是我們要測(cè)試的,測(cè)試時(shí),我們要保證的是其他兩個(gè)因素:RPS 和 網(wǎng)絡(luò)延遲。

做 性能/壓力測(cè)試 時(shí), 被測(cè)系統(tǒng)和加壓系統(tǒng), 應(yīng)該在一個(gè)帶寬網(wǎng)速比較理想的環(huán)境中,首先保證網(wǎng)絡(luò)延遲沒(méi)有問(wèn)題。

然后,性能測(cè)試工具要測(cè)試TPS能否達(dá)到 , 主要就是設(shè)置每秒發(fā)送請(qǐng)求的數(shù)量,也就是RPS。

RPS 是由測(cè)試工具決定的。

一個(gè)壓測(cè)工具本身的加壓性能也很重要。

否則,如果TPS指標(biāo)比較高,工具本身做不到,就沒(méi)法測(cè)試了。

如果服務(wù)端性能無(wú)限強(qiáng),網(wǎng)絡(luò)無(wú)限好,在目前的主流機(jī)器上,壓測(cè)能做到

單進(jìn)程 Windows系統(tǒng) 2000-5000 RPS, Linux系統(tǒng)下3000-6000 RPS

整機(jī)大概在 6000-12000 RPS

定義的一種客戶端 里面的行為代碼 就決定這種客戶端的 RPS

總RPS = 客戶端1 RPS * 客戶端1數(shù)量 + 客戶端2 RPS * 客戶端2數(shù)量 + …

所以,關(guān)鍵看你的客戶端行為定義 和 客戶端數(shù)量定義。

一個(gè)性能表現(xiàn)良好的系統(tǒng),TPS 和 RPS 幾乎是相同的。

所以,通常測(cè)試指標(biāo)TPS是多少,工具設(shè)置的RPS就是多少。

當(dāng)然,如果服務(wù)端本身的性能不夠,TPS自然也會(huì)相應(yīng)的下降。這時(shí),可以相應(yīng)的提升一下壓測(cè)工具的RPS

?在測(cè)試過(guò)程中會(huì)產(chǎn)生日志文件,記錄每秒 RPS、TPS、EPS、TOPS。

可以對(duì)測(cè)試數(shù)據(jù)進(jìn)行統(tǒng)計(jì)作圖。

注意:RPS、TPS、TOPS 都不需要我們做什么,工具會(huì)自動(dòng)記錄。

但是 EPS,必須要我們自己寫代碼,對(duì)響應(yīng)數(shù)據(jù)進(jìn)行檢查,并且告知黑羽壓測(cè)。

因?yàn)楣ぞ弑旧聿涣私鈽I(yè)務(wù)邏輯,什么樣的因?yàn)閿?shù)據(jù)是錯(cuò)誤的,工具沒(méi)法預(yù)先知道。

響應(yīng)時(shí)長(zhǎng)

響應(yīng)時(shí)長(zhǎng) 就是 服務(wù)端 處理請(qǐng)求耗費(fèi)的時(shí)間

平均響應(yīng)時(shí)長(zhǎng)

平均響應(yīng)時(shí)長(zhǎng) 就是 服務(wù)端 處理請(qǐng)求的平均耗費(fèi)時(shí)間。

這是影響用戶體驗(yàn)的重要指標(biāo)。設(shè)想一下如果 TPS 很高,但是,很多請(qǐng)求要很長(zhǎng)時(shí)間才得到反應(yīng),是什么樣的用戶體驗(yàn)。。。

在測(cè)試過(guò)程中會(huì)產(chǎn)生日志文件,記錄每秒 平均響應(yīng)時(shí)長(zhǎng)。

響應(yīng)時(shí)長(zhǎng)區(qū)段統(tǒng)計(jì)

光看平均響應(yīng)時(shí)長(zhǎng),往往是不全面的。

可能 有些請(qǐng)求會(huì)耗時(shí)特別長(zhǎng),嚴(yán)重影響用戶體驗(yàn)。但是被平均了就看不出來(lái)。

響應(yīng)時(shí)長(zhǎng)不能兩極分化。

響應(yīng)時(shí)長(zhǎng)區(qū)段統(tǒng)計(jì)就是查看是否兩極分化的衡量指標(biāo)。

并發(fā)連接 和 并發(fā)用戶

并發(fā)連接數(shù) 是 服務(wù)端 和客戶端 建立的?TCP連接的數(shù)量

并發(fā)用戶數(shù) 是 服務(wù)端 同時(shí)服務(wù)的?用戶的數(shù)量?。

用戶的一個(gè)操作可能引發(fā)多個(gè)并發(fā)連接。

并發(fā)連接

通常,并發(fā)連接數(shù)指標(biāo),適用于 測(cè)試 面向客戶端程序的 API服務(wù)系統(tǒng),比如 云服務(wù)。

和 TPS 對(duì)系統(tǒng)性能的衡量側(cè)重點(diǎn)不同 ,并發(fā)連接數(shù)指標(biāo) 衡量 系統(tǒng) 能?同時(shí)處理?客戶的能力。

兩者的區(qū)別 用一個(gè)比方 來(lái)解釋,就像銀行服務(wù):

并發(fā)連接數(shù),就像有多少個(gè)服務(wù)窗口

TPS, 就像每個(gè)窗口 服務(wù)員的處理速度

每個(gè)窗口服務(wù)員的處理速度即使很快,但是同時(shí)來(lái)了很多人,也必須開多個(gè)窗口,否則就會(huì)有人得不到服務(wù)。

對(duì) 并發(fā)連接 指標(biāo), 是通過(guò) 客戶端和性能場(chǎng)景 的定義來(lái) 設(shè)置的 。

如果,這樣定義客戶端

client = HttpClient('192.168.2.103',timeout=10) 

while True: 
    response = client.sendAndRecv(
        'GET',
        '/api/path1'
    )
    sleep(60) # 間隔60秒

這樣定義性能場(chǎng)景

createClients(
    'client-1', # 客戶端名稱
    1000,       # 客戶端數(shù)量
    0.1,     # 啟動(dòng)間隔時(shí)間,秒
    )

就會(huì)每隔1秒創(chuàng)建10個(gè)客戶端(同時(shí)也建立了10個(gè)并發(fā)連接),直到并發(fā)連接數(shù)達(dá)到1000。

上面代碼中,每個(gè)客戶端發(fā)送請(qǐng)求消息間隔時(shí)間是60秒。如果服務(wù)端 保持連接的時(shí)長(zhǎng)小于60秒(比如 Nginx就是通過(guò)?keepalive_timeout 50;?這樣設(shè)置的),就會(huì)造成連接 被 服務(wù)端主動(dòng)斷開,下次次發(fā)送請(qǐng)求要重新進(jìn)行連接。

Linux下 可以通過(guò) 如下命令 查看并發(fā)連接的數(shù)量

netstat -an | grep ESTABLISHED | grep -w 80 | wc -l

作為客戶端,本地可以打開的socket 數(shù)量 受操作系統(tǒng)的限制。

我測(cè)試過(guò),

在 Windows 10 專業(yè)版 16G內(nèi)存 可以打開6萬(wàn)個(gè)并發(fā)連接

而在Linux上通過(guò)修改 ip_local_port_range 參數(shù),也可以打開 6萬(wàn)個(gè)并發(fā)連接。

并發(fā)用戶

通常,并發(fā)用戶數(shù)指標(biāo),適用于 測(cè)試 面向真實(shí)用戶的 系統(tǒng),比如 淘寶。

一個(gè)用戶的一個(gè)操作可能引發(fā)多個(gè)并發(fā)連接

單獨(dú)說(shuō) 并發(fā)用戶數(shù) 這個(gè)指標(biāo)沒(méi)有意義, 必須指定是?哪種性能測(cè)試場(chǎng)景?下的并發(fā)用戶數(shù)。

因?yàn)橛脩舻牟僮餍袨椴灰粯?,?duì)服務(wù)端的 請(qǐng)求數(shù)量 和 并發(fā)連接數(shù)也不一樣。

而且并發(fā)用戶指標(biāo) 是?一段時(shí)間?內(nèi) 的,說(shuō)某個(gè)時(shí)間點(diǎn)的 并發(fā)用戶數(shù) 也沒(méi)有意義,因?yàn)樵擖c(diǎn)上,很多用戶可能沒(méi)有任何操作。

CPU/內(nèi)存/磁盤/網(wǎng)絡(luò) 負(fù)載

我們做性能測(cè)試時(shí),不能只看 TPS、響應(yīng)時(shí)長(zhǎng) 等指標(biāo)是否達(dá)到,也要看被測(cè)系統(tǒng)在達(dá)到這些指標(biāo)時(shí),機(jī)器本身的負(fù)載情況。

所謂負(fù)載情況,主要是: CPU占用率, 內(nèi)存使用,磁盤IO、磁盤使用率。

測(cè)試結(jié)束后可以產(chǎn)生系統(tǒng)資源使用圖。

在性能測(cè)試分析時(shí),我們主要關(guān)注這兩點(diǎn)

  • 是否接近滿負(fù)荷

如果在達(dá)到這些指標(biāo)時(shí),機(jī)器已經(jīng)處于滿負(fù)荷狀態(tài):CPU使用率 接近 100%, 內(nèi)存幾乎用光,那也是不行的。 因?yàn)殡S時(shí)系統(tǒng)可能出問(wèn)題。

就是說(shuō)再加點(diǎn)壓力,或者再持續(xù)一段時(shí)間,就很可能出現(xiàn)響應(yīng)超時(shí)甚至響應(yīng)錯(cuò)誤的情況。

  • 是否資源使用持續(xù)上升

這點(diǎn)特別體現(xiàn)在 內(nèi)存使用率 上。

如果系統(tǒng)資源使用圖上,內(nèi)存使用率是一個(gè)斜線不斷上升,的情況,那么很可能被測(cè)系統(tǒng)存在內(nèi)存泄露。

這樣只要再持續(xù)一段時(shí)間,就很可能出現(xiàn)系統(tǒng)因內(nèi)存耗盡而奔潰的現(xiàn)象。

出現(xiàn)這樣的圖表,就應(yīng)該添加測(cè)試用例,做一個(gè)較長(zhǎng)時(shí)間的性能測(cè)試(longevity testing),觀查系統(tǒng)的行為。

性能測(cè)試實(shí)戰(zhàn)流程

參考教程

JMeter

JMeter快速上手

參考鏈接:

安裝他提供給我的網(wǎng)站:安裝運(yùn)行 | 白月黑羽 (byhy.net)

GUI模式 運(yùn)行

運(yùn)行JMeter 有2種運(yùn)行模式:?GUI 圖形界面模式?和?CLI 命令行模式

前者是開發(fā)調(diào)試用的,后者才是真正執(zhí)行壓力測(cè)試時(shí)用的

現(xiàn)在就是開發(fā)階段,當(dāng)然先使用 圖形界面模式,等調(diào)試沒(méi)有問(wèn)題,再使用命令行模式

HTTP請(qǐng)求默認(rèn)值

測(cè)試過(guò)程中,被測(cè)系統(tǒng)換了, 就要換配置的地址, 要手動(dòng)修改 請(qǐng)求參數(shù),請(qǐng)求取樣器多了, 就非常麻煩了。

可以使用HTTP請(qǐng)求默認(rèn)值?解決這個(gè)問(wèn)題。

錄制網(wǎng)站流量

JMeter提供了錄制瀏覽器的請(qǐng)求的方法,使用的是代理抓包的機(jī)制。

  • 確保?HTTP請(qǐng)求默認(rèn)值?里面的服務(wù)器IP 和錄制的網(wǎng)址一致

    否則錄制時(shí),每個(gè)HTTP請(qǐng)求里面都會(huì)帶上IP,還得手工修改刪除,不利于統(tǒng)一使用HTTP請(qǐng)求默認(rèn)值?里面的服務(wù)器IP。

  • 在整個(gè)測(cè)試計(jì)劃下面添加?HTTP代理服務(wù)器

    英文叫?HTTP(S) Test Script Recorder

  • 在?線程組?里面 添加?邏輯控制器 -> 錄制控制器

  • 測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

  • 設(shè)置HTTP代理服務(wù)器

    • 分組 選項(xiàng) 選擇:?將每個(gè)組放到新的事物控制器中

    • 如果你需要錄制時(shí)過(guò)濾掉一些請(qǐng)求

      點(diǎn)擊Request Filtering 配置頁(yè),

      排除模式下 添加 你要 過(guò)濾掉 不抓取的 的類型資源 ,使用的是正則表達(dá)式

    • 點(diǎn)擊代理服務(wù)器的啟動(dòng)按鈕
    • 測(cè)試工具JMeter的使用,測(cè)試工具,jmeter
  • 設(shè)置瀏覽器代理為 本機(jī)(localhost) 的 8888端口,進(jìn)行對(duì)應(yīng)的界面操作

    應(yīng)該發(fā)現(xiàn)抓到了相應(yīng)的請(qǐng)求。

?其中,配置過(guò)程中遇到了JMeter錄制不上的情況,按照下面的方法來(lái)

jmeter性能測(cè)試腳本錄制不了的幾種情況_jmeter錄制腳本不成功_曹紅杏的博客-CSDN博客

這個(gè)問(wèn)題前后花了我三四個(gè)小時(shí),上述教程我在很前期就見(jiàn)過(guò),也照著做了,但是在查ip的時(shí)候我偷懶在瀏覽器搜的本機(jī)ip,查到的是本機(jī)對(duì)外(公網(wǎng))的一個(gè)ip,但是教程中用的是一個(gè)局域網(wǎng)ip,導(dǎo)致就各種嘗試都不對(duì),真tm開心。

具體流程如下:

edge瀏覽器下:設(shè)置->搜索“代理”

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter???????

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

注意,瀏覽器訪問(wèn)要錄制的頁(yè)面要設(shè)置成本機(jī)ip的方式訪問(wèn)(有坑:外網(wǎng)IP和內(nèi)網(wǎng)ip的區(qū)別-CSDN博客)

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

基本就可以錄制了。

對(duì)了要注意 它錄制的是一定時(shí)間間隔內(nèi)操作的網(wǎng)絡(luò)訪問(wèn)所以在錄制時(shí),瀏覽器窗口還是盡可能干凈些吧。

此外打開f12,關(guān)閉cookie緩存

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

  • 右鍵點(diǎn)擊?錄制線程組?點(diǎn)擊?驗(yàn)證?,查看一下是否能正確模擬

  • 繼續(xù)其它場(chǎng)景的錄制和拖動(dòng)

  • 結(jié)束錄制,修改瀏覽器設(shè)置,取消代理

模擬間隔時(shí)間

場(chǎng)景1中兩組請(qǐng)求中間沒(méi)有間隔,不符合實(shí)際情況。

怎么讓它們有間隔呢?

可以使用 JMeter的?定時(shí)器 Timer

定時(shí)器 執(zhí)行優(yōu)先級(jí)高于 取樣器, 會(huì)先暫停, 可以放在下一個(gè)消息的前面

也可以使用 取樣器 里面的?測(cè)試活動(dòng) flow control action?取樣器

Cookie管理器

假設(shè)現(xiàn)在有一個(gè)性能測(cè)試用例,要求:

用戶數(shù)量 1200 個(gè), 

賬號(hào)為 sz_000001 ~ sz_001200, 密碼都是 111111

在10分鐘依次進(jìn)行如下操作 :

  打開登錄頁(yè),進(jìn)行登錄后,進(jìn)入首頁(yè)

如果你還用前面錄制的方式,錄制后,驗(yàn)證一下,就可以發(fā)現(xiàn):

有些后續(xù)的API請(qǐng)求返回的結(jié)果是錯(cuò)誤,返回信息表示,沒(méi)有登錄。

即使前面 發(fā)送的登錄請(qǐng)求返回表示成功了。 為什么呢?

這是因?yàn)?這個(gè)被測(cè)系統(tǒng) 使用的 用戶驗(yàn)證機(jī)制是?Cookie Session機(jī)制

這就需要 讓JMeter自動(dòng)把接收到的 HTTP 響應(yīng)消息中的?Cookie?保存起來(lái),并且在后續(xù)發(fā)給該網(wǎng)站的請(qǐng)求中自動(dòng)攜帶上, 可以在測(cè)試計(jì)劃節(jié)點(diǎn)下面添加一個(gè)?HTTP Cookie管理器

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

效果

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

消息數(shù)據(jù)關(guān)聯(lián)

做API接口性能測(cè)試的時(shí)候,后面的請(qǐng)求參數(shù) 往往 需要?根據(jù)前面的請(qǐng)求結(jié)果?來(lái)決定。

這樣,測(cè)試工具填入的數(shù)據(jù)就是動(dòng)態(tài)的,沒(méi)法預(yù)先寫死。

比如前面的測(cè)試場(chǎng)景,后續(xù)還需要做如下操作:

用戶登錄后,打開?學(xué)習(xí)中心 -> 我的任務(wù)?頁(yè)面,查看前2個(gè)任務(wù)。

這樣,就要獲取前2個(gè)任務(wù)的id, 因?yàn)槊總€(gè)學(xué)員?任務(wù)分配?的id都是不一樣的。

JMeter 需要 從 前面 列出任務(wù)的 HTTP API響應(yīng)結(jié)果 里面提取出 ID, 供后面的請(qǐng)求使用。

如何做到呢?

這就要使用?后置處理器?和?變量?。

JMeter 通過(guò) 后置處理器 取出 取樣器響應(yīng)結(jié)果中 要提出取出來(lái)的數(shù)據(jù), 存入變量,后續(xù)請(qǐng)求使用這些變量。

變量

JMeter中,使用變量,是通過(guò)?${變量名}?這樣的格式

變量可以用戶自己定義產(chǎn)生,也可以由前置處理器、后置處理器 等 JMeter 元件產(chǎn)生。

有的是JMeter內(nèi)置變量,比如表示當(dāng)前線程號(hào)的變量?__threadNum?,就可以這樣使用?${__threadNum}

后置處理器

后置處理器通常用于對(duì) 取樣器 結(jié)果進(jìn)行后續(xù)處理。

后置處理器 的有效范圍是 同級(jí)所有取樣器,如果只要針對(duì)某個(gè)取樣器,應(yīng)該添加在它下面

常用的一個(gè)后置處理器是?JSON提取器?, 可以把 HTTP響應(yīng)消息中的數(shù)據(jù)提取到變量中,供后續(xù)使用

說(shuō)明文檔:https://jmeter.apache.org/usermanual/component_reference.html#JSON_Extractor

測(cè)試網(wǎng)頁(yè):?http://jsonpath.herokuapp.com

具體操作紀(jì)律:

打開錄制功能,分別錄制下面的 動(dòng)作

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

分別點(diǎn)擊下面兩個(gè)按鈕

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

這些操作盡可能快的做完,錄制上,然后點(diǎn)擊自己錄制的結(jié)果,翻閱一下,把鏈接不是來(lái)自192.168.172.1的那些請(qǐng)求刪掉(可能是瀏覽器本身在刷新訪問(wèn)其他頁(yè)面,含有一些隱形的操作也被錄了進(jìn)來(lái))

然后把這批請(qǐng)求組成的事務(wù)拖動(dòng)到含有登錄操作的線程組下面,閱讀接口 手冊(cè)(或者自己簡(jiǎn)單翻閱一下或者網(wǎng)頁(yè)查看f12),找到單擊動(dòng)作得到的id值對(duì)應(yīng)的請(qǐng)求鏈接(上面那張截圖的兩個(gè)“我的任務(wù)”的訪問(wèn)需要這個(gè)id),然后給這個(gè)請(qǐng)求“/api/assignment-391”添加后置處理器->Josn提取器。

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

提取器的設(shè)置如下

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

然后將上面JSON提取器設(shè)置的變量給需要引用他的頁(yè)面引用一下

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

然后 驗(yàn)證一下有沒(méi)有成功,下圖可見(jiàn)傳參成功

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

HTTP響應(yīng)中有UTF8編碼的中文顯示為亂碼,可以再設(shè)置一個(gè)?BeanShell PostProcessor?類型的后置處理器,并且在?Script?中增加?prev.setDataEncoding("UTF-8");

CSV 數(shù)據(jù)文件設(shè)置

有時(shí)候,性能測(cè)試有大量的數(shù)據(jù) 需要從 CSV 格式的文件讀入使用。

CSV格式的文件,其實(shí)就是文本文件,里面記錄了性能測(cè)試數(shù)據(jù),比如

sz_000001,111111
sz_000002,111111
sz_000003,111111

這時(shí),可以在某個(gè)?線程組下面?添加?CSV data set config(CSV 數(shù)據(jù)文件設(shè)置)?元件

CSV 數(shù)據(jù)文件設(shè)置可以為每列設(shè)置一個(gè)變量名,比如上例就是?loginname,password

JMeter會(huì)把 每行數(shù)據(jù)依次分配給一個(gè)線程。

這樣,每個(gè)線程里面的元件 就可以使用 這些變量 ,得到對(duì)應(yīng)的數(shù)據(jù)。

具體使用?點(diǎn)擊這里參考官方文檔

得到csv文件的方式 :上面的三行數(shù)據(jù)拷貝放到一個(gè)空的data.txt文件中,然后改后綴為csv

設(shè)置如下,可見(jiàn)又設(shè)置了兩個(gè)變量

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

引用兩個(gè)變量

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

斷言

利用JMeter斷言, 可以判定 從被測(cè)系統(tǒng) 收到的響應(yīng)消息是否正確。

斷言的有效范圍是 同級(jí)所有取樣器,如果只要針對(duì)某個(gè)取樣器,應(yīng)該添加在它下面。

例如,可以判斷響應(yīng)是否包含某些特定文本、數(shù)據(jù)。

甚至可以使用 Groovy、 BeanShell 這樣的腳本語(yǔ)言做 更加靈活的斷言判定。

比如下面使用?JSR223 斷言?腳本,可以檢查JSON格式消息體響應(yīng)中的total字段值是否小于10

import groovy.json.JsonSlurper

def jsonSlurper = new JsonSlurper();
def retObj = jsonSlurper.parseText(prev.getResponseDataAsString());


if(retObj.total < 10){
  AssertionResult.setFailureMessage("retObj.total <10");
  AssertionResult.setFailure(true);
}

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter
測(cè)試工具JMeter的使用,測(cè)試工具,jmeter
測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

循環(huán)控制器

線程組可以整體循環(huán), 但是如果你只想循環(huán) 線程組其中的一部分操作呢?

比如:

用戶登錄一次, 后續(xù)操作循環(huán)10次,每次間隔20秒 可以使用循環(huán)控制器。

循環(huán)控制器 內(nèi)部的元件有時(shí) 需要用到?當(dāng)前循環(huán)序號(hào)?。

JMeter 的當(dāng)前循環(huán)序號(hào)放到變量?__jm__<循環(huán)控制器名稱>__idx?中。

比如你的 循環(huán)控制器 名為 LC, 你就可以通過(guò)?${__jm__LC__idx}?訪問(wèn)到 當(dāng)前循環(huán)序號(hào)。

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

預(yù)處理器

預(yù)處理器 在取樣器請(qǐng)求 發(fā)出前執(zhí)行一些操作

用的比較多的是:設(shè)置一些參數(shù)、修改取樣器的設(shè)置、腳本預(yù)處理

有效范圍是同級(jí)所有取樣器,如果只要針對(duì)某個(gè)取樣器,應(yīng)該添加在它下面。

常用的有 用戶參數(shù)、HTML鏈接解析器、JSR223/BeanShell 等前置處理器

比如,下面JSR223前置處理器的代碼可以把一個(gè) 當(dāng)前循環(huán)序號(hào)變量值進(jìn)行預(yù)先處理 加1。

long number = Long.parseLong(vars.get('__jm__LC1__idx'))
number = number + 1;
vars.put('loopno',String.valueOf(number))
// OUT.println vars.get('loopno')

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter

命令行模式 運(yùn)行

真正實(shí)施性能測(cè)試應(yīng)該在命令行模式下運(yùn)行,命令格式如下:

E:\apache-jmeter-5.6.2\bin\jmeter -n -t loadtest-case1.jmx -l log.jtl

注意JMeter的路徑替換為你的安裝路徑

假設(shè) 我們有如下的性能測(cè)試用例


只有一種用戶行為:

無(wú)需登錄,先訪問(wèn)首頁(yè),再訪問(wèn)  單課頁(yè) ,再訪問(wèn) 新聞頁(yè)
訪問(wèn)頁(yè)面間隔 10 秒

用戶數(shù)量 1200 個(gè),在10分鐘依次上線

dashboard 產(chǎn)生圖表

E:\apache-jmeter-5.6.2\bin\jmeter -g log.jtl -o report1

就會(huì)產(chǎn)生report1目錄,里面的index.html 打開就是報(bào)告

注意?-o?后面的目錄 一定要不存在,或者內(nèi)容為空,否則會(huì)報(bào)錯(cuò)。

其中?APDEX (Application Performance Index)?里面的?T (Toleration threshold)?和?F (Frustration threshold)?可以通過(guò) JMeter 工具 bin 目錄下面的?user.properties?配置文件里面 這兩個(gè)選項(xiàng)來(lái)設(shè)置

jmeter.reportgenerator.apdex_satisfied_threshold
jmeter.reportgenerator.apdex_tolerated_threshold

我的一些結(jié)果

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter?

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter?

我本機(jī)結(jié)果比較抽風(fēng),領(lǐng)會(huì)精神吧

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter?

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter?

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter?

測(cè)試工具JMeter的使用,測(cè)試工具,jmeter文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-789222.html

到了這里,關(guān)于測(cè)試工具JMeter的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 性能測(cè)試工具Jmeter學(xué)習(xí)和使用

    性能測(cè)試工具Jmeter學(xué)習(xí)和使用

    摘要 : 在日常的開發(fā)中,軟件測(cè)試人員能夠?qū)Τ绦蜻M(jìn)行功能上的測(cè)試以確保用戶的正常使用,但對(duì)于一個(gè)需要發(fā)布在服務(wù)器上供多用戶同時(shí)使用的軟件而言,還需要模擬多用戶同時(shí)使用的場(chǎng)景,對(duì)站點(diǎn)進(jìn)行性能測(cè)試。但安排100個(gè)人同時(shí)訪問(wèn)測(cè)試站點(diǎn)顯然是不可行的,此時(shí)就

    2024年01月18日
    瀏覽(91)
  • 測(cè)試工具:jmeter的下載以及使用

    測(cè)試工具:jmeter的下載以及使用

    測(cè)試不僅要了解項(xiàng)目整體流程,還需要會(huì)使用各種測(cè)試工具,比如:jmeter壓力測(cè)試工具。 1.下載地址 2.下載完直接解壓,配置環(huán)境 (1)此電腦-右鍵屬性-高級(jí)系統(tǒng)設(shè)置-環(huán)境變量- 系統(tǒng)變量-中新建JEMETER_HOME,值為你的下載路徑 (2) CLASSPATH 中配置下面這句話(沒(méi)有新建classpat

    2024年02月11日
    瀏覽(22)
  • jmeter 性能測(cè)試工具的使用(Web性能測(cè)試)

    jmeter 性能測(cè)試工具的使用(Web性能測(cè)試)

    1、下載 該軟件不用安裝,直接解壓打開即可使用。 2、使用 這里就在win下進(jìn)行,圖形界面較為方便 在目錄apache-jmeter-2.13bin 下可以見(jiàn)到一個(gè)jmeter.bat文件,雙擊此文件,即看到JMeter控制面板。主界面如下: 3、創(chuàng)建線程組 測(cè)試計(jì)劃--右鍵——》添加——》hreads——》線程組 設(shè)

    2024年02月10日
    瀏覽(99)
  • 軟件測(cè)試工程師使用Jmeter工具做接口壓力測(cè)試(Jmeter配置隨機(jī)生成手機(jī)號(hào))

    軟件測(cè)試工程師使用Jmeter工具做接口壓力測(cè)試(Jmeter配置隨機(jī)生成手機(jī)號(hào))

    背景:性能測(cè)試的數(shù)據(jù)準(zhǔn)備時(shí)很多情況需要產(chǎn)生一批新的數(shù)據(jù),我們這次主要講述的是如何產(chǎn)生隨機(jī)的手機(jī)號(hào),以用戶注冊(cè)接口為場(chǎng)景、生成隨機(jī)手機(jī)號(hào)作為賬號(hào)進(jìn)行并發(fā)測(cè)試。 JMeter壓力測(cè)試中設(shè)置線程組的線程數(shù),即執(zhí)行時(shí)的并發(fā)用戶數(shù),適用于單個(gè)線程組的并發(fā)測(cè)試。

    2023年04月19日
    瀏覽(25)
  • 【測(cè)試工具】JMeter學(xué)習(xí) —— Badboy使用和錄制

    【測(cè)試工具】JMeter學(xué)習(xí) —— Badboy使用和錄制

    在說(shuō)JMeter錄制前,先了解學(xué)習(xí)Badboy錄制; Badboy是一個(gè)第三方瀏覽器模擬工具,有錄制回放功能; 可進(jìn)行調(diào)試,也可進(jìn)行自動(dòng)化測(cè)試; Badboy錄制腳本直接可以導(dǎo)出為.jmx格式,正好是JMeter的腳本保存格式,這正是我們想要的; jmx其實(shí)本質(zhì)是一個(gè)XML格式文件; Request方式; Navi

    2024年02月08日
    瀏覽(89)
  • 壓力測(cè)試工具 Jmeter 如何下載安裝及使用教程

    壓力測(cè)試工具 Jmeter 如何下載安裝及使用教程

    兩種下載方式: 官網(wǎng)下載地址(不推薦) :Apache JMeter - Download Apache JMeter ? jemter騰訊下載地址(推薦): https://mirrors.cloud.tencent.com/apache/jmeter/ 安裝前的準(zhǔn)備工作: 查看本地環(huán)境是否已經(jīng)安裝并配置了jdk 默認(rèn)優(yōu)秀的你和我一樣萬(wàn)事俱備了。開始安裝(簡(jiǎn)單) 解壓下載的文

    2023年04月16日
    瀏覽(20)
  • 在企業(yè)使用jmeter開展實(shí)際的接口自動(dòng)化測(cè)試工具

    在企業(yè)使用jmeter開展實(shí)際的接口自動(dòng)化測(cè)試工具

    在企業(yè)使用jmeter開展實(shí)際的接口自動(dòng)化測(cè)試工具,建議按如下操作流程, 可以使整個(gè)接口測(cè)試過(guò)程更規(guī)范,更有效。 接口自動(dòng)化的流程: 1、獲取到接口文檔:swagger、word、excel ... 2、熟悉接口文檔然后設(shè)計(jì)測(cè)試用例(一般都是先在excel中編寫) 3、進(jìn)行用例評(píng)審 4、將excel中的

    2024年02月16日
    瀏覽(104)
  • 并發(fā)測(cè)試工具 apache-jmeter使用發(fā)送post請(qǐng)求JSON數(shù)據(jù)

    并發(fā)測(cè)試工具 apache-jmeter使用發(fā)送post請(qǐng)求JSON數(shù)據(jù)

    目錄 1 下載安裝 2 漢化 3 創(chuàng)建高并發(fā)測(cè)試 配置線程組 創(chuàng)建web請(qǐng)求 創(chuàng)建監(jiān)聽(tīng)器 結(jié)果樹 匯總報(bào)告? 為web請(qǐng)求添加token 添加Content-Type用于發(fā)送json 4 啟動(dòng)測(cè)試 5 查看結(jié)果 官網(wǎng) Apache JMeter - Download Apache JMeter 解壓運(yùn)行 2 ? 打開軟件設(shè)置中文 效果 補(bǔ)充知識(shí): 什么是Damp-up: Ramp-Up Perio

    2024年02月10日
    瀏覽(27)
  • 壓力測(cè)試+接口測(cè)試(工具jmeter)

    jmeter是apache公司基于java開發(fā)的一款開源壓力測(cè)試工具,體積小,功能全,使用方便,是一個(gè)比較輕量級(jí)的測(cè)試工具,使用起來(lái)非常簡(jiǎn)單。因 為jmeter是java開發(fā)的,所以運(yùn)行的時(shí)候必須先要安裝jdk才可以。jmeter是免安裝的,拿到安裝包之后直接解壓就可以使用,同時(shí)它在 linux

    2024年01月17日
    瀏覽(27)
  • Jmeter-壓力測(cè)試工具

    Jmeter-壓力測(cè)試工具

    1s內(nèi)發(fā)送大量請(qǐng)求,模擬高QPS,用以測(cè)試網(wǎng)站能承受的壓力有多大 Jmeter依賴于JDK,所以必須確保當(dāng)前計(jì)算機(jī)上已經(jīng)安裝了JDK,并且配置了環(huán)境變量。 可以Apache Jmeter官網(wǎng)下載,地址:http://jmeter.apache.org/download_jmeter.cgi 或者直接用這個(gè)提供好的舊版本: 鏈接:https://pan.baidu.com

    2024年02月13日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包