等了這么久,20180210浑玛,終于有較大的更新认臊。無(wú)論是從 UI 還是功能優(yōu)化,都讓人耳目一新锄奢。下面我們就詳細(xì)看下具體變化失晴。
原文地址:http://jmeter.apache.org/changes.html
下載地址:apache-jmeter-4.0.zip
重要更新
主要變更
JMeter 現(xiàn)在支持 JAVA 9.
新的Boundary Extractor元素可以提供更好的元素提取性能
新的JSON Assertion元素可用于 JSON 響應(yīng)的斷言。
JMS Point-to-Point 樣例增加了read,browser,clear選項(xiàng)拘央。
將許多測(cè)試元素的最佳選項(xiàng)已設(shè)置為默認(rèn)選中內(nèi)容涂屁,如:
- 新增If Controller控制器使用最佳性能選擇的默認(rèn)表達(dá)式。
- 新增JSR223測(cè)試元素灰伟,在語(yǔ)言使用支持的情況下拆又,默認(rèn)緩存編寫的腳本。
Loop controller和ForEach Controller會(huì)使用jm<Name of your element>__idx來(lái)暴露循環(huán)的遍歷次數(shù)栏账,可以像下面的方式來(lái)使用一個(gè)名為 MyLoopController的 Loop Controller:
${__jm__MyLoopController__idx}
詳見(jiàn)Bug 61802.
Cookies 在錄制過(guò)程中帖族,會(huì)展示在View Results Tree中。之前他們總是顯示為空挡爵。
Response Assertion允許定制斷言信息和請(qǐng)求數(shù)據(jù)竖般。
UX 提升
JMeter 現(xiàn)在默認(rèn)使用Darcula LAFUI樣式。
Wokbench 已經(jīng)被從 UI 中去掉茶鹃,你可以使用Test Plan中Non Test Elements的子元素來(lái)添加對(duì)應(yīng) Workbench 中的功能涣雕。
菜單樣式將最常用元素調(diào)整為快速進(jìn)行操作。
HTTP(S) Test Script Recorder 允許在錄制時(shí)闭翩,定制更加人性化的 transactions的名稱挣郭。
UX樣式還有以下提升:
-
Module Controller
會(huì)提示用戶最少需要有一個(gè)Controller
甸陌。 -
Function Helper Dialog
(幫助使用和測(cè)試功能的說(shuō)明)在多個(gè)位置有提升滓走。
-
Swich Controller
會(huì)自動(dòng)trim
字符串前后的空格,減少問(wèn)題出現(xiàn)登淘。 -
Test Plan
在運(yùn)行前會(huì)保存蕉汪。
函數(shù)
新函數(shù) __digest 用戶快速提升 SHA-XXX流译,MDX Hash 計(jì)算:
${__digest(MD5,Apache JMeter 4.0 rocks !,,,)}
返回0e16c3ce9b6c9971c69ad685fd875d2b
新函數(shù) __dateTimeConvert 提供兩種時(shí)間格式的快速轉(zhuǎn)換:
${__dateTimeConvert(01 Jan 2017,dd MMM yyyy,dd/MM/yyyy,)}
返回01/01/2017
新函數(shù) changeCase提供字符在大寫、小寫肤无、駝峰式之間的轉(zhuǎn)換:
${__changeCase(Avaro omnia desunt\, inopi pauca\, sapienti nihil,UPPER,)}
返回AVARO OMNIA DESUNT, INOPI PAUCA, SAPIENTI NIHIL
新函數(shù)__isVarDefined和 __isPropDefined 用于測(cè)試屬性和變量是否可用先蒋。
${__isPropDefined(START.HMS)}
返回 true
${__isVarDefined(JMeterThread.last_sample_ok)}
返回 true
編碼和插件開(kāi)發(fā)
如果你不想樣例在測(cè)試結(jié)果中出現(xiàn),可以調(diào)用SampleResult#setIgnore()宛渐。
JavaSamplerContext 替代在AbstractJavaSamplerClient竞漾,有新的方法用于快速的插件開(kāi)發(fā)眯搭。
JMeter 現(xiàn)在發(fā)布 Maven 源和 JavaDoc在Maven repository中。
插件可以注冊(cè)監(jiān)聽(tīng)事件业岁,當(dāng)收到 TestPlan 的開(kāi)啟/關(guān)閉狀態(tài)通知時(shí)鳞仙。
實(shí)時(shí)報(bào)告和 Web 報(bào)告
InfluxDB backend listener支持通過(guò)使用TAG_來(lái)定制化 tags,詳見(jiàn)Bug 61794.
在 Web 報(bào)告中 responseTime分布圖更加精細(xì)笔时。
一些 BUG 修復(fù)也被集成在報(bào)告模塊中棍好,詳見(jiàn)Bug 61900,Bug 61956允耿,Bug 61899借笙。圖表中 Latency Vs Request 和 Response Time Vs Request 不會(huì)超過(guò)1000RPS,詳見(jiàn)Bug 61962较锡。
JMeter 環(huán)境配制
JMeter 的啟動(dòng)腳本用于 JVM設(shè)置的被放在了單獨(dú)的文件中(Unix 中是bin/setenv.sh业稼,Windows 中是bin\setenv.bat),在啟動(dòng)時(shí)會(huì)被調(diào)用蚂蕴。這樣低散,啟動(dòng)腳本再也不用編輯了。
優(yōu)化調(diào)整
- 線程組的Start time 和 End date被移除骡楼,詳見(jiàn)Bug 61549
- 分布式測(cè)試中熔号,Hold模式被刪除。使用其它替代和更有效的模式
- 針對(duì)第三方插件鸟整,方法org.apache.jmeter.gui.tree.JMeterTreeNode為合并至 Java9已被廢棄(Bug 61529)
public Enumeration<JMeterTreeNode> children()
- tearDown Thread Group 在默認(rèn)情況下引镊,會(huì)停止并關(guān)閉測(cè)試。如果你不想這樣做吃嘿,去掉 Test Plan中的Run tearDown Thread Groups after shutdown of main threads on Test Plan勾選祠乃。詳見(jiàn)Bug 61656
- sampleresult.getbytes.headers_size屬性和sampleresult.getbytes.body_real_size屬性被廢棄。詳見(jiàn)Bug 61587
- JMeter 現(xiàn)在會(huì)在每次運(yùn)行時(shí)保存測(cè)試計(jì)劃兑燥,這個(gè)行為可以通過(guò)save_automatically_before_run來(lái)設(shè)置。詳見(jiàn)Bug 61731
- Workbench元素被廢棄琴拧,你可以直接添加Test Plan 中 Non Test Element的子元素來(lái)直接添加降瞳。當(dāng)加載一個(gè)包含這種元素的 Test Plan時(shí),JMeter 會(huì)增加將**Mirror Server, Property Display ** 和 HTTP(s) Test Script Recorder添加為直接子元素蚓胸。對(duì)于任何元素挣饥,它會(huì)創(chuàng)建一個(gè) Test Fragment元素,調(diào)用 Workbench Test Fragment 并將元素移入沛膳。
- 下面的類被廢棄(org.apache.jmeter.functions.util.ArgumentEncoder, org.apache.jmeter.functions.util.ArgumentDecoder)扔枫,詳見(jiàn)Pull request #335
- 在JMS Point-to-Point樣例中,設(shè)置超時(shí)為0時(shí)锹安,表示無(wú)窮大的時(shí)間短荐。未設(shè)置時(shí)倚舀,表示超時(shí)為2000ms。詳見(jiàn)Bug 61829
- 當(dāng)斷言用于不同的范圍時(shí)忍宋,它們會(huì)被從最外圍一個(gè)至最內(nèi)部的一個(gè)痕貌。詳見(jiàn)Bug 61846
- JMeter 現(xiàn)在默認(rèn)啟動(dòng)語(yǔ)言為英語(yǔ)。這是因?yàn)槿鄙俸芏喾N類的語(yǔ)言翻譯支持糠排《娉恚可以通過(guò)修改 jmeter 和 jmeter.bat(或最好用 setenv.sh/setenv.bat)中的JVM_ARGS系統(tǒng)設(shè)置來(lái)調(diào)整。我們也很高興入宦,如果你能貢獻(xiàn)支持語(yǔ)言的翻譯工作哺徊。
- Switch Controller現(xiàn)在默認(rèn)會(huì) trim掉無(wú)用的空格,減少問(wèn)題出現(xiàn)乾闰。詳見(jiàn)Bug 61771
- JMeter JVM 堆設(shè)置從-Xms512m -Xmx512m調(diào)整為-Xms1g -Xmx1g落追。