最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

大話JMeter4|不同的并發(fā)數(shù)可以自動(dòng)化做壓測(cè)嗎?

2022-10-13 11:16 作者:愛測(cè)軟件測(cè)試  | 我要投稿


上節(jié)課愛畫漫畫的小哥哥用漫畫形式向大家展示了JMeter的進(jìn)階用法:如何搭建InfluxDB,使用更炫酷的Grafana。


看到很多小伙伴覺得看的不過(guò)癮,在強(qiáng)烈的催促下,小哥哥的新文章又出來(lái)了。這次小哥哥又給我們帶來(lái)怎樣的驚喜呢?接著看下去吧!

如果手動(dòng)逐步加壓,不僅需要人肉改并發(fā)數(shù),還需要花大量時(shí)間等待完成,可以用一個(gè)字概括:
完成后看壓測(cè)監(jiān)控記錄,或者坐收?qǐng)?bào)告是最完美的解決方案。

示例:
jmeter -n -t testplan.jmx -l test.jtl

示例含義:
則表示以命令行模式運(yùn)行testplan.jmx文件,輸出的日志文件為test.jtl

具體的參數(shù)信息如下:
-h 幫助 → 打印出有用的信息并退出

-n 非 GUI 模式 → 在非 GUI 模式下運(yùn)行 JMeter

-t 測(cè)試文件 → 要運(yùn)行的 JMeter 測(cè)試腳本文件

-l 日志文件 → 記錄結(jié)果的文件

-r 遠(yuǎn)程執(zhí)行 → 在Jmter.properties文件中指定的所有遠(yuǎn)程服務(wù)器

-H 代理主機(jī) → 設(shè)置 JMeter 使用的代理主機(jī)

-P 代理端口 → 設(shè)置 JMeter 使用的代理主機(jī)的端口號(hào)

我們?cè)O(shè)置并錄制好腳本,此時(shí)可以選擇保存。然后我們就得到了一份jmx文件,于是,就可以用上面的命令加載這個(gè)文件實(shí)現(xiàn)無(wú)UI運(yùn)行啦!

在shell命令中,我們使用nohup來(lái)運(yùn)行jmeter:

  • nohup是no hang up 的縮寫,就是不掛斷的意思。
    如果你正在運(yùn)行一個(gè)進(jìn)程,而且你覺得在退出帳戶時(shí)該進(jìn)程還不會(huì)結(jié)束,那么可以使用nohup命令。
    在缺省情況下該作業(yè)的所有輸出都被重定向到一個(gè)名為nohup.out的文件中。

  • & 指在后臺(tái)運(yùn)行
    &才是后臺(tái)運(yùn)行,那么,我們可以巧妙的把他們結(jié)合起來(lái)用就是nohup COMMAND &,這樣就能使命令永久的在后臺(tái)執(zhí)行。

是的,小兔說(shuō)的沒(méi)錯(cuò),就像下面的圖片一樣,我們?cè)趈meter的UI界面中配置的參數(shù)信息全在jmx文件中,比如并發(fā)數(shù)為:
11

要解釋一段代碼著實(shí)不容易,這里請(qǐng)?jiān)试S用文字來(lái)表述。下面是shell代碼,將會(huì)挑重點(diǎn)來(lái)解釋,如果對(duì)語(yǔ)法生疏,可以自行網(wǎng)上搜索。

github項(xiàng)目地址:

https://github.com/princeqjzh/iJmeter/blob/master/automation/auto_stress_test.sh 3

運(yùn)行代碼前需要將jmeter目錄設(shè)置為環(huán)境變量,shell才可以知道所運(yùn)行的jmeter在哪個(gè)位置。

首先,用export定義幾個(gè)變量,這些變量后面會(huì)用到,其中jmx_template_filename變量存放的是jmx的臨時(shí)名子,實(shí)際工作中要設(shè)置多個(gè)并發(fā)數(shù),比如10,20,30,40,每一個(gè)并發(fā)數(shù)都要有一個(gè)文件與之對(duì)應(yīng),稱之為臨時(shí)文件,這四個(gè)jmx文件的并發(fā)數(shù)分別為:
10,20,30,40。

我們接著往下看:

遇到了cat命令和killJMeter函數(shù),后面再來(lái)講這兩部分,繼續(xù)往下看。

是并發(fā)數(shù),代碼期望有五個(gè)并發(fā)數(shù),分別為:
10,20,30,40,50。下一步至關(guān)重要,請(qǐng)集中注意!

這就是全部代碼,你可以參考下面的解釋:
我們對(duì)thread_number_array數(shù)組依次遍歷,do和done之間的內(nèi)容就是每次遍歷要執(zhí)行的操作。

這是兩個(gè)變量,jmx_filename就是臨時(shí)jmx文件的名子,${}代表變量,比如${jmx_template}指我們要用jmx_template這個(gè)變量,變量名類似PreClassMenu_auto_10.jmx,PreClassMenu_auto_20.jmx,PreClassMenu_auto_30.jmx等等。

用于清除閑雜文件,如果有當(dāng)前目錄文件與jmx_filename和jtl_filename重名,就刪除它。

是復(fù)制命令,將模板中的內(nèi)容復(fù)制到臨時(shí)文件中,也可以理解為利用模板建立臨時(shí)文件。

用來(lái)判斷是不是mac電腦,mac電腦上輸入uname就能顯示Darwin,如果不顯示則為linux,之所以要判斷,是因?yàn)楹竺娴膕ed命令在mac與linux上稍微有點(diǎn)不同。
這是我們的重頭戲,用來(lái)正則替換,我們用變量num來(lái)替換臨時(shí)文件中的thread_num,它是什么?
請(qǐng)看下面的截圖:

哇!把并發(fā)數(shù)用thread_num替換了,之所以這么做是為了讓正則更方便的找到它,試想一下,如果我使用數(shù)字1或者數(shù)字11,正則會(huì)很難定位到它。
用正則將num替換上去,也就實(shí)現(xiàn)了用命令修改臨時(shí)文件的并發(fā)數(shù),多么偉大的操作!

這個(gè)命令前面介紹過(guò),就不多說(shuō)了,它無(wú)UI運(yùn)行jmeter,在缺省情況下該作業(yè)的所有輸出都被重定向到一個(gè)名為nohup.out的文件中,代碼最開始的cat是為了清空nohup.out文件。換句話說(shuō),每次運(yùn)行shell腳本,都會(huì)清空nohup.out記錄文件,相當(dāng)于清空日志。

65秒后殺掉壓測(cè)進(jìn)程,因?yàn)橛袝r(shí)候JMeter并不能正常退出!
KillJMeter是最開始時(shí)定義的函數(shù),它通過(guò)grep和awk篩選出進(jìn)程并殺掉,不過(guò)多講解了。

大話JMeter4|不同的并發(fā)數(shù)可以自動(dòng)化做壓測(cè)嗎?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
腾冲县| 腾冲县| 策勒县| 安阳市| 元谋县| 留坝县| 沙坪坝区| 灌阳县| 吴忠市| 澎湖县| 蒙山县| 靖宇县| 晋中市| 磐石市| 左贡县| 台南市| 大石桥市| 娄烦县| 余庆县| 石首市| 油尖旺区| 涞水县| 金堂县| 大埔区| 白银市| 二连浩特市| 永泰县| 涿州市| 阜新| 四子王旗| 福建省| 文化| 南京市| 肇州县| 琼结县| 苍梧县| 清水河县| 汤原县| 荣成市| 横峰县| 尖扎县|