jmeter 4.0版本更新說明(我的作個記錄)總版本更新合集

版本4.0

摘要javascript

新的和值得注意的

核心改進

JMeter如今支持JAVA 9。css

提供新的邊界提取器元件,提供易於提取和更好的性能html

 

可用於在JSON響應上斷言的JSON Assertion元素。java

 

提供新的精確吞吐量定時器元件,可在給定的恆定吞吐量下產生泊松到達。node

 

JMS點對點採樣器加強了讀取瀏覽清除選項。jquery

 

如今,在許多測試元素上選擇了最佳屬性值,以確保最佳實踐是默認值:linux

  • 新添加若是Controller如今默認使用Expression,這是性能最佳的選項。
  • 若是使用的語言提供此功能,則新添加的JSR223測試元素如今默認緩存編譯的腳本。

 

迴路控制器和 的ForEach控制器 如今暴露本身的當前迭代的命名變量 __jm __ <你的元素的名稱> __ IDX,你能夠用這樣的例如用於迴路控制器命名 MyLoopControllergit

$ {__ jm__MyLoopController__idx}

 Bug 61802github

 

如今,Cookie會在錄製期間顯示在「查看結果樹」中。他們之前老是顯示爲空。web

響應斷言如今容許您自定義斷言消息並在請求數據上斷言。

 

UX改進

JMeter如今默認使用Darcula LAF

Workbench已從UI中刪除,您如今能夠使用非測試元素做爲測試計劃的直接子項。

 

菜單UX已獲得改進,能夠更快速地使用大多數元素。

 

HTTP(S)測試腳本記錄器如今容許您以更易讀的方式記錄您的交易。

 

 

用戶體驗改進最明顯:

  • 模塊控制器通知用戶至少須要一個控制器
  • 功能助手對話框(幫助使用和測試功能的嚮導)在許多領域獲得了改進。
  • Switch Controller修剪文本以免在名稱以前/以後引入空格時出現問題
  • 如今,在運行測試計劃以前,會保存測試計劃

功能

新函數__digest能夠輕鬆計算SHA-XXX,MDX哈希值:

$ {__ digest(MD5,Apache JMeter 4.0 rocks!,,,)}

將返回0e16c3ce9b6c9971c69ad685fd875d2b

 

新函數__dateTimeConvert提供日期格式之間的輕鬆轉換:

$ {__ dateTimeConvert(2017年1月1日,dd MMM yyyy,dd / MM / yyyy,)}

將於01/01/2017返回

 

新函數__changeCase提供切換到上/下/大寫狀況的功能

$ {__ changeCase(Avaro omnia desunt \,inopi pauca \,sapienti nihil,UPPER,)}

將返回AVARO OMNIA DESUNT,INOPI PAUCA,SAPIENTI NIHIL

 

新函數__isVarDefined 和__isPropDefined提供屬性和變量可用性的測試

$ {__ isPropDefined(START.HMS)}

將返回真實

$ {__ isVarDefined(JMeterThread.last_sample_ok)}

將返回真實

 

腳本和插件開發

若是您不但願您的採樣器在結果中可見,如今能夠調用SampleResult #setIgnore()

JavaSamplerContext經過使用AbstractJavaSamplerClient已獲得加強,新的方法,以方便插件開發。

JMeter如今將其餘Maven源和javadoc工件分發到Maven存儲庫

如今,插件能夠註冊監聽器,以便在打開/關閉測試計劃時收到通知

實時報告和Web報告

InfluxDB後端監聽器如今容許您經過添加前綴TAG_來添加自定義標記,請參閱 錯誤61794

在Web Report中,responseTime分佈圖更精確

已對報告生成進行了一些錯誤修正,請參閱 錯誤61900 錯誤61900 61956, 錯誤61899圖表延遲Vs請求響應時間Vs請求因爲 錯誤61962而未超過1000 RPS

配置JMeter環境

JMeter啓動腳本的JVM設置能夠放在一個單獨的文件中(在Unix上爲bin / setenv.sh在Windows 上爲bin \ setenv.bat),在啓動時調用。啓動腳本自己再也不須要編輯。

不兼容的變化

  • 已刪除線程組的開始時間結束日期,請參閱 錯誤61549
  • 在分佈式測試中,模式Hold已被刪除。使用替代和更有效的模式
  • 對於3 第三方插件,在下面的方法org.apache.jmeter.gui.tree.JMeterTreeNode已取消了遷移到Java 9( 錯誤61529
    public Enumeration <JMeterTreeNode> children()
  • 如今,tearDown Thread Group將在默認狀況下中止並關閉測試。若是您不想要此行爲,請在關閉測試計劃元素的主線程後取消選中Run tearDown Thread Groups,請參閱 錯誤61656
  • 屬性sampleresult.getbytes.headers_sizesampleresult.getbytes.body_real_size已被刪除,請參閱 錯誤61587
  • JMeter如今能夠在運行時保存測試計劃。此行爲能夠經過屬性save_automatically_before_run控制,請參閱 錯誤61731
  • Workbench元素已被刪除,您如今直接添加非測試元素做爲測試計劃的子項。加載包含元素的測試計劃時,JMeter會將鏡像服務器屬性顯示和HTTP(s)測試腳本記錄器元素做爲測試計劃的直接子項移動。對於任何其餘元素,它將建立一個名爲Workbench Test FragmentTest Fragment元素並移動其中的元素
  • 已刪除如下類(org.apache.jmeter.functions.util.ArgumentEncoderorg.apache.jmeter.functions.util.ArgumentDecoder),請參閱 請求#335
  • 在JMS點對點採樣器中,將超時設置爲0如今意味着無限超時,而以前它將切換爲2000 ms,請參閱 錯誤61829
  • 當斷言處於不一樣的範圍時,它們從最外面的一個到最內層的一個執行。 Bug 61846
  • JMeter如今默認使用英語語言環境啓動。此更改是因爲許多支持的語言中缺乏翻譯。您能夠經過在jmeter和jmeter.bat(或最好是setenv.sh/setenv.bat)中修改JVM_ARGS系統屬性值來更改語言環境若是您能用支持的語言提供翻譯,咱們將很是感激。
  • SwitchController如今默認修剪switch的內容,以免與不須要的空格相關的問題。 Bug 61771
  • JMeter JVM堆設置已從-Xms512m -Xmx512m更改-Xms1g -Xmx1g

改進

HTTP採樣器和測試腳本記錄器

  • 請求#316 - 關於空信任庫加載的警告。供稿人:Vincent Herilier(https://github.com/vherilier)
  • 錯誤61639 - HTTP(S)測試腳本記錄器:在請求過濾選項卡中,默認取消選中「通知已過濾採樣器的子監聽器」
  • 錯誤61672 - HTTP(S)測試腳本記錄器:可以選擇採樣器名稱,同時保持只添加前綴的能力
  • 錯誤53957 - HTTP請求:在「參數」選項卡中,容許粘貼來自Firefox和Chrome的內容(未解析)
  • 錯誤61587 - 刪除屬性sampleresult.getbytes.headers_sizesampleresult.getbytes.body_real_size
  • 錯誤61843 - HTTP(S)測試腳本記錄器:將SAN添加到JMeter生成的CA證書。供稿人:Matthew Buckett
  • 錯誤61901 - 支持https.cipherSuites系統屬性。供稿人:Jeremy Arnold(jeremy at arnoldzoo.org)

其餘採樣器

  • 錯誤61544 - JMS點對點採樣器:經過讀取,瀏覽,清除來加強通訊風格。基於Benny van Wijngaarden的貢獻(benny at smaragd-it.nl)
  • 錯誤61829 - JMS點對點:若是接收隊列爲空而且設置了超時,則不會將其考慮在內。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61739 - Java Request / JavaSamplerClient:改進org.apache.jmeter.protocol.java.sampler.JavaSamplerContext
  • 錯誤61762 - 開始下一個線程循環應該在任何地方使用

控制器

  • 錯誤61675 - 若是Controller:默認狀況下使用表達式,並在使用其餘模式時添加警告。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61770 - 模塊控制器:在UI中通知用戶他須要在他的計劃中至少有一個控制器。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61771 - SwitchController:應該經過安全修剪切換字段

聽衆

  • 錯誤57760 - 查看結果樹:查看記錄器樣本結果時,Cookie標頭錯誤地顯示爲空(無cookie)。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61769 - 查看結果樹:在XPath Tester,JSON Path Tester和CSS / JQuery Tester中使用語法高亮顯示器供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61776 - 查看結果樹:擴展添加展開/摺疊渲染XML視圖中的全部菜單。由Maxime Chassagneux和Graham Russell供稿
  • 錯誤61852 - 查看結果樹:添加邊界提取器測試程序
  • 錯誤61794 - Influxdb後端:添加儘量多的自定義標記,只需建立新行,並在GUI後端監聽器上用「 TAG_ 」做爲其名稱前綴

定時器,斷言,配置,預處理器和後處理器

  • 錯誤60213 - 新組件:基於邊界的提取器
  • 錯誤61845 - 基於AtlanBH的新組件JSON斷言JSON Path Assertion捐贈給JMeter-Plugins並由Artem Fedorov遷移到JMeter核心(artze at blazemeter.com)
  • 錯誤61931 - 新組件:精確吞吐量計時器,定時器,以給定的恆定吞吐量產生泊松到達。供稿人:Vladimir Sitnikov(來自gmail.com的sitnikov.vladimir)
  • 錯誤61644 - HTTP緩存管理器:默認狀況下應檢查「處理GET請求時使用緩存控制/過時標頭」
  • 錯誤61645 - 響應斷言:添加在請求數據上斷言的功能
  • 錯誤51140 - 響應斷言:添加設置特定錯誤/失敗消息的功能,該消息稍後將顯示在斷言結果中。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61534 - 將AssertionError轉換爲失敗的斷言,容許用戶在其代碼中使用assert。修復3.2中引入的迴歸
  • 錯誤61756 - 提取器:改進標籤名稱「參考名稱」以明確其內容
  • 錯誤61758 - 應用於:提取器中的字段,斷言:在JMeter變量名稱中輸入值時,默認狀況下應選擇單選框JMeter變量名稱供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61846 - Scoped Assertion應遵循與Post Processors相同的評估順序

功能

  • 錯誤61724 - 添加__digest函數以提供哈希(SHA-XXX,MDX)的計算。基於orimarko在gmail.com的貢獻
  • 錯誤61735 - 添加__dateTimeConvert函數以提供日期格式轉換。基於orimarko在gmail.com的貢獻
  • 錯誤61760 - 添加__isPropDefined__isVarDefined函數以瞭解屬性或變量是否存在。由orimarko在gmail.com提供
  • 錯誤61759 - 添加__changeCase函數以更改字符串的不一樣狀況。基於orimarko在gmail.com的貢獻
  • 錯誤61561 - 函數幫助器對話框應在結果中顯示異常
  • 錯誤61738 - 功能助手對話框:在生成和澄清標籤中添加副本。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤62027 - 幫助:介紹屬性help.local,以容許在本地(離線)文檔和在線文檔之間進行選擇
  • 錯誤61593 - 刪除詳細信息,添加,從剪貼板添加,刪除功能助手GUI中的按鈕

國際化

  • 錯誤61606 - 翻譯按鈕在某些元素中瀏覽...(使用FileEditor類)
  • 錯誤61747 - HTTP(S)測試腳本記錄器:將缺乏的文檔添加到「請求後建立事務(ms)」

報告/儀表板

  • 錯誤61871 - 將jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity默認值從500ms減小到100ms
  • 錯誤61879 - 刪除HTML報告模板中的無用文件

通常

  • 錯誤61591 - 從測試樹中刪除Workbench。由Artem Fedorov(blazemeter.com上的artem)實施,由BlazeMeter Ltd.提供。
  • 錯誤61549 - 線程組:刪除開始和結束日期
  • 錯誤61529 - 遷移到Java 9.部分由Ubik Load Pack提供(ubikloadpack.com支持)
  • 錯誤61709 - SampleResult:添加方法setIgnore()以使JMeter忽略SampleResult而不將其發送給偵聽器
  • 錯誤61806 - 容許在後處理器和斷言腳本(JSR223元素)中使用SampleResult #setIgnore(
  • 錯誤61607 - 在全部BeanShell元素中添加瀏覽按鈕以選擇BeanShell腳本
  • 錯誤61627 - 單擊警告/錯誤指示器時,再也不清除LogView
  • 錯誤61629 - 將Think Times添加到Children菜單不該該考慮禁用的元素
  • 錯誤 61655 - SampleSender:刪除HoldSampleSender實現
  • 錯誤61656 - tearDown線程組應在測試中止或關閉時默認運行
  • 錯誤61659 - JMeterVariables#get()應該在非字符串對象上應用toString()
  • 錯誤 61555 - 默認狀況下應限制元數據空間
  • 錯誤61693 - JMeter知道Docker(-XX:+ UnlockExperimentalVMOptions -XX:+ UseCGroupMemoryLimitForHeap
  • 錯誤61694 - jmeter.bat中添加-server選項
  • 錯誤61697 - 介紹Darcula外觀和感受,使JMeter UI更具吸引力
  • 錯誤61704 - 工具欄:改進一點正確的部分
  • 錯誤61731 - 加強測試計劃備份,選項在運行前保存。基於orimarko在gmail.com的貢獻
  • 錯誤61640 - JSR223測試元素:默認啓用緩存。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61785 - 添加幫助  →  有用的連接以建立問題並下載每晚構建
  • 錯誤61808 - 修復主框架位置。由Artem Fedorov(blazemeter.com上的artem)實施,由BlazeMeter Ltd.提供。
  • 錯誤61802 - 循環/ ForEach控制器應公開當前迭代的變量。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 拉請求#349 - 添加i18n資源(zh_CN)。供稿人:Helly Guo(https://github.com/hellyguo)
  • 拉請求#351 - 修正了第一個視圖中的對話位置。供稿人:Graham Russell(graham at ham1.co.uk)
  • 拉請求#352 - 菜單欄 - 將助記符添加到更多菜單項。供稿人:Graham Russell(graham at ham1.co.uk)
  • 拉請求#353 - 在Spock中重寫了一些現有的測試。供稿人:Graham Russell(graham at ham1.co.uk)
  • 錯誤61919 - UX:從新排序菜單。供稿人:Graham Russell(graham at ham1.co.uk)
  • 錯誤61920 - 插件:添加聽取測試計劃加載/關閉的能力。供稿人:Peter Doornbosch(https://bitbucket.org/pjtr/)
  • 錯誤61935 - 插件:讓GUI組件(動態)決定是否能夠經過菜單添加。供稿人:Peter Doornbosch(https://bitbucket.org/pjtr/)
  • 錯誤61969 - 當經過GUI更改LAF時,應通知用戶最好從新啓動
  • 錯誤61970 - JMeter如今使用英語做爲默認語言環境,以免在某些語言環境中丟失翻譯,使UI看起來很奇怪
  • 錯誤56368 - 建立和部署源工件到Maven中心
  • 錯誤61973 - 建立和部署javadoc工件到Maven central
  • 請求#371 - 修復XPath Assertion文檔中的示例供稿人:Konstantin Kalinin(hotmail.com中的kkalinin)
  • 錯誤62039 - 分佈式測試:提供使用SSL的能力

非功能性變化

  • 已更新至bsh-2.0b6(來自bsh-2.0b5)
  • 更新爲groovy-all-2.4.13(來自groovy-all-2.4.12)
  • 更新至rhino-1.7.7.2(來自rhino-1.7.7.1)
  • 更新爲tika-core和tika-parsers 1.17(從1.16開始)
  • 更新爲commons-dbcp2-2.2.0(來自2.1.1)
  • 更新爲咖啡因2.6.1(從2.5.5開始)
  • 更新爲commons-codec-1.11(從1.10開始)
  • 更新爲commons-io-2.6(從2.5開始)
  • 更新爲commons-lang3-3.7(來自3.6)
  • 更新爲commons-pool2-2.5.0(來自2.4.2)
  • 更新爲asm-6.0(從5.2開始)
  • 更新到jsoup-1.11.2(從1.10.3開始)
  • 已更新至cglib-nodep-3.2.6(從3.2.5開始)
  • 更新爲ph-css 6.0.0(從5.0.4開始)
  • 更新爲ph-commons 9.0.0(從8.6.6開始)
  • 更新爲log4j2 2.10.0(從2.8.2開始)
  • 更新爲httpcore 4.4.9(從4.4.7開始)
  • 更新到httpclient 4.5.5(從4.5.3開始)
  • 更新爲jodd 4.1.4(從3.8.6開始)
  • 錯誤61642 - 改進FTP測試覆蓋率
  • 錯誤61641 - 改進JMS測試覆蓋率
  • 錯誤61651 - 改進TCP測試覆蓋率
  • 錯誤61651 - 改進操做系統測試覆蓋率。部分由Aleksei Balan貢獻(abalanonline at gmail.com)
  • 拉請求#319 - 刪除已註釋掉的代碼。供稿人:Graham Russell(graham at ham1.co.uk)
  • 拉請求#322 - 常規JavaDoc清理。供稿人:Graham Russell(graham at ham1.co.uk)
  • 拉請求#323 - 提取的方法和使用的流來提升可讀性。供稿人:Graham Russell(graham at ham1.co.uk)
  • 拉請求#324 - 保存備份重構。供稿人:Graham Russell(graham at ham1.co.uk)
  • 請求#327 - 使用更現代的Java,簡化代碼並格式化代碼和註釋。供稿人:Graham Russell(graham at ham1.co.uk)
  • 拉請求#332 - 爲常規單元測試添加spock框架。供稿人:Graham Russell(graham at ham1.co.uk)
  • Pull請求#334 - 使用默認配置從IntelliJ中啓用JUnit測試的運行。供稿人:Graham Russell(graham at ham1.co.uk)
  • 拉請求#335 - 刪除了functions.util。*,由於它們彷佛沒有被使用(多年)。供稿人:Graham Russell(graham at ham1.co.uk)
  • 錯誤61867 - 拉請求#345 - 更新到最新的checkstyle(v8.5),爲checkstyle添加了更多規則,包括檢查測試文件和更多文件類型。供稿人:Graham Russell(graham at ham1.co.uk)
  • 拉請求#350 - 並行單元測試。供稿人:Graham Russell(graham at ham1.co.uk)
  • 錯誤61966 - 在jenkins中設置測試結果分析器
  • 拉請求#343 - 減少文檔中某些圖像的大小。供稿人:Graham Russell(graham at ham1.co.uk)

Bug修復

HTTP採樣器和測試腳本記錄器

  • 錯誤61569 - JMS點對點測試計劃:回覆時的同步問題。供稿人:Igor Panainte(gain上的panainte.i)

其餘採樣器

  • 錯誤61698 - 測試操做:選擇中止,能夠運行測試操做後的採樣器
  • 錯誤61707 - 測試操做:選擇暫停時忽略目標,所以應禁用它
  • 錯誤61827 - JMSPublisher:不要在文件末尾添加新行。供稿人:Graham Russell(graham at ham1.co.uk)

控制器

  • 錯誤61556 - 澄清在IfController和groovy $ {} var使用的文檔性能影響由Justin McCartney供稿(be_strew at yahoo.co.uk)
  • 錯誤61713 - 測試片斷具備更改控制器和插入父項的選項。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61965 - 模塊和包含控制器不該容許在其上下文中添加無心義的元素。
  • 錯誤62062 - 吞吐量控制器:當吞吐量= 0(總執行次數或執行百分比)時觸發StackOverFlowError由Artem Fedorov(artze.fedorov在blazemeter.com)部分實施並由BlazeMeter Ltd.提供。

聽衆

  • 錯誤61742 - BackendListener:用於修復默認值backend_graphite.send_interval
  • 錯誤61878 - BackendListener:NPE若是BackendListenerClient#getDefaultParameters返回null
  • 錯誤61950 - 查看結果樹:Content-Type audio / mpegurl被錯誤地視爲二進制

定時器,斷言,配置,預處理器和後處理器

  • 錯誤61716 - 標題管理器:當從Firefox或Chrome空間粘貼標題時,將引入做爲第一個值的字符

功能

  • 錯誤61588 - 爲__RandomDate()函數提供更好的日誌消息
  • 錯誤61619 -在功能幫助對話框中,1 功能不顯示默認參數
  • 錯誤61628 - 若是拆分字符串有空分隔符,則不使用默認分隔符
  • 錯誤61752 - __RandomDate:函數不容許缺乏用於變量名的最後一個參數

國際化

報告/儀表板

  • 錯誤61807 - Web報告:修復getTop5ErrorMetrics中的錯誤供稿人:Graham Russell(graham at ham1.co.uk)
  • 錯誤61900 - 報告生成器:若是分隔符是像|的正則表達式保留字符,則報告生成失敗
  • 錯誤61925 - CsvSampleReader不會在nextSample()中增長行。供稿人:Graham Russell(graham at ham1.co.uk)
  • 錯誤61956 -報告生成:-f-forceDeleteResultFile選項不起做用。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61899 - 報告生成:當jmeter.save.saveservice.print_field_names爲false且設置sample_variables時,報告生成失敗。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61962 - 延遲Vs請求和響應時間Vs請求圖表不超過1000 RPS。供稿人:Ubik Load Pack(ubikloadpack.com支持)

通常

  • 錯誤61661 -避免因爲3啓動/關機的問題RD黨線程監聽器插件拋出的RuntimeException
  • 錯誤61625 - BeanInfo中使用的文件編輯器在全部LAF下表現奇怪,對CSVDataSet,JSR223,BSF,Beanshell Element有影響
  • 錯誤61844 - Maven pom.xml:測試中使用的庫應該有範圍測試
  • 錯誤61842 - 保存沒有更改會致使保存和重複,相同的備份文件

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • Igor Panainte(gain上的panainte.i)
  • Emilian Bold(來自apache.org的emi)
  • Ubik Load Pack
  • 賈斯汀麥卡特尼(be_strew at yahoo.co.uk)
  • Vincent Herilier(https://github.com/vherilier)
  • Aleksei Balan(gmail.com的abalanonline)
  • 格雷厄姆羅素(graham at ham1.co.uk)
  • orimarko在gmail.com
  • Artem Fedorov(artze at blazemeter.com)
  • BlazeMeter有限公司
  • Benny van Wijngaarden(在smaragd-it.nl的benny)
  • Matthew Buckett(https://github.com/buckett)
  • Helly Guo(https://github.com/hellyguo)
  • Peter Doornbosch(https://bitbucket.org/pjtr/)
  • Jeremy Arnold(jeremy at arnoldzoo.org)
  • Vladimir Sitnikov(gmail.com的sitnikov.vladimir)
  • Konstantin Kalinin(hotmail.com的kkalinin)

咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

  • Stackoverflow上的user7294900(gmail.com上的orimarko)

若是咱們遺漏了其餘人,請道歉。

已知問題和解決方法

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 綠色框左側顯示的數字是活動線程數/線程總數,線程總數僅適用於本地運行的測試,不然將顯示0(參見 錯誤55510)。
  • 請注意,在某些Windows系統下,您可能會遇到如下警告:
    java.util.prefs.WindowsPreferences
    警告:沒法在root 0處打開/建立prefs根節點Software \ JavaSoft \ Prefs x80000002。Windows RegCreateKeyEx(...)返回錯誤代碼5。
    
    修復是以管理員身份運行JMeter,它將爲您建立註冊表項,而後您能夠做爲普通用戶從新啓動JMeter,您將再也不有警告。
  • 您可能會遇到如下錯誤:
    java.security.cert.CertificateException:證書不符合算法約束
    若是您在具備SSL證書(自己或其信任鏈中的SSL證書之一)的網站上使用MD2(如md2WithRSAEncryption)或大小低於1024位的SSL證書運行HTTPS請求此錯誤與Java 8+中加強的安全性有關。 
    要容許您執行HTTPS請求,能夠經過編輯Java jdk.certpath.disabledAlgorithms屬性來降級Java安裝的安全性。根據您的狀況,刪除MD2值或大小約束。 
    此屬性在此文件中:
    JAVA_HOME / JRE / lib / security中/ java.security
    有關詳細信息,請參閱 錯誤56357
  • 在Mac OSX下,因爲鏡像對數字的影響,聚合圖表將顯示錯誤的值。這是因爲已知的Java bug,請參閱Bug JDK-8065373 。修復方法是使用JDK8_u45或更高版本。
  • 查看結果樹可能沒法在HTML呈現器下顯示某些HTML代碼,請參閱 錯誤54586這是因爲已知的Java錯誤沒法解析row / col屬性中的「 px 」單位。請參閱Bug JDK-8031109 修復方法是使用JDK9 b65或更高版本。
  • 使用鍵盤進行JTable選擇(SHIFT  +  向上/向下)在Mac OSX上徹底沒法使用Java 7。這是因爲已知的Java錯誤JDK-8025126 修復是使用JDK 8 b132或更高版本。

版本3.3

摘要

新的和值得注意的

 
JMeter尚不支持JAVA 9,下一個JMeter版本將支持它,您能夠在  Bug 61529中 幫助並跟蹤此項目的進度
 
 
建議使用JAVA 8的最後一個次要版本以免遇到任何JDK錯誤。
 

核心改進

HTTP Sampler如今支持Brotli解壓縮。

CacheManager如今徹底支持Vary標頭。

InfluxDB BackendListener如今支持經過UDP協議將結果發送到InfluxDB。

它還獲得了加強,能夠經過每一個事務的響應代碼和消息發送錯誤數

 

TCP Sampler如今能夠計算延遲,參見 Bug 60156

將依賴項升級到上一個可用版本,從而帶來性能改進和錯誤修復

繼續提升咱們的代碼質量和測試覆蓋率。請參閱質量報告

UX改進

爲了更好地支持HiDPI,已經作了更多的工做。

一些在下降View Results Tree的內存使用量方面工做的錯誤已獲得修復。

常量DEFAULT_IMPLEMENTATION已從CookieManager中刪除,由於它失去了它的目的,刪除了上一版本中的備用HTTP客戶端實現

經過爲驅動程序和驗證查詢添加選擇框,JDBC Sampler UX獲得了改進。

 

若是Controller和While Controller UX已獲得改進

 

報告/儀表板改進

添加了一個新的「幫助」菜單項,以簡化報告生成的配置。

文檔改進

收集有關不清楚文檔的反饋。

功能

功能助手對話框:添加了一個顯示執行結果的新字段。

 

新功能:

  • __timeShift - 以指定的秒/分鐘/小時/天數添加各類格式的日期。
  • __RandomDate - 在特定日期範圍內生成隨機日期。

不兼容的變化

  • 在InfluxDbBackendListenerClient中,statut屬性已重命名爲status
  • 在CookieManager中,DEFAULT_POLICYDEFAULT_IMPLEMENTATION常量如今是私有的。
     
    若是您使用 ignorecookies與HC3CookieHandler(<3.1的JMeter)的配置將被重置,確保你把它放回去。
  • JMeter不會在默認響應超過10 MB時截斷。若是要啓用此截斷,請參閱屬性httpsampler.max_bytes_to_store_per_request
  • org.apache.jmeter.protocol.tcp.sampler.TCPClient.read(InputStream)已被棄用,或者org.apache.jmeter.protocol.tcp.sampler.TCPClient.read(InputStream,SampleResult),確保你更新你的實現可以計算延遲,請參閱 錯誤60156

刪除了元素或功能

改進

HTTP採樣器和測試腳本記錄器

  • 錯誤61056 - HTTP:支持brotli解碼
  • 錯誤61135 - CookieManager:Drop Implementation選擇框和清理類
  • 錯誤61492 - HTTP(S)測試腳本記錄器:添加在GUI中更改proxy.pause值的可能性

其餘採樣器

  • 錯誤61320 - 測試操做:默認狀況下將持續時間設置爲0
  • 錯誤61504 - JDBC鏈接配置:默認狀況下,將最大鏈接數設置爲0
  • 錯誤61505 - JDBC鏈接配置:默認狀況下將「驗證查詢」設置爲以使用JDBC驅動程序的isValid方法
  • 錯誤61506 - JDBC鏈接配置:爲「驗證查詢」屬性添加主數據庫驗證查詢的列表
  • 錯誤61507 - JDBC鏈接配置:爲主數據庫添加「JDBC驅動程序類」屬性的JDBC驅動程序類名稱列表
  • 錯誤61525 - 操做系統進程採樣器:向命令和工做目錄字段添加瀏覽器按鈕
  • 錯誤60156 - TCPSampler:未測量TCP採樣器的延遲。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61039 - CSV數據集配置:將「瀏覽器」按鈕添加到「文件名」字段
  • 錯誤61527 - CSV數據集配置:爲文件編碼屬性添加主文件編碼值列表

控制器

  • 錯誤61131 - IfController和WhileController:改進UX

聽衆

  • 錯誤 61167 - InfluxdbBackendListener:按響應代碼和每一個事務的消息添加錯誤數
  • 錯誤61068 - 在啓動測試時引入屬性resultcollector.action_if_file_exists來控制彈出窗口「文件已存在」
  • 錯誤61457 - InfluxDB後端監聽器客戶端:支持經過UDP協議將結果發送到InfluxDB。部分基於 Pull請求#302- 由Junlong Wu(github id mybreeze77)

定時器,斷言,配置,預處理器和後處理器

功能

  • 錯誤61040 - 添加時移功能
  • 錯誤61126 - 功能助手對話框:添加顯示執行結果的字段
  • 錯誤61508 - 在特定日期範圍函數中添加隨機日期

國際化

  • 錯誤61509 - 針對Counter元素的標籤start和max的更好的標籤/翻譯/文檔

報告/儀表板

  • 錯誤61481 - 幫助菜單項導出Web報告的事務

通常

  • ActionRouter中查找類時,回退到jar的位置,從中加載ActionRouter由Emilian Bold提供(emi在apache.org)
  • 錯誤61510 - 將「最大鏈接數」設置爲0,進入「JDBC負載測試模板」的「JDBC鏈接配置」
  • 錯誤61399 - 使一些bin和extras腳本與Shellcheck兼容。供稿人:Wolfgang Wagner(來自hotmail.com的internetwolf2000)

非功能性變化

  • 更新爲groovy 2.4.12(從2.4.10開始)
  • 更新爲咖啡因2.5.5(從2.4.0開始)
  • 更新爲commons-jexl3 3.1(從3.0開始)
  • 更新爲ph-css 5.0.4(自5.0.3起)
  • 更新爲ph-commons 8.6.6(從8.6.0開始)
  • 更新爲log4j2 2.8.2(從2.8.1開始)
  • 更新到xmlgraphics-commons 2.2(從2.1開始)
  • 更新爲jodd 3.8.6(從3.8.1開始)
  • 更新到xstream 1.4.10(從1.4.9開始)
  • 更新到Apache Tika 1.16(從1.14開始)
  • 更新到jsoup-1.10.3(從1.10.2開始)
  • 更新爲commons-lang3 3.6(來自3.5)
  • 更新到json-path 2.4.0(從2.2.0開始)
  • 更新爲httpcore 4.4.7(從4.4.6開始)
  • 錯誤61438 - 將包的加密簽名從sha-1更改成sha-512

Bug修復

HTTP採樣器和測試腳本記錄器

  • 錯誤61384 - 不要在封閉的multipart / form-data標頭上設置charset 它激怒了一些服務器。
    在重構使用更新的http客戶端API時,有時會添加charset。有關 詳細信息,請參閱 錯誤56141
  • 錯誤61456 - 使用JMeter和奇怪的Basic Auth Authorization標頭錄製時的java.lang.ArrayIndexOutOfBoundsException
  • 錯誤61395 - 大型服務器響應截斷可能會影響錄製

其餘採樣器

  • 錯誤60889 - 因爲Connection#toString調用響應頭,JMeter JDBC示例在使用MySQL JDBC進行測試時調用SELECT USER()
  • 錯誤61259 - JDBC請求:自JMeter 3.0以來,當JDBC自動提交爲false時,每次執行Request時都會發生回滾語句。部分由Liu XP提供(sina.com上的liu_xp2003)
  • 錯誤61319 - 修復迴歸:未指定附件時,SMTP採樣器沒法發送郵件。

控制器

  • 錯誤61375 - 在解析靜態主機表中的條目時,使用系統DNS解析程序做爲最後的手段。

聽衆

  • 錯誤61005 - 查看結果樹 - 瀏覽器響應數據未清除
  • 錯誤61121 - InfluxdbBackendListenerClient:只發送全部百分位數,而不是KOOK
  • 錯誤60961 - 添加新元素時,嘗試在「查看結果樹」中保持所選元素和擴展元素的狀態。
  • 錯誤61198 - 當包含的腳本還包含Backend Listener時,Backend Listener在主腳本中沒法正常工做
  • 錯誤61493 - 最大/最小線程在Graphite和InfluxDB後端偵聽器中互換

定時器,斷言,配置,預處理器和後處理器

  • 錯誤58743 - 請求#293 - 使用兩個或更多實例時,沒法保存TableEditor。錯誤修正由Emilian Bold提供(emi at apache.org)
  • 錯誤61314 - HTTP URL重寫修飾符不替換http sampler中的現有jsessionid,但將其添加到最後
  • 錯誤61336 - BeanShell斷言:中文翻譯錯誤

功能

  • 錯誤61258 - 在函數幫助程序對話框中兩次提到StringFromFile函數
  • 錯誤61260 - 儘管XPath檢查程序找到匹配, __ XPath函數返回null
  • 錯誤58876 - TestPlanName函數爲新保存的測試計劃返回null,並使用先前打開的測試計劃做爲新計劃

國際化

報告/儀表板

  • 錯誤61129 - 報告/儀表板:若是響應代碼爲空但存在failureMessage,則錯誤和前5個錯誤不許確。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤61151 - 報告/儀表板:採樣器和錯誤的前5個錯誤:若是斷言包含html代碼,則隱藏html部分

通常

  • 錯誤60743 - 中止/關閉測試可能會因HTTPCORE-446而產生死鎖,由HttpCore升級到4.4.7修復
  • 錯誤60994 - 修復評論或日誌消息中的一些拼寫錯誤。 拉請求#289 拉請求#290 -
  • 錯誤61011 - 替換事件計數不正確(路徑和主機替換計數兩次)
  • 錯誤61026 - 沒法運行程序「keytool」:在GUI模式下啓動JMeter 3.2時,CreateProcess錯誤= 2
  • 錯誤61054 - JORPhanUtils中的無限循環#replaceAllWithRegex當替換中包含正則表達式時
  • 錯誤60995 - HTTP測試腳本記錄器:在一些L&F下,端口字段很是小
  • 錯誤61073 - HTTP(S)測試腳本記錄器面板在HiDPI屏幕上有一些不良大小的字段或Linux / XWayland上的GTK + L&F
  • 錯誤57958 - 若是線程中止/從新啓動,則修復未生成的事務樣本。由Artem Fedorov(blazemeter.com上的artem)實施,由BlazeMeter Ltd.提供。
  • 錯誤61050 - 在調用JMeterUtils #getResString時更優雅地處理未初始化的RessourceBundle 
  • 錯誤61100 - Windows上的GC日誌文件名無效
  • 錯誤57962 - 容許在從屬模式下的全部偵聽器中使用變量(僅來自用戶定義的變量)
  • 錯誤61270 - 在HiDPI下讀取的文本區域中的固定寬度字體過小(用戶手冊錯誤)
  • 錯誤61292 - 使報告中的樣本處理更加健壯。
  • 錯誤61359 - 從Tree中剪切元素時,測試計劃未標記爲髒
  • 錯誤61380 - JMeter關閉使用計時器釋放雷鳴般的中斷採樣器羣
  • 錯誤57055 - CheckDirty.doAction應清除SUB_TREE_SAVED的previousGuiItems

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • Anass Benomar(umanis.com的abenomar,github的Mithrandir0407)
  • Anthony Kearns(anthony.kearns atrightside.co)
  • Emilian Bold(來自apache.org的emi)
  • Liu XP(sina.com上的liu_xp2003)
  • Ubik Load Pack
  • 沃爾夫岡·瓦格納(hotww上的internetwolf2000)
  • 吳俊龍(github id mybreeze77)

咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

  • Liu XP(sina.com上的liu_xp2003)
  • Alexander Podelko(yahoo.com上的apodelko)

若是咱們遺漏了其餘人,請道歉。

已知問題和解決方法

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 綠色框左側顯示的數字是活動線程數/線程總數,線程總數僅適用於本地運行的測試,不然將顯示0(參見 錯誤55510)。
  • 請注意,在某些Windows系統下,您可能會遇到如下警告:
    java.util.prefs.WindowsPreferences
    警告:沒法在root 0處打開/建立prefs根節點Software \ JavaSoft \ Prefs x80000002。Windows RegCreateKeyEx(...)返回錯誤代碼5。
    
    修復是以管理員身份運行JMeter,它將爲您建立註冊表項,而後您能夠做爲普通用戶從新啓動JMeter,您將再也不有警告。
  • 您可能會遇到如下錯誤:
    java.security.cert.CertificateException:證書不符合算法約束
    若是您在具備SSL證書(自己或其信任鏈中的SSL證書之一)的網站上使用MD2(如md2WithRSAEncryption)或大小低於1024位的SSL證書運行HTTPS請求此錯誤與Java 8+中加強的安全性有關。 
    要容許您執行HTTPS請求,能夠經過編輯Java jdk.certpath.disabledAlgorithms屬性來降級Java安裝的安全性。根據您的狀況,刪除MD2值或大小約束。 
    此屬性在此文件中:
    JAVA_HOME / JRE / lib / security中/ java.security
    有關詳細信息,請參閱 錯誤56357
  • 在Mac OSX下,因爲鏡像對數字的影響,聚合圖表將顯示錯誤的值。這是因爲已知的Java bug,請參閱Bug JDK-8065373 。修復方法是使用JDK8_u45或更高版本。
  • 查看結果樹可能沒法在HTML呈現器下顯示某些HTML代碼,請參閱 錯誤54586這是因爲已知的Java錯誤沒法解析row / col屬性中的「 px 」單位。請參閱Bug JDK-8031109 修復方法是使用JDK9 b65或更高版本。
  • 使用鍵盤進行JTable選擇(SHIFT  +  向上/向下)在Mac OSX上徹底沒法使用Java 7。這是因爲已知的Java錯誤JDK-8025126 修復是使用JDK 8 b132或更高版本。

版本3.2

摘要

新的和值得注意的

重要變動

JMeter如今須要Java 8.確保使用最新版本。

JMeter的日誌記錄已遷移到SLF4J和Log4j的2這將影響的配置和3 第三方插件,見下面的「日誌記錄更改」

從JMeter版本3.2開始,查看結果樹中的結果數量默認限制爲500個條目。若是須要更多條目,則必須將屬性view.results.tree.max_results設置爲更高的值,若是不想施加任何限制,則必須設置0您能夠在bin / user.properties中設置該屬性。可在此處找到更多信息

核心改進

    • JMeter如今提供了一個與InfluxDB接口的新BackendListener實現。此實現經過其HTTP API使用異步HTTP調用向InfluxDB發送數據, 併爲您提供帶註釋的如下圖形:
    • DNS緩存管理器如今有一個表容許靜態主機解析。
    • 如今,JMS Publisher和Subscriber容許在暫停時從新鏈接錯誤。
    • 如今,全部類型的消息都支持JMS Publisher中的變量。添加文件的編碼類型以解析其內容

  • XPath Extractor如今容許經過索引或全部匹配隨機提取。
  • 響應斷言如今容許處理請求標頭,提供「OR」組合並具備更好的單元格渲染器
  • JMeter如今使用Oracle Nashorn Javascript引擎而不是Rhino。這樣能夠更快地執行Javascript。
  • HTTP HC4實現如今默認啓用搶佔式基自己份驗證
  • CSS中的嵌入式資源下載已獲得改進,以免無用的重複解析來查找資源
  • 自從Sonar在項目上進行設置以來,已經完成了關於代碼質量和代碼覆蓋率測試的重要工做。你能夠在這裏看到聲納報告

UX改進

  • 運行測試時,GUI如今響應速度更快,對內存使用的影響更小,這是因爲樣本結果監聽器的數量受到限制以及GUI更新方式的從新設計
  • HTTP請求GUI已經簡化,爲參數和正文提供了更多的位置。
  • HTTP(S)測試腳本記錄器已經簡化和澄清。
  • 一個替代的功能已經被添加到搜索功能,容許在某些元素替換。
     
    ReplaceAll不會對全部元素進行替換,它會在
    如下狀況下進行替換- HeaderManager:值的替換
    - Http請求:參數,路徑和主機中的替換
  • 查看結果樹如今提供了一個更新的瀏覽器渲染器,它須要JavaFX。
  • 您如今能夠經過上下文菜單添加思考時間,這將在所選節點的採樣器和事務控制器之間添加思考時間。
  • 您如今能夠將命名策略應用於事務控制器的子項。存在默認策略,但您能夠經過org.apache.jmeter.gui.action.TreeNodeNamingPolicy實現本身的策略 並配置屬性naming_policy.impl
  • 每列的排序已添加到表,結束報告,聚合報告和聚合圖元素中的查看結果中。

報告/儀表板改進

  • 對統計數據進行了重組以澄清報告:
  • 如今能夠根據正則表達式或樣本名稱自定義每一個事務的APDEX閾值。下面的示例將對樣本樣本(\\ d +),sampleA和scenarioB應用不一樣的閾值,而不是默認閾值(500和1500表示知足和容忍的閾值):
    jmeter.reportgenerator.apdex_satisfied_threshold = 500
    jmeter.reportgenerator.apdex_tolerated_threshold = 1500
    jmeter.reportgenerator.apdex_per_transaction =樣品(\\ d +):1000 | 2000; \
        sampleA:3000 | 4000; \
        scenarioB:5000 | 6000
    

文檔改進

  • PDF文檔已遷移並更新爲HTML用戶手冊

不兼容的變化

  • JMeter如今至少須要運行Java 8版本。
  • JMeter日誌記錄已遷移到SLF4J和Log4j 2,這涉及配置完成方式的更改。JMeter如今依賴於log4j2.xml文件中的標準 Log4j 2配置 有關更多詳細信息,請參閱下面的「 記錄更改」部分。 
  • 從LogKit遷移到SLF4J後,如下jar已被刪除(參見 Bug 60589):
    • ApacheJMeter_slf4j_logkit.jar
    • 阿瓦隆框架-4.1.4.jar
    • 阿瓦隆框架-4.1.4.jar
    • 共享記錄-1.2.jar
    • 神劍記錄器-1.1.jar
    • logkit-2.0.jar
  • 公地httpclient的-3.1.jar的HC3.1支持下跌後已被刪除(見 的Bug 60727
  • JMeter如今經過-Djava.security.egd = file:/ dev / urandom設置安全隨機算法
  • 當發生錯誤時,Process Sampler如今返回錯誤代碼500。它先前返回一個空值。
  • org.apache.jmeter.protocol.http.sampler.HTTPHCAbstractImpl中,兩個受保護的靜態字段(localhostnonProxyHostSuffixSize)已重命名爲(LOCALHOSTNON_PROXY_HOST_SUFFIX_SIZE)以遵循靜態字段命名約定
  • JMeter如今默認使用Oracle Nashorn引擎而不是Mozilla Rhino來得到更好的性能。除非您使用某些高級功能,不然不會產生任何影響。您能夠經過設置屬性javascript.use_rhino = true恢復爲Rhino 您能夠閱讀此遷移指南,瞭解有關Nashorn的更多詳細信息。 Bug 60672
  • 錯誤60729 - 隨機變量配置元素如今容許最小==最大值。之前版本在最小值==最大值時記錄錯誤,而且未設置已配置的變量。
  • 錯誤60730 - JSON PostProcessor如今設置_ALL變量(假設已經檢查了Compute concatenation var),即便JSON路徑只匹配一次。在這種狀況下,之前的版本沒有設置_ALL變量。

刪除了元素或功能

  • 做爲 Bug 60727的一部分,SOAP / XML-RPC請求已被刪除使用HTTP Request元素做爲替換。請參閱構建WebService測試計劃
  • 錯誤60423 - 刪除監視器結果監聽器
  • 刪除已棄用的類org.apache.jmeter.protocol.system.NativeCommand
  • 刪除已棄用的類org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui
  • 刪除已棄用的類org.apache.jmeter.testelement.TestListener
  • 刪除已棄用的類org.apache.jmeter.reporters.FileReporter
  • 刪除不推薦使用的類org.apache.jmeter.protocol.http.modifier.UserSequence
  • 刪除不推薦使用的類org.apache.jmeter.protocol.http.parser.HTMLParseError
  • 刪除未使用的方法org.apache.jmeter.protocol.http.control.HeaderManager#getSOAPHeader 和org.apache.jmeter.protocol.http.control.HeaderManager #setSOAPHeader(Object)
  • org.apache.jmeter.protocol.http.util.Base64Encode已被棄用,您能夠使用java.util.Base64做爲替代

記錄更改

JMeter的日誌記錄已遷移到SLF4J和Log4j的2.這會影響日誌配置和3 第三方插件(若是他們使用JMeter的日誌記錄)。如下部分描述了須要進行哪些更改。

設置日誌記錄級別和日誌文件

能夠使用-L參數在命令行上更改缺省日誌記錄級別一樣,-l參數可用於更改日誌文件的名稱。可是,log_level屬性再也不起做用。

默認日誌記錄級別和文件名在啓動目錄log4j2.xml配置文件中定義(一般爲JMETER_HOME / bin

 

 
若是須要以編程方式從Groovy代碼或Beanshell更改級別,則須要執行如下操做:
    import org.apache.logging.log4j.core.config.Configurator; final String loggerName = te.getClass()。getName(); // te是一個JMeter類
    Configurator.setAllLevels(loggerName,Level.DEBUG); 
    
 

 

更改3 黨的插件記錄

 

 
第三方插件應該將他們的日誌代碼從logkit遷移到slf4j。這很容易,能夠經過替換:
        import org.apache.jorphan.logging.LoggingManager;
        import org.apache.log.Logger;
        private static final Logger log = LoggingManager.getLoggerForClass();
    
經過:
        import org.slf4j.Logger;
        import org.slf4j.LoggerFactory;
        private static final Logger log = LoggerFactory.getLogger(YourClassName.class);
    
 

 

改進

HTTP採樣器和測試腳本記錄器

  • 錯誤59934 - 修復CssParser中的競爭條件。基於Jerome Loisel的補丁(loisel.jerome在gmail.com)
  • 錯誤60543 - HTTP請求/ Http請求默認UX:移至高級面板超時,實施,代理。由Philippe Mouawad(p.mouawad at ubik-ingenierie.com)實施,由Ubik Load Pack提供(ubikloadpack.com支持)
  • 錯誤60548 - HTTP請求:容許上面板摺疊
  • 錯誤57242 - HTTP受權不是使用HttpClient4預先設置的
  • 錯誤60727 - 刪除commons-httpclient-3.1和相關元素。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60790 - HTTP(S)測試腳本記錄器:改進證書過時信息,並具備更好的啓動/中止UX
  • 錯誤60888 - HttpRequest:添加選項以容許重試全部請求,包括NON Idempotent HTTP方法
  • 錯誤60896 - HTTP(S)測試腳本記錄器:經過減小屏幕上的屬性數量來改善UX

其餘採樣器

  • 錯誤60740 - 基於 Pull請求#241 - 支持全部JMS消息(字節,對象,...)和源(文件,文件夾)的變量由Maxime Chassagneux供稿(gime上的maxime.chassagneux)。
  • 錯誤60585 - JMS Publisher和JMS訂閱服務器:容許從新鏈接錯誤並在錯誤之間暫停。基於 Pull請求#240 - 來自Logan Mauzaize(logan.mauzaize at gmail.com)和Maxime Chassagneux(maxime.chassagneux at gmail.com)。
  • 拉請求#259 - - 重構並從新格式化SmtpSampler。供稿人:Graham Russell(graham at ham1.co.uk)

控制器

  • 錯誤60672 - JavaScript函數/ IfController:默認狀況下使用Nashorn引擎

聽衆

  • 錯誤60144 - 查看結果樹:添加更新的瀏覽器渲染器以替換舊的渲染
  • 錯誤60542 - 查看結果樹:容許上面板摺疊。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤52962 - 容許按列對錶,結束報告,聚合報告和聚合圖中的查看結果進行排序。基於 Pull請求#245 - 由Logan Mauzaize(logan.mauzaize at gmail.com)和Maxime Chassagneux(maxime.chassagneux at gmail.com)。
  • 錯誤60590 - BackendListener:將Influxdb BackendListenerClient實現添加到JMeter。部分基於 Pull請求#246 - 由Logan Mauzaize(logan.mauzaize at gmail.com)和Maxime Chassagneux(maxime.chassagneux at gmail.com)。
  • 錯誤60591 - BackendListener:添加時間盒裝採樣。基於 Pull請求#237 - 由Logan Mauzaize(logan.mauzaize at gmail.com)和Maxime Chassagneux(maxime.chassagneux at gmail.com)。
  • 錯誤60678 - 查看結果樹:文本渲染器,搜索不該彈出「找不到文本」
  • 錯誤60691 - 查看結果樹:在Renderers(XPath,JSON Path Tester,RegExp Tester和CSS / JQuery Tester)中,下面板有時不可見,由於上面板太大而沒法調整大小
  • 錯誤60687 - 當GUI收到大量事件時,使GUI更具響應性。
  • 錯誤60791 - 查看結果樹:觸發搜索搜索功能中的輸入鍵,若是不匹配則顯示紅色背景
  • 錯誤60822 - ResultCollector不確保文件HashMap中的惟一文件名條目

定時器,斷言,配置,預處理器和後處理器

  • 錯誤60154 - 用戶參數GUI:容許在列表中上下移動行。供稿人:Murdecai777(https://github.com/Murdecai777)。
  • 錯誤60507 - 在ResponseAssertion中添加了「  」功能。基於忻隆(qq.com的298015902)的貢獻
  • 錯誤58943 - 建立更好的思考時間體驗。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60602 - XPath Extractor:添加匹配號以容許經過索引或全部匹配隨機提取
  • 錯誤60710 - XPath Extractor:當應用斷言的內容不是XML時,在View Results Tree中,提取器標記爲Red並命名爲SAXParseException。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60712 - 響應斷言:改進模式的渲染器
  • 錯誤59174 - 將包含靜態主機的表添加到DNS緩存管理器。這樣能夠使用HttpClient4進行更好的虛擬主機測試。

功能

國際化

  • 用法語改進翻譯「 save_as 」。基於Maxime Chassagneux  拉出請求#252(gime上的maxime.chassagneux)。
  • 錯誤60785 - 日語翻譯的改進。由Kimono補丁(kimono.outfit.am在gmail.com)。

報告/儀表板

  • 錯誤60637 - 改進統計表設計
  • 錯誤60112 - 報告/儀表板:添加爲每一個事務名稱自定義APDEX閾值的功能。供稿人:Stephane Leplus(s.leplus,來自ubik-ingenierie.com)

通常

  • 錯誤58164 - 在啓動loadtest以前,檢查ResultCollector偵聽器上是否已存在文件
  • 錯誤54525 - 搜索功能:經過更換功能加強它
  • 錯誤60530 - 在測試運行時添加API以建立JMeter線程。基於Logan Mauzaize(logan.mauzaize at gmail.com)和Maxime Chassagneux(gime上的maxime.chassagneux)的貢獻。
  • 錯誤60514 - 可以對事務控制器的子項應用命名約定。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60711 - 改進斷言/標題管理器/用戶參數GUI的刪除按鈕行爲/排除,包含在HTTP(S)測試腳本記錄器中
  • 錯誤60593 - 切換到G1 GC算法
  • 錯誤60595 - 在JMeter GUI的開頭添加SplashScreen。由Maxime Chassagneux供稿(gime上的maxime.chassagneux)。
  • 錯誤55258 - 從工具欄中刪除「關閉」圖標,並在菜單中添加「新建」。部分基於Sanduni Kanishka的貢獻(https://github.com/SanduniKanishka)
  • 錯誤59995 - 容許用戶使用兩個新菜單項更改字體大小,並使用jmeter.hidpi.scale.factor縮放字體。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60654 - 驗證功能:可以忽略BackendListener。由Maxime Chassagneux供稿(gime上的maxime.chassagneux)。
  • 錯誤60646 - 工做臺:默認保存
  • 錯誤60684 - 線程組:調度程序提早結束驗證,持續時間爲0或很是短。由Andrew Burton(grew的andrewburtonatwh)提供。
  • 錯誤60589 -遷移LogKit到SLF4J -降阿瓦隆,LogKit和Excalibur與3向後兼容性第三黨模塊。供稿人:Woonsan Ko(來自apache.org的woonsan)
  • 錯誤60565 - 將LogKit遷移到SLF4J - 優化日誌記錄語句。例如,消息格式args,throwable args,沒必要要的if-enabled-logging in simple等等。由Woonsan Ko提供(woonsan at apache.org)
  • 錯誤60564 - 將LogKit遷移到SLF4J - 用SLF4J替換LogKit記錄器並保留當前的LogKit綁定解決方案以向後兼容插件。供稿人:Woonsan Ko(來自apache.org的woonsan)
  • 錯誤60664 - 添加UI菜單以設置日誌級別。供稿人:Woonsan Ko(來自apache.org的woonsan)
  • 拉請求#276 - - 爲波蘭語區域設置添加了一些翻譯。供稿人:Bartosz Siewniak(gart的barteksiewniak)
  • 錯誤60792 - 建立新的「幫助」菜單項以建立線程轉儲
  • 錯誤60813 - JSR223測試元素:考慮JMeterStopTestNowException,JMeterStopTestException和JMeterStopThreadException
  • 錯誤60814 - 菜單:添加打開最近的菜單項以使最近的文件加載更明顯
  • 錯誤60815 - 從菜單中刪除「重置GUI」
  • 錯誤60886 - 構建改進以更好地在代理背後的環境中啓用構建。部分由Michael Osipov提供(michaelo at apache.org)

非功能性變化

  • 錯誤60415 - 刪除對Java 7的支持。
  • 已更新至dnsjava-2.1.8.jar(來自2.1.7)
  • 更新爲groovy 2.4.10(來自2.4.7)
  • 更新爲httpcore 4.4.6(從4.4.5開始)
  • 更新到httpclient 4.5.3(從4.5.2開始)
  • 更新爲jodd 3.8.1(來自3.7.1.jar)
  • 更新到jsoup-1.10.2(從1.10.1開始)
  • 更新爲ph-css 5.0.3(來自4.1.6)
  • 更新爲ph-commons 8.6.0(來自6.2.4)
  • 更新至slf4j-api 1.7.25(自1.7.21起)
  • 更新爲asm 5.2(來自5.1)
  • 更新爲rsyntaxtextarea-2.6.1(從2.6.0開始)
  • 更新爲commons-net-3.6(從3.5開始)
  • 更新至json-smart-2.3(來自2.2.1)
  • 更新爲accessors-smart-1.2(來自1.1)
  • 將舊的pdf教程轉換爲xml。
  • 請求#255 - - 利用Java 8(和7)功能來整理代碼。供稿人:Graham Russell(graham at ham1.co.uk)
  • 錯誤59435 - JMeterTestCase再也不支持JUnit3

Bug修復

HTTP採樣器和測試腳本記錄器

  • 錯誤60531 - HTTP Cookie管理器:更改實施不會更新Cookie策略
  • 錯誤60575 - HTTP GET請求可能有一個沒有正文的內容類型標頭。
  • 錯誤60682 - HTTP請求:因爲設置了Content-Length標頭,Get方法可能在重定向時失敗
  • 錯誤60643 - HTTP(S)測試腳本記錄器沒法正確處理重啓或中止後啓動。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60652 - HTTP PUT請求可能泄漏文件描述符。
  • 錯誤60689 - httpclient4.validate_after_inactivity沒有影響致使使用可能過期/已關閉的鏈接
  • 錯誤60690 - 「httpclient4.validate_after_inactivity」和「httpclient4.time_to_live」的默認值彼此相等使得驗證無用
  • 錯誤60758 - HTTP(s)測試腳本記錄器:數字請求可能會生成重複的數字。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤56939 - OPTIONS HTTP請求不傳遞參數
  • 錯誤60778 - Http Java Impl在SampleResult中不顯示受權標頭,即便它已被髮送
  • 錯誤60837 - 即便httpclient4.retrycount高於0 ,也不會重試GET with body,PUT
  • 錯誤60842 - 使用基於Lagarto的HTML Parser加載嵌入式資源時修剪提取的URL。
  • 錯誤60928 - Http請求:當keepalive與嵌入式資源一塊兒使用時鏈接泄漏

其餘採樣器

控制器

聽衆

  • 錯誤60648 - 若是測試很是短,GraphiteBackendListener可能會在測試結束時丟失一些指標
  • 錯誤60650 - AbstractBackendListenerClient不會在運行之間重置UserMetric
  • 錯誤60759 - 查看結果樹:搜索功能不在URL中搜索。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60859 - 保存對文件的響應:具備不一樣配置的2個元素將重疊

定時器,斷言,配置,預處理器和後處理器

  • 錯誤60438 - 請求#235 - - 在JSON Extractor中提取新變量以前清除舊變量。基於Qi Chen的補丁(qi.chensh at ele.me)
  • 錯誤60607 - 忽略DNS緩存管理器配置
  • 錯誤60729 - 隨機變量配置元素應容許最小==最大值
  • 錯誤60730 - 即便JSON路徑只匹配一次,JSON PostProcessor也應設置_ALL變量。
  • 錯誤60747 - 響應斷言:向要測試的字段添加請求標頭
  • 錯誤60763 - XMLAssertion不該該將錯誤泄漏到控制檯
  • 錯誤60797 - 暫停模式下的TestAction能夠持續超出配置的測試持續時間

功能

  • 錯誤60819 - 函數__fileToString在找不到文件時不遵照文檔合同

國際化

報告/儀表板

  • 錯誤60726 - 報告/儀表板:採樣器的前5個錯誤不得考慮系列過濾
  • 錯誤60919 - 報告/儀表板:延遲與請求和響應時間Vs請求錯誤,若是粒度不一樣於1000(1秒)

通常

  • 錯誤60775 - NamePanel ctor調用可重寫方法
  • 錯誤60428 - 當測試結束且useRegexpForSamplersList設置爲true時,JMeter Graphite Backend Listener拋出異常基於Liu XP的補丁(sina.com上的liu_xp2003)
  • 錯誤60442 - 修復build.xml中的拼寫錯誤(gavin at 16degrees.com.au)
  • 錯誤60449 - JMeter樹:節點名稱爲空時的惱人行爲
  • 錯誤60494 - 添加聲納分析任務來構建
  • 錯誤60501 - 搜索功能:檢查正則表達式時的性能問題
  • 錯誤60444 - TestHTTPMirrorThread#testSleep()的間歇性失敗供稿人:Thomas Schapitz(ts-nospam12 at online.de)
  • 錯誤60621 - maven central中的ApacheJMeter_config-3.1.jar缺乏「 report-template 」文件夾
  • 錯誤60744 - 在加載測試計劃期間重用時不會清除GUI元素,這可能會致使它們部分初始化爲新測試元素的先前狀態
  • 錯誤60812 - JMeterThread不遵照JMeterStopTestNowException的約定
  • 錯誤60857 - 若是saveservice.properties中未定義_file_encoding,則SaveService將省略XML標頭
  • 錯誤60830 - 因爲跨線程共享SimpleDateFormatter,CSV文件中的時間戳可能已損壞

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • Jerome Loisel(來自gmail.com的loisel.jerome)
  • Liu XP(sina.com上的liu_xp2003)
  • 齊辰(qi.chensh at ele.me)
  • (加入16degrees.com.au)
  • Thomas Schapitz(ts-nospam12 at online.de)
  • Murdecai777(https://github.com/Murdecai777)
  • Logan Mauzaize(gmail.com的logan.mauzaize)
  • Maxime Chassagneux(gmail.com的maxime.chassagneux)
  • 忻隆(qq.com網站298015902)
  • Ubik Load Pack
  • 格雷厄姆羅素(graham at ham1.co.uk)
  • Sanduni Kanishka(https://github.com/SanduniKanishka)
  • 安德魯伯頓(andrewburtonatwh在gmail.com)
  • Woonsan Ko(來自apache.org的woonsan)
  • Bartosz Siewniak(barteksiewniak at gmail.com)
  • 和服(kimono.outfit.am在gmail.com)
  • Michael Osipov(apache.org上的michaelo)
  • Stephane Leplus(s.leplus,來自ubik-ingenierie.com)

咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

  • Tuukka Mustonen(tumail.com的tuukka.mustonen)給了咱們不少有用的反饋,幫助解決了 Bug 60689Bug 60690
  • Amar Darisa(gmail.com的amar.darisa)幫助咱們提供了他對 Bug 60682的反饋

若是咱們遺漏了其餘人,請道歉。

已知問題和解決方法

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 綠色框左側顯示的數字是活動線程數/線程總數,線程總數僅適用於本地運行的測試,不然將顯示0(參見 錯誤55510)。
  • 請注意,在某些Windows系統下,您可能會遇到如下警告:
    java.util.prefs.WindowsPreferences
    警告:沒法在root 0處打開/建立prefs根節點Software \ JavaSoft \ Prefs x80000002。Windows RegCreateKeyEx(...)返回錯誤代碼5。
    
    修復是以管理員身份運行JMeter,它將爲您建立註冊表項,而後您能夠做爲普通用戶從新啓動JMeter,您將再也不有警告。
  • 您可能會遇到如下錯誤:
    java.security.cert.CertificateException:證書不符合算法約束
    若是您在具備SSL證書(自己或其信任鏈中的SSL證書之一)的網站上使用MD2(如md2WithRSAEncryption)或大小低於1024位的SSL證書運行HTTPS請求。此錯誤與Java 8+中加強的安全性有關。 
    要容許您執行HTTPS請求,能夠經過編輯Java jdk.certpath.disabledAlgorithms屬性來降級Java安裝的安全性。根據您的狀況,刪除MD2值或大小約束。 
    此屬性在此文件中:
    JAVA_HOME / JRE / lib / security中/ java.security
    有關詳細信息,請參閱 錯誤56357
  • 在Mac OSX下,因爲鏡像對數字的影響,聚合圖表將顯示錯誤的值。這是因爲已知的Java bug,請參閱Bug JDK-8065373 。修復方法是使用JDK8_u45或更高版本。
  • 查看結果樹可能沒法在HTML呈現器下顯示某些HTML代碼,請參閱 錯誤54586這是因爲已知的Java錯誤沒法解析row / col屬性中的「 px 」單位。請參閱Bug JDK-8031109 修復程序是使用JDK9 b65或更高版本(但請注意,Java 9還沒有通過JMeter認證)。
  • 使用鍵盤進行JTable選擇(SHIFT  +  向上/向下)在Mac OSX上徹底沒法使用JAVA 7。這是因爲已知的Java錯誤JDK-8025126 修復是使用JDK 8 b132或更高版本。

版本3.1

摘要

新的和值得注意的

改進報告/儀表板

儀表板已經改進,有3個新圖表和1個彙總表:

  • 鏈接時間圖表:
  • 隨時間變化的響應時間百分比(成功響應)圖:
  • 響應時間概述圖:
  • 採樣表的前5個錯誤:
  • 有關錯誤表中錯誤的更多詳細信息
  • 添加到統計表的平均響應時間:
  • Active Threads表如今堆棧線程:

新指標

引入了 一個新的sent_bytes指標,用於報告發送給服務器的字節數。此版本中默認啓用了 
另外一個度量標準connect_time

處理大回應

JMeter如今可以處理大於2GB的指標響應,限制已增長到9223372 TB。
爲了處理如此大的響應,它如今也能夠截斷部分響應以免過分內存。請參閱httpsampler.max_bytes_to_store_per_request屬性。

新的__groovy功能

介紹一個啓用Groovy函數的新函數__groovy這可能很方便,由於當在高度併發的測試計劃中使用時,JavaScript可能很是慢(對於BeanShell而言相同)。

使用Groovy做爲JSR-223元素的默認值

Groovy如今被設置爲JSR-223元素的默認語言。若是要使用其餘受支持的語言,則必須作出明確的選擇。

 
默認狀況下,默認狀況下不會檢查 緩存編譯腳本(若是可用),儘管咱們建議您檢查它並確保不使用$ {varName}語法來訪問JMeter變量,而是使用vars.get(「varName」)
 

結果樹視圖中的格式化HTML源視圖

如今能夠查看結果樹視圖中的HTML源代碼的格式。若是網頁的代碼已被刪除全部多餘的空白,這很是有用。

新格式化的HTML源視圖新格式化的HTML源視圖

可以使用新屬性更新測試計劃中的全部計時器

引入了 一個新屬性timer.factor = 1.0f,它容許您將高斯,均勻和泊松定時器計算的暫停時間乘以它。這使您能夠從一個地方更新Think Times,從而提升工做效率。

核心改進

  • 各類GUI和UX修復程序
  • 內存使用改進
  • JDBC Request如今可以返回Blob / Clob並計算延遲和鏈接時間
  • 3.0中引入的CSS Parsing已經過引入解析緩存進行了優化
  • HTTP請求如今可以在GET請求中處理正文,這對於彈性搜索請求頗有用。

文檔改進

  • 文檔審查和改進,以便於啓動
  • 屬性參考文檔部分

不兼容的變化

  • 此版本中引入了CSS Parsing of URL緩存,默認狀況下已啓用。它由屬性css.parser.cache.size控制能夠經過將其值設置爲0來禁用它 Bug 59885
  • ThroughputController默認值已更改。如今默認值是Percent Executions,它是全局的,再也不是每一個用戶。Bug 60023
  • 從版本3.1開始,HTML報告在計算度量時忽略空事務控制器(可能由If Controller吞吐量控制器生成)。這提供了更準確的指標
  • 從版本3.1開始,Summariser 在計算實時統計信息時忽略事務控制器生成的SampleResults ,請參閱 錯誤60109
  • 自從3.1版本,使用剝離模式時(默認狀況下StrippedBatch使用),響應也將被剝離未能SampleResults,你能夠經過設置恢復這之前的行爲sample_sender_strip_also_on_error =假user.properties,看到 錯誤60137
  • 從版本3.1開始,jmeter.save.saveservice.connect_time屬性值爲true,表示結果的CSV文件將包含一個包含鏈接時間的附加列,請參閱 錯誤60106
  • 從版本3.1開始,隨機定時器子類(高斯隨機定時器,統一隨機定時器和泊松隨機定時器)實現接口org.apache.jmeter.timers.ModifiableTimer
  • 從3.1版開始,若是您沒有在JSR223測試元素中選擇任何語言,將使用Apache Groovy語言。 Bug 59945
  • 從版本3.1開始,CSV DataSet如今修剪變量名稱,以免在配置CSV DataSet時因爲變量名稱之間的空格而引發問題。除非您在變量名的開頭或結尾使用空格,不然這不會對您產生任何影響。 Bug 60221
  • 從版本3.1開始,HTTP請求可以在使用HttpClient4(默認)實現來處理大於2147483647字節的響應時,即2GB。爲了容許這兩個屬性被引入:
    • httpsampler.max_bytes_to_store_per_request(默認爲10MB)將控制內存中的內容。默認狀況下,JMeter只會在內存中保留前10MB的響應。若是響應大於此值並使用前10MB以後的斷言,則必須增長此值
    • httpsampler.max_buffer_size將控制用於讀取數據的緩衝區。之前JMeter使用了一個等於Content-Length頭的緩衝區,這可能致使失敗並使JMeter對錯誤應用程序的抵抗力下降,但請注意,若是您的應用程序返回Content-Length標頭更高,這可能會影響響應時間而且會產生與先前版本略有不一樣的結果比當前的默認值(65KB)
     Bug 53039

已棄用和已刪除的元素或功能

 

 
這些元素再也不出如今菜單中,若是須要,能夠修改 not_in_menu屬性。JMeter團隊建議再也不使用它們並遷移到他們的替代品。
 

 

改進

HTTP採樣器和測試腳本記錄器

  • 錯誤59882 - 減小內存分配以得到更好的吞吐量。供稿人:Benoit Wiart(b.wiart,來自ubik-ingenierie.com)經過 Pull請求#217 Pull請求#228 -
  • 錯誤59885 - 經過引入緩存優化嵌入式資源下載的CSS解析。供稿人:Benoit Wiart(b.wiart,來自ubik-ingenierie.com)經過 Pull請求#219 -
  • 錯誤60092 - 查看結果樹:將PUT主體的縮短版本添加到採樣器結果。
  • 錯誤60229 - 添加新指標:sent_bytes。由Philippe Mouawad(p.mouawad at ubik-ingenierie.com)實施,由Ubik Load Pack提供(ubikloadpack.com支持)
  • 錯誤53039 - HTTP請求:可以處理大小超過2147483647字節(即2GB)的響應
  • 錯誤60265 - HTTP請求:在「文件上載」選項卡中,您沒法調整列的大小
  • 錯誤60318 - 使用ph-css庫解析時忽略CSS警告。
  • 錯誤60358 - Http請求:容許發送HTTP GET請求的正文數據

其餘採樣器

  • 拉請求#211 - 區分JDBC採樣器的時序。使用延遲和鏈接時間。供稿人:Thomas Peyrard(thure.peyrard,murex.com)
  • 錯誤59620 - 修復「JMS Publisher→隨機文件從下面指定的文件夾」中的按鈕操做,以容許選擇目錄
  • 錯誤60066 - 處理CLOB和BLOB並在必要時將它們存儲在結果採樣器中時限制它們。

控制器

  • 錯誤59351 - 改進IncludeController的日誌/錯誤/消息。部分由Antonio Gomes Rodrigues提供(g00上的ra0077)
  • 錯誤60023 - 吞吐量控制器:使「執行百分比」和全局默認值。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60082 - 驗證模式:可以強制吞吐量控制器像設置爲100%同樣運行
  • 錯誤59349 - 在IncludeController中修改輸入文件名中的空格。
  • 錯誤60081 - 交錯控制器:添加一個選項以跨線程交替

聽衆

  • 錯誤59953 - GraphiteBackendListener:添加平均指標。部分由Maxime Chassagneux提供(gime上的maxime.chassagneux)
  • 錯誤59975 - 查看結果樹:當內容笨重時,文本渲染器會惱人地向下滾動。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60109 - Summariser:在其摘要計算中忽略TC生成的SampleResult
  • 錯誤59948 - 向查看結果樹添加格式化且理智的HTML源代碼渲染
  • 錯誤60252 - 將已發送的kbytes / s添加到「聚合報告和摘要」報告中
  • 錯誤60267 -UX:在查看結果樹中,應該能夠經過鍵入escape來關閉「配置」彈出窗口。供稿人:Ubik Load Pack(ubikloadpack.com支持)

定時器,斷言,配置,預處理器和後處理器

  • 錯誤59845 - 在調試級別而不是錯誤時記錄有關JSON路徑不匹配的消息
  • 請求#212 - 容許在HTTP受權管理器中進行多項選擇和刪除。基於Benoit Wiart(b.wiart at ubik-ingenierie.com)的補丁
  • 錯誤59816 - 請求#213 - 容許在HTTP標頭管理器中進行多項選擇和刪除。基於Benoit Wiart(b.wiart at ubik-ingenierie.com)的補丁
  • 錯誤59967 - CSS / JQuery Extractor:容許空的默認值。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤59974 - 響應斷言:添加「 從剪貼板添加」按鈕供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60050 - CSV數據集:當線程因爲此配置而退出時,在日誌中清除它
  • 錯誤59962 - 當響應代碼爲304時,緩存管理器不會更新到期日期
  • 錯誤60018 - 計時器:添加要應用於暫停的因子。部分基於Ubik Load Pack的補丁(ubikloadpack.com支持)
  • 錯誤60203 - 在XPath斷言中爲textarea使用更多可用空間。
  • 錯誤60220 - 將JSON路徑後處理器重命名爲JSON Extractor
  • 錯誤60221 - CSV數據集:修剪變量名稱
  • 錯誤59329 - 在CSVDataSet中修改輸入文件名中的空格。

功能

  • 錯誤59963 - 新函數__RandomFromMultipleVars:可以根據一個或多個變量的值計算隨機值。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤59991 - 用於評估Groovy腳本的新函數__groovy供稿人:Ubik Load Pack(ubikloadpack.com支持)

國際化

  • 拉請求#214 - 爲延遲啓動線程添加西班牙語翻譯。供稿人:AsierLostalé(openbravo.com的asier.lostale)。
  • 錯誤60348 - 爲「 另存爲」更改中文翻譯由XMeter提供(xmeter.net支持)。

報告/儀表板

  • 錯誤59954 - Web報告/儀表板:添加平均指標
  • 錯誤59956 - Web報告/儀表板:添加爲一系列數據生成圖表的功能
  • 錯誤60065 - 報告/儀表板:經過向「錯誤類型」添加響應消息來改進儀表板錯誤摘要。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60079 - 報告/儀表板:添加新的「響應時間概述」圖
  • 錯誤60080 - 報告/儀表板:添加新的「隨時間鏈接時間」圖表。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60091 - 報告/儀表板:有一個包含最小/最大和百分位圖的新報告。
  • 錯誤60108 - 報告/儀表板:在請求摘要舍入過於激進
  • 錯誤60098 - 報告/儀表板:減小「 jmeter.reportgenerator.statistic_window 」的默認值以減小內存影響
  • 錯誤60115 - 將開始/結束日期過濾器的日期格式屬性添加到報告生成器中
  • 錯誤60171 - 報告/儀表板:活動線程隨着時間的推移應該堆疊線以給出運行的線程總數
  • 錯誤60250 - 報告/儀表板:須要在HTML儀表板的統計報告中添加已發送的KB
  • 錯誤60287 - 報告/儀表板:儀表板中的採樣器表有新的Top5錯誤。由Philippe Mouawad(p.mouawad at ubik-ingenierie.com)實施,由Ubik Load Pack提供(ubikloadpack.com支持)

通常

  • 錯誤59803 - 若是 JDBC鏈接配置中給出validationQuery請使用JDBC驅動程序中的isValid()方法
  • 錯誤57493 - 爲屬性建立文檔頁面
  • 錯誤59924 - 若是是log_level,則XXX的日誌級別設置爲DEBUG XXXX屬性值包含空格,__ log函數也相同
  • 錯誤59777 - 將SLF4J綁定壓縮到本身的jar中,並使其成爲JMeter lib。
     
    若是在啓動時收到有關多個SLF4J綁定的警告。刪除Apache JMeter提供的綁定  lib / ApacheJMeter_slf4j_logkit.jar或全部其餘報告的綁定。有關更多信息,您能夠查看SLF4J本身的信息頁面。
     
  • 錯誤60085 - 刪除準備語句的緩存,由於它不適用於當前的JDBC池實現,當前的JDBC驅動程序應該支持緩存預準備語句自己。
  • 錯誤60137 - 在使用StrippedXXXX模式的分佈式測試中,也會在出錯時剝離響應
  • 錯誤60106 - 設置默認值:將「 jmeter.save.saveservice.connect_time 」 切換爲true(3.0以後)
  • 拉請求#229 - 微小的內存分配改進。供稿人:Benoit Wiart(b.wiart,來自ubik-ingenierie.com)
  • 錯誤59945 - 對於全部JSR223元素,若是未在UI上選擇腳本語言,則腳本將被解釋爲groovy腳本。
  • 錯誤60266 - 可用性/ UX:不該該關閉/退出/恢復/加載/加載最近的項目或從模板建立JMeter計劃或在測試運行時打開新項目
  • 錯誤57305 -刪除的依賴ProxyControlGuiPackage基於jarek102(gmail.com的jarek102)和Wyatt Epp(gmail.com的wyatt.epp)的補丁

非功能性變化

  • 更新到jsoup-1.10.1(從1.8.3開始)
  • 更新爲ph-css 4.1.6(來自4.1.4)
  • 更新爲tika-core和tika-parsers 1.14(來自1.12)
  • 更新爲commons-io 2.5(從2.4開始)
  • 更新爲commons-lang3 3.5(來自3.4)
  • 更新爲commons-net 3.5(來自3.4)
  • 更新爲groovy 2.4.7(從2.4.6開始)
  • 更新爲httpcore 4.4.5(從4.4.4開始)
  • 更新至slf4j-api 1.7.21(自1.7.13起)
  • 更新至rsyntaxtextarea-2.6.0(自2.5.8起)
  • 更新到xstream 1.4.9(從1.4.8開始)
  • 更新爲jodd 3.7.1(來自3.6.7.jar)
  • 更新到xmlgraphics-commons 2.1(從2.0.1開始)
  • 請求#215 - 使用新添加的方法GuiUtils#cancelEditing減小重複代碼供稿人:Benoit Wiart(b.wiart,來自ubik-ingenierie.com)
  • 拉請求#218 - 其餘清理。供稿人:Benoit Wiart(b.wiart,來自ubik-ingenierie.com)
  • 拉請求#216 - 儘量重用模式。供稿人:Benoit Wiart(b.wiart,來自ubik-ingenierie.com)
  • 錯誤60364 - 文檔測試覆蓋率。供稿人:Thomas Schapitz(ts-nospam12 at online.de)

Bug修復

HTTP採樣器和測試腳本記錄器

  • 錯誤58888 - HTTP(S)測試腳本記錄器(ProxyControl)不添加SamplerCreator返回的TestElement#createChildren()
  • 錯誤59902 - 設置httpclient.socket.https.cps屬性時Https握手失敗
  • 錯誤60084 - JMeter 3.0嵌入式資源URL以靜默方式編碼
  • 錯誤60376 - Http測試腳本記錄器:若是服務器使用deflate,則記錄可能會破壞應用程序

其餘採樣器

  • 錯誤59113 - JDBC鏈接配置:若是使用常量而不是數字,則事務隔離級別未正確設置

控制器

  • 錯誤60361 - ModuleController:若是測試計劃包含引用未阻止控制器的模塊控制器,則GUI模式下的JMeter將不會中止

聽衆

  • 錯誤 59712 - 解碼失敗時在RequestView中顯示原始查詢。基於Teemu Vesala(qemine..com上的teemu.vesala)的補丁
  • 錯誤60278 - 自2.13(以及 錯誤57514以來,聚合圖,摘要報告和聚合報告在保存的文件csv中保存的錯誤,速率和帶寬值中丟失了精度
  • 錯誤60360 - 查看結果樹:請求選項卡不顯示DELETE請求的正文

定時器,斷言,配置,預處理器和後處理器

  • 錯誤59964 - JSR223測試元素:緩存編譯的腳本(若是可用)未正確重置。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤59609 - 將JSON後處理器中提取的JSON對象格式化爲JSON。
  • 錯誤60332 - 查看結果樹:使用Windows LAF,JSON Extractor不顯示JSON路徑表達式和結果面板

功能

國際化

通常

  • 錯誤59400 - 在使用-X選項時中止時取消UnmarshalException 
  • 錯誤59607 - 當讀取大型測試計劃(大於2GB)時,JMeter崩潰。基於Felix Draxler(sap.com上的felix.draxler)的修復
  • 錯誤59621 - 報告儀表板中的錯誤計數是一次性的。
  • 錯誤59657 - 當設置了屬性jsyntaxtextarea.font.family時,僅在JSyntaxTextArea中設置字體
  • 錯誤59720 - Windows上的批處理測試文件比較失敗,由於XML文件生成爲EOL = LF
  • 代碼清理。格雷厄姆·拉塞爾(格雷厄姆在ham1.co.uk)的補丁
  • 錯誤59722 - 使用StandardCharsets減小拼寫錯誤的Charset名稱的可能性。
  • 錯誤59723 - 儘量使用jmeter.properties進行測試
  • 錯誤59726 - 用於檢查CSV標頭文本和樣本格式是否未意外更改的單元測試
  • 錯誤59889 - 在儀表板的報告中將編碼更改成UTF-8。
  • 錯誤60053 - 在非GUI模式下,在生成報告時,測試結束時會顯示Stacktrace
  • 錯誤60049 - 使用具備高延遲的定時器或具備低吞吐量的恆定吞吐量定時器時,調度程序可能須要花費大量時間才能退出,對於關閉測試也是如此
  • 錯誤60089 - 報告/儀表板:字節吞吐量隨時間推移已反轉已發送和已接收字節。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤60090 - 報告/儀表板:空事務控制器不該計入指標
  • 錯誤60103 - 報告/儀表板:請求摘要包括致使錯誤百分比的事務控制器
  • 錯誤60105 - 報告/儀表板:報告須要檢查事務控制器「 生成父樣本 」選項,修復相關問題
  • 錯誤60107 - 報告/儀表板:在StatisticSummary中,TransactionController SampleResult使總計行錯誤
  • 錯誤60110 - 報告/儀表板:在響應時間百分位數,滑塊是無用的
  • 錯誤60135 - 報告/儀表板:隨時間變化的活動線程應處於超時部分
  • 錯誤60125 - 報告/儀表板:若是默認分隔符爲\ t,則沒法生成儀表板根據Tamas Szabadi的報告(右側的tamas.szabadi)
  • 錯誤59439 - 報告/儀表板:AbstractOverTimeGraphConsumer.createGroupInfos()應該是抽象的
  • 錯誤59918 - Ant生成的HTML報告已損壞(extras文件夾)
  • 錯誤60295 - 當只找到一個元素時,JSON Extractor不會索引數組元素。基於Roberto Braga(sociale.it的roberto.braga)的補丁
  • 錯誤60299 - 帶調度程序的線程組:當結束時間過去時出現奇怪的行爲

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • Felix Draxler(sap.com上的felix.draxler)
  • Antonio Gomes Rodrigues(g00上的ra0077)
  • 格雷厄姆羅素(graham at ham1.co.uk)
  • Teemu Vesala(qentinel.com上的teemu.vesala)
  • AsierLostalé(openbravo.com的asier.lostale)
  • Thomas Peyrard(thure.peyrard在murex.com)
  • Benoit Wiart(b.wiart at ubik-ingenierie.com)
  • Maxime Chassagneux(gmail.com的maxime.chassagneux)
  • Ubik Load Pack
  • Tamas Szabadi(右側的tamas.szabadi)
  • Roberto Braga(roberto.braga at soziale.it)
  • gmail.com的jarek102
  • Wyatt Epp(wy的wyatt.epp)
  • Thomas Schapitz(ts-nospam12 at online.de)

咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

若是咱們遺漏了其餘人,請道歉。

已知問題和解決方法

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 綠色框左側顯示的數字是活動線程數/線程總數,線程總數僅適用於本地運行的測試,不然將顯示0(參見 錯誤55510)。
  • 請注意, 在某些Linux系統上存在Java中的錯誤,在運行測試用例或JMeter自己時會將其顯示爲如下錯誤:
     [java]警告:沒法刷新用戶首選項:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException:不支持:indent-number
    
    這不會影響JMeter操做。自Java 7b05以來,此問題已獲得解決。
  • 請注意,在某些Windows系統下,您可能會遇到如下警告:
    java.util.prefs.WindowsPreferences
    警告:沒法在root 0處打開/建立prefs根節點Software \ JavaSoft \ Prefs x80000002。Windows RegCreateKeyEx(...)返回錯誤代碼5。
    
    修復是以管理員身份運行JMeter,它將爲您建立註冊表項,而後您能夠做爲普通用戶從新啓動JMeter,您將再也不有警告。
  • 使用Oracle Java 7和Mac Book Pro Retina Display,JMeter GUI可能看起來很模糊。這是一個已知的Java錯誤,請參閱Bug JDK-8000629解決方法是使用Java 7 update 40運行時修復此問題。
  • 您可能會遇到如下錯誤:
    java.security.cert.CertificateException:證書不符合算法約束
    若是您在具備SSL證書(自己或其信任鏈中的SSL證書之一)的網站上使用MD2(如md2WithRSAEncryption)或大小低於1024位的SSL證書運行HTTPS請求。此錯誤與Java 7版本u16(MD2)和版本u40(證書大小低於1024位)以及Java 8的安全性增長有關。 
    要容許您執行HTTPS請求,能夠經過編輯Java jdk.certpath.disabledAlgorithms屬性來降級Java安裝的安全性。根據您的狀況,刪除MD2值或大小約束。 
    此屬性在此文件中:
    JAVA_HOME / JRE / lib / security中/ java.security
    有關詳細信息,請參閱 錯誤56357
  • 在Mac OSX下,因爲鏡像對數字的影響,聚合圖表將顯示錯誤的值。這是因爲已知的Java bug,請參閱Bug JDK-8065373 。修復方法是使用JDK7_u79,JDK8_u45或更高版本。
  • 查看結果樹可能沒法在HTML呈現器下顯示某些HTML代碼,請參閱 錯誤54586這是因爲已知的Java錯誤沒法解析row / col屬性中的「 px 」單位。請參閱Bug JDK-8031109 修復方法是使用JDK9 b65或更高版本。
  • 使用鍵盤進行JTable選擇(SHIFT  +  向上/向下)在Mac OSX上徹底沒法使用JAVA 7。這是因爲已知的Java錯誤JDK-8025126 修復是使用JDK 8 b132或更高版本。

版本3.0

摘要

新的和值得注意的

測試計劃建立和調試改進

查看結果樹中的新搜索功能容許在請求/響應/標題/ Cookies /中搜索文本/正則表達式...這將簡化關聯和測試計劃建立

新的JSON後處理器,能夠使用用戶友好的JSON-PATH語法更好地從JSON內容中提取數據

JSON如今是JMeter的一等公民,引入了新的JSONPath後處理器。此後處理器與Regular Expression Post Processor很是類似,但很是適合JSON代碼。它基於Jayway JSON Path庫

新的驗證功能,只需單擊一次便可運行一組具備1個用戶的線程組,無暫停和1次迭代

JSR223測試元素再也不須要緩存編譯密鑰

只需檢查Cache編譯腳本(若是可用)複選框,元素(預處理器,後處理器,斷言,監聽器......)將預編譯腳本並在基礎語言支持時緩存已編譯的代碼

Nashorn如今能夠用做Javascript引擎,提供更好的性能和更簡單的使用

要啓用Nashorn,您須要在user.properties中設置

javascript.use_rhino = FALSE

Nashorn能夠在如下元素中與Java 8一塊兒使用:

  • IfController
  • JSR223 選擇javascript語言的測試元素
  • __javaScript函數

Jexl3已經集成。它提供了新的腳本功能和更好的文檔

JEXL3如今能夠使用多虧了新的功能__jexl3JEXL是一種很是相似於JSTL的語言。

簡化的HTTP請求UI

HTTP請求中添加了一個新的「 高級 」選項卡以簡化配置。文件上載功能已移至專用選項卡。這增長了UI中參數的可用空間並簡化了UX。

HTTP請求默認值改進

您如今能夠在「高級」選項卡中配置「源地址」(IP欺騙功能)和「 將響應另存爲MD5哈希 」

報告改進

新報告功能在HTML頁面中生成動態圖形(APDEX,摘要報告和圖形)

如今能夠在加載測試結束時生成動態HTML報告,也能夠隨時從結果文件生成動態HTML報告。有關更多詳細信息,請參閱生成儀表板此報告提供如下指標:

  • APDEX(應用程序性能指數)表,根據允許和知足閾值的可配置值計算APDEX
  • 顯示成功和失敗事務百分比的請求摘要圖:
  • 統計表,在一個表中提供每一個事務的全部度量標準的摘要,包括3個可配置的百分位數:
  • 一個錯誤表,提供全部錯誤的摘要及其在總請求中的比例:
  • Zoomable圖表,您能夠在其中檢查/取消選中每一個交易以顯示/隱藏它:
    • 響應時間隨時間變化:
    • 字節吞吐量隨時間變化:
    • 延遲時間:
    • 每秒點擊次數:
    • 每秒響應代碼:
    • 每秒事務數:
    • 響應時間與每秒請求數:
    • 延遲與每秒請求數:
    • 響應時間百分位數:
    • 活動線程隨着時間的推移:
    • 時代與主題:
    • 響應時間分佈:

GraphiteBackendListener有一個新的Server Hits指標

Summariser顯示更可讀的持續時間

如今持續時間以小時:分鐘:秒的格式顯示

生成摘要結果+ 00:00:01 = 1.7 / s平均:1分鐘:1最大值:1錯誤:0(0.00%)活動:1開始:1完成:0
生成彙總結果+ 00在00:00:09 = 16.2 / s平均值:0最小值:0最大值:1錯誤:0(0.00%)活動:9開始:9完成:0
生成彙總結果= 00在00:00:09 = 15.3 / s平均值:0最小值:0最大值:1錯誤:0(0.00%)
生成摘要結果+ 467 00:00:10 = 47.0 / s平均:0最小值:0最大值:1錯誤:0(0.00%)活動:19開始時間:19結束:0
生成彙總結果= 00:00:00 =時的606 = 31.9 / s平均值:0最小值:0最大值:1偏差:0(0.00%)
生成摘要結果+ 1662 00:00:10 = 166.1 / s平均:0最小值:0最大值:1錯誤:0(0.00%)活動:50開始:50完成:0
生成彙總結果= 28932 00:03:19 = 145.4 / s平均值:0最小值:0最大值:1偏差:0(0.00%)
生成摘要結果+ 1664 00:00:10 = 166.4 / s平均:0最小值:0最大值:1錯誤:0(0.00%)活動:50開始:50完成:0
在00:03:29生成彙總結果= 30596 = 146.4 / s平均值:0最小值:0最大值:1偏差:0(0.00%)
生成摘要結果+ 1661在00:00:10 = 166.1 / s平均:0最小值:0最大值:1錯誤:0(0.00%)活動:50開始:50完成:0
在00:03:39中生成彙總結果= 32257 = 147.3 / s平均值:0最小值:0最大值:1偏差:0(0.00%)

BackendListener如今容許您將採樣器列表定義爲正則表達式

您如今能夠使用正則表達式來選擇要過濾的採樣器。使用參數:useRegexpForSamplersList =真放正則表達式中的參數samplersList

協議和負載測試改進

已啓動到HttpClient 4.5.2的遷移。雖然沒有徹底完成,但它改善了JMeter中的許多領域

遷移到HttpClient 4.5.2改進了JMeter的如下字段:

  • 支持最近的RFC,如用於Cookie的HTTP狀態管理機制RFC-6265,您應該在HTTP Cookie管理器組件中使用如今的HC4CookieHandler並選擇標準 Cookie策略
  • 服務器名稱指示(SNI)支持HttpClient4實現
  • 針對Stale鏈接和Keep-Alive管理的改進且性能更好的驗證機制,請參閱屬性httpclient4.validate_after_inactivityhttpclient4.time_to_live
  • 自JMeter 2.13中使用的先前版本4.2.6以來的許多錯誤修復,請參閱HttpClient 4.5.X發行說明
  • 更好地支持HTTP RFC 2616 / RFC 7230並修復了deflate壓縮管理問題

並行下載如今是現實的,而且擴展得更好:

  • 解析CSS導入的文件(經過@import)或嵌入的資源(背景,圖像,......)
  • SSL上下文的延遲初始化:對於15個線程,僅對HTTP測試在5分鐘內增長138%的採樣。隨着線程數量的增長,增益會增長
  • 並行下載的鏈接管理的返工:這更好地模擬了當前的瀏覽器行爲並提升了吞吐量。對於15個螺紋,在5分鐘內增長135%的額外樣品。
  • 經過ThreadPool重用用於並行下載的線程:這能夠提升吞吐量並增長此類測試的JMeter可伸縮性
  • 在15個線程的測試中發現總吞吐量增長了750%,你得到的線程越多,得到的收益就越多
  • 您如今能夠只計算和存儲嵌入式資源的MD5,而不是存儲整個響應,這能夠經過設置屬性httpsampler.embedded_resources_use_md5 = true來完成

示例超時功能簡介

這個新的Sample Timeout預處理器容許您對其範圍內的元素應用Timeout。在下面的屏幕截圖中,10秒超時適用於Debug SamplerHTTP Request元素。

JDBC請求如今使用DBCP2池

已更新JDBC請求和JDBC鏈接配置,以經過Apache Commons DBCP2池替換舊的Excalibur池。所以,在可用且已更新UI時,屬性已遷移到等效項。請注意,與Excalibur不一樣,Commons DBCP在建立池時使用驗證查詢。所以,請確保查詢有效。默認查詢適合許多數據庫,但不是所有 - 例如Oracle要求' SELECT 1 FROM DUAL '或相似數據庫。

用戶體驗改進:

更好地顯示HiDPI屏幕

請參閱用戶手冊中的Linux或Windows上的提示和提示部分的帶有HiDPI屏幕的JMeter

新圖標外觀和徽標

JMeter有一個由Felix Schumacher建立的新Logo。
圖標也被刷新,以提供更現代的風格,使它們更有意義

不少煩人的小蟲子

經過不容許選擇不兼容的選項,已經進行了大約40個UI修復,以修復錯誤,混亂行爲或簡化使用

改進的線程組UI和相關操做(啓動啓動無計時器驗證

經過容許您僅啓動選擇的線程組,啓動它們而不該用定時器(從而得到時間)或使用新的驗證模式啓動它們,能夠大大簡化負載測試以前的測試計劃。此驗證模式容許您使用1個線程,1次迭代而且不該用定時器來啓動線程組(無需修改)。此驗證模式能夠自定義。

新的快捷方式

  • 添加最經常使用的元素(Ctrl  +  0 ... Ctrl  +  9),可經過gui.quick_ XXX屬性進行配置
  • 用於擴展節點的快捷方式

核心改進

配置簡化,具備更好的默認值

已修改許多屬性的默認值,以使JMeter配置成爲最佳開箱即用。請閱讀「不兼容的更改」部分以獲取更多詳細信息。

Apache Groovy與JMeter捆綁在一塊兒

Apache Groovy是衆所周知的JVM腳本語言,如今與lib文件夾中的Apache JMeter捆綁在一塊兒。這容許您經過選擇Groovy語言當即經過JSR223 Elements使用它。

刪除了多餘的舊屬性

爲了保持向後兼容性或提供一些多餘的自定義而存在的舊屬性已被刪除。閱讀「不兼容的更改」部分以查看已刪除的屬性。

代碼和文檔改進

  • 遷移到Java7源代碼並使用其語法糖
  • 主要代碼清理
  • 全面審查文檔和內容和演示文稿的改進

單元測試的改進

  • 將許多測試遷移到JUnit 4
  • 更好地管理無頭測試
  • 更多單元測試

依賴關係刷新

已棄用的庫已被刪除或替換爲最新的庫:

  • Excalibur由commons-dbcp取代
  • htmllexer,刪除了htmlparser
  • 去掉肥皂
  • jdom被刪除了

Slf4j如今能夠在插件和核心代碼中使用

您如今能夠在自定義插件或org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient子類中使用SLF4J日誌包裝器

不兼容的變化

  • 從3.0版開始,Groovy-2.4.6與JMeter(lib文件夾)捆綁在一塊兒,確保經過屬性search_pathsuser.classpath刪除舊版本或引用版本
  • 從版本3.0開始,jmeter.save.saveservice.assertion_results_failure_message屬性值爲true,表示結果的CSV文件將包含一個包含斷言結果響應消息的附加列,請參閱 錯誤58978
  • 從版本3.0開始,jmeter.save.saveservice.print_field_names屬性值爲true,表示結果的CSV文件將包含字段名稱做爲CSV中的第一行,請參閱 錯誤58991
  • 從版本3.0開始,jmeter.save.saveservice.idle_time屬性值爲true,表示CSV / XML結果文件將包含一個包含採樣器之間空閒時間的附加列,請參閱 錯誤57182
  • 在RandomTimer類中,受保護的實例計時器字段已被getTimer()保護的方法替換,這與 Bug 58100有關這可能會影響3 第三方插件。
  • 從版本3.0開始,您能夠在Java8下使用Nashorn Engine(默認的javascript引擎是Rhino)來使用Javascript引擎(__javaScriptIfController)。若是要使用它,請使用屬性javascript.use_rhino = false,請參閱 錯誤58406
     
    注意:在未來的版本中,咱們默認會切換到Nashorn。鼓勵用戶報告與使用Nashorn而不是Rhino相關的任何問題。
  • 從版本3.0開始,若是消息源是「 From File 」而且「 Filename 」字段發生更改(例如,若是它使用已更改的變量),則JMS Publisher將從新加載文件的內容
  • org.apache.jmeter.gui.util.ButtonPanel已被刪除,若是你用它在3 聚會插件或定製開發確保您更新的代碼。 Bug 58687
  • 物業jmeterthread.startearlier已被刪除。 Bug 58726
  • 物業jmeterengine.startlistenerslater已被刪除。 Bug 58728
  • 屬性jmeterthread.reversePostProcessors已被刪除。 Bug 58728
  • 屬性jmeter.toolbar.display已被刪除,如今始終顯示工具欄。 Bug 59236
  • 屬性jmeter.errorscounter.display已被刪除,如今始終顯示錯誤/警告計數器。 Bug 59236
  • 屬性xml.parser已被刪除,由於org.apache.jmeter.util.JMeterUtils#getXMLParser已被棄用且未被使用,所以再也不使用它。 Bug 59236
  • Summariser監聽器如今以HH格式顯示持續時間:mm:ss(小時:分鐘:秒),它先前以秒爲單位顯示持續時間。 Bug 58776
  • org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.getQueryMap簽名已更改,若是使用它,請確保更新代碼。 Bug 58845
  • 若是收到的消息數不等於預期的消息數,JMS訂戶將認爲樣本是錯誤的。若是收到至少1條消息,它以前認爲樣本OK。 Bug 58980
  • 從版本3.0開始,HTTP(S)測試腳本記錄器默認使用端口8888(使用錄製模板時配置)。 Bug 59006
  • 從版本3.0開始,依賴於htmlparser庫(HtmlParserHTMLParser)的嵌入式資源的解析器(由基於Lagarto的實現的2.10替換)已經與其依賴項一塊兒被刪除。
  • 從3.0版開始,已刪除對讀取舊Avalon格式JTL(結果)文件的支持,請參閱 錯誤59064
  • 從版本3.0開始,http.java.sampler.retries的默認屬性值已更改成0(默認狀況下不重試),以使其與HttpClient4的行爲保持一致。
     
    另請注意,其含義已更改:在3.0以前, http.java.sampler.retries = 1表示無重試(即總嘗試次數= 1),由於3.0 http.java.sampler.retries = 1表示1次重試。(注意:這僅適用於Java HTTP Sampler)
     
     Bug 59103
  • 從3.0開始,已刪除如下已棄用的類
    • org.apache.jmeter.protocol.http.modifier.UserParameterXMLContentHandler
    • org.apache.jmeter.protocol.http.modifier.UserParameterXMLErrorHandler
    • org.apache.jmeter.protocol.http.modifier.UserParameterXMLParser
  • httpsampler.await_termination_timeout已替換爲httpsampler.parallel_download_thread_keepalive_inseconds,如今是並行下載線程的保持活動時間(以秒爲單位)。
  • JDBC Request已更新爲使用commons-dbcp2,從那時起行爲略有不一樣,確保您的數據庫具備正確的「驗證查詢」。 Bug 58786
  • 如下罐子已被刪除:
  • JMeter容許的最大重定向數如今爲20,以前爲5.這能夠使用屬性httpsampler.max_redirects進行更改 Bug 59382

已棄用和已刪除的元素

  • MongoDB元素(MongoDB Source Config,MongoDB Script)已被棄用,將在下一版本的JMeter中刪除。它們再也不出如今菜單中,若是您須要它們修改not_in_menu屬性。JMeter團隊建議再也不使用它們。 Bug 58772
  • 在2.13版本中已棄用的WebService(SOAP)請求和HTML參數掩碼現已根據咱們的棄用策略刪除這些元素僅使用的類和屬性已被刪除:
    • org.apache.jmeter.protocol.http.util.DOMPool
    • org.apache.jmeter.protocol.http.util.WSDLException
    • org.apache.jmeter.protocol.http.util.WSDLHelper
    • 屬性soap.document_cache
    • JAR soap-2.3.1也被刪除了
  • __jexl函數(即JEXL 1)已被棄用,將在下一版本中刪除。 Bug 58903
  • Spline Visualizer偵聽器和Distribution Graph偵聽器已被棄用,將在下一版本的JMeter中刪除。它們再也不出如今菜單中,若是您須要它們修改not_in_menu屬性。JMeter團隊建議再也不使用它們。 Bug 58791

改進

HTTP採樣器和測試腳本記錄器

  • 錯誤57696 - HTTP請求:在資源下載失敗時改進responseMessage。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57995 - 將FileServer用於HTTP請求文件。由Andrey Pokhilko(andrey在blazemeter.com)實施,由BlazeMeter Ltd.提供。
  • 錯誤58843 - 改進HTTP採樣器GUI中的可用空間。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58852 - 爲PUT請求使用更少的內存上傳的數據將再也不存儲在採樣器中。這與POST請求的行爲相同
  • 錯誤58860 - HTTP請求:經過右鍵單擊在HTTP參數表中添加自動變量生成。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58923 - 下載嵌入資源時規範化URI。
  • 錯誤59005 - HTTP採樣器:添加了WebDAV動詞(SEARCH)。
  • 錯誤59006 - 將默認代理記錄端口更改成8888以使其與記錄模板對齊。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)
  • 錯誤58099 - 性能:懶惰地初始化HttpClient SSL上下文,以免其初始化,即便對於僅HTTP方案
  • 錯誤57577 - HttpSampler:檢索全部嵌入式資源,添加屬性「 httpsampler.embedded_resources_use_md5 」僅計算md5而不保留響應數據。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59023 - HttpSampler UI:從新編寫嵌入式資源標籤,並將默認的並行下載數更改成6供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59028 - 使用SystemDefaultDnsResolver單例。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59036 - FormCharSetFinder:使用JSoup而不是棄用的HTMLParser
  • 錯誤59034 - 並行下載鏈接管理是不現實的。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)和Philippe Mouawad
  • 錯誤59060 - HTTP請求GUI:將文​​件上載移動到新選項卡以得到更多參數空間並防止不兼容的配置。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59103 - HTTP請求Java實現:更改默認的「 http.java.sampler.retries 」以使其在HttpClient行爲上對齊並使名稱有意義
  • 錯誤59083 - HTTP請求:使「方法」字段可編輯,以即可以輕鬆添加其餘方法(WebDAV)
  • 錯誤59118 - 經過代理記錄器在記錄的思考時間添加評論。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)
  • 錯誤59116 - 添加爲代理記錄的採樣器名稱設置前綴的可能性。部分基於Antonio Gomes Rodrigues(ra0077 at gmail.com)的補丁
  • 錯誤59129 - HTTP請求:使用簡單/高級選項卡簡化GUI
  • 錯誤59033 - 並行下載:返工Parser類層次結構,容許插件解析器用於不一樣的mime類型
  • 錯誤52073 - 嵌入式資源並行下載:經過避免每一個樣本關閉ThreadPoolExecutor來提升性能。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59190 - HTTP(S)測試腳本記錄器:建議的排除應忽略大小寫。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)
  • 錯誤59140 - 並行下載:添加CSS解析以從CSS文件中提取連接
  • 錯誤59249 - Http請求默認值:添加「 源地址 」和「 將響應保存爲MD5 」
  • 錯誤59382 -爲了得到更加逼真默認值httpsampler.max_redirects

其餘採樣器

  • 錯誤57928 - 添加爲AccessLogSampler GUI定義協議(http / https)的功能。供稿人:JérémieLesage(jeremie.lesage at jeci.fr)
  • 錯誤58300 - 使現有Java採樣器實現可中斷
  • 錯誤58160 - JMS Publisher:若是文件名更改,則從新加載文件內容。部分基於由Maxime Chassagneux(gime上的maxime.chassagneux)提供的補丁
  • 錯誤58786 - JDBC Sampler:用更新的庫commons-dbcp2替換Excalibur DataSource
  • 錯誤59205 - TCP採樣器:創建鏈接時設置採樣器中的鏈接時間。
  • 錯誤59381 - JMSPublisher:FileChooserDialog過濾器不適用於瀏覽器按鈕。部分基於Antonio Gomes Rodrigues(ra0077 at gmail.com)提供的補丁

控制器

  • 錯誤58406 - IfController:容許使用Nashorn引擎(若是可用於JavaScript評估)
  • 錯誤 58281 - RandomOrderController:改進隨機算法性能。供稿人:Graham Russell(jum at ham1.co.uk)
  • 錯誤58675 - 模塊控制器:很容易錯過錯誤消息。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58673 - 模塊控制器:禁用目標元素時,將顯示默認的jtree圖標。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58674 - 模塊控制器:不該該在樹中選擇多個節點。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58680 - 模塊控制器:ui加強。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58989 - 記錄控制器gui:添加一個按鈕以清除全部記錄的樣本。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)

聽衆

  • 錯誤58041 - 樹視圖偵聽器應顯示示例數據類型
  • 錯誤58122 - GraphiteBackendListener:添加服務器命中度量標準。部分基於Amol Moye的補丁(amol.moye at thomsonreuters.com)
  • 錯誤58681 - GraphiteBackendListener:若是沒有發生採樣,則不發送數據
  • 錯誤58776 - Summariser應顯示更可讀的持續時間
  • 錯誤58791 - 棄用偵聽器:分佈圖(alpha)和樣條曲線可視化器
  • 錯誤58849 - 查看結果樹:將搜索面板添加到請求http視圖,以便可以在參數表中進行搜索。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58857 - 查看結果樹:請求視圖http不容許調整參數表第一列的大小。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58955 - 請求視圖http沒法正確顯示multipart / form-data中的http參數。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤55597 - 查看結果樹:添加搜索功能以搜索記錄的採樣器
  • 錯誤59102 - 查看結果樹:「 view.results.tree.max_size 」的默認值更好
  • 錯誤59099 - 後端監聽器:添加將samplersList視爲正則表達式的可能性。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)
  • 錯誤59424 - Visualizer:在彈出菜單中添加「清除」

定時器,斷言,配置,預處理器和後處理器

  • 錯誤58303 - 更改SMIMEAssertion中bouncycastle api的使用以消除棄用警告。
  • 錯誤58515 - 與JSON相關的新組件:View Results Tree中的JSON-PATH Extractor和JSON-PATH Renderer。由Ubik Load Pack捐贈(ubikloadpack.com支持)。
  • 錯誤58698 - 在HTTP受權管理器中正確解析auth文件。
  • 錯誤58756 - CookieManager:Cookie策略選擇框內容必須依賴於Cookie實現。
  • 錯誤56358 - Cookie管理器支持跨端口cookie和RFC6265。感謝Oleg Kalnichevski(來自apache.org的olegk)
  • 錯誤58773 - TestCacheManager:爲使用HttpClient 4的CacheManager添加測試
  • 錯誤58742 - CompareAssertion:在gui中的不一樣CompareAssertions之間切換時,重置TableEditor中的數據。基於Vincent Herilier的補丁(vmail.com的vherilier)
  • 錯誤59108 - TableEditor:容許行上下移動。供稿人:Vincent Herilier(gmail.com的vherilier)
  • 錯誤58848 - 參數面板:添加參數(添加按鈕或從剪貼板)時,將表格滾動到新行。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58865 - 在正則表達式提取器中容許空的默認值。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59156 - XMLAssertion:使用XMLReader刪除jdom依賴項
  • 錯誤59328 - CSVDataSet中變量名稱的更好工具提示。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)

功能

  • 錯誤58477 - __javaScript函數:容許對Java8及更高版本使用Nashorn引擎
  • 錯誤58903 - 提供使用commons-jexl3和不推薦的__jexl(1.1)函數的__jexl3函數

國際化

通常

  • 錯誤58736 - 添加示例超時支持
  • 錯誤57913 - 自動備份上次保存的JMX文件。供稿人:Benoit Vatan(gmail.com的benoit.vatan)
  • 錯誤57988 - 快捷方式(Ctrl  +  1 ... Ctrl  +  9)可快速將元素添加到測試計劃中。由Andrey Pokhilko(andrey在blazemeter.com)實施,由BlazeMeter Ltd.提供。
  • 錯誤58100 - 性能加強:經過ThreadLocalRandom替換Random。
  • 錯誤58677 - TestSaveService#testLoadAndSave使用錯誤的文件集。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58689 - 添加快捷方式以展開/摺疊樹的一部分。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58696 - 建立Ant任務以設置Eclipse項目
  • 錯誤58653 - 帶有動態圖表的新JMeter儀表板/報告,用於幫助分析負載測試結果的表格。由Ubik-Ingenierie開發,由Decathlon SA和Ubik-Ingenierie / UbikLoadPack提供
  • 錯誤58699 - 工做臺更改既未保存也未提示在關閉時保存。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58728 - 刪除舊的行爲屬性
  • 錯誤57319 - 升級到HttpClient 4.5.2。在Oleg Kalnichevski(amack.org的olegk)和Gary Gregory(apg.org的ggregory)的大力幫助下。
  • 錯誤58772 - 棄用與MongoDB相關的元素
  • 錯誤58782 - ThreadGroup:改善人體工程學
  • 錯誤58165 - 顯示自GUI模式下負載測試開始以來通過的時間。部分基於Maxime Chassagneux的貢獻(gime上的maxime.chassagneux)
  • 錯誤58814 - JVM再也不識別選項MaxLiveObjectEvacuationRatio ; 從評論中刪除
  • 錯誤58810 - 配置元素計數器(和其餘):複選框切換區域太大
  • 錯誤56554 - JSR223測試元素:自動生成編譯緩存鍵。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58911 - 標題管理器:應該能夠在標題管理器之間複製/粘貼。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58864 - 參數面板:使用向上/向下移動參數時,請確保選擇仍然可見。基於Benoit Wiart的貢獻(在gmail.com的benoit dot wiart)
  • 錯誤58968 - 添加新模板以容許記錄包含思考時間的腳本。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)
  • 錯誤58978 - 設置默認值:將「 jmeter.save.saveservice.assertion_results_failure_message」 切換爲true(在2.13以後)
  • 錯誤58991 - 設置默認值:將「 jmeter.save.saveservice.print_field_names 」 切換爲true(在2.13以後)
  • 錯誤57182 - 設置默認值:將「 jmeter.save.saveservice.idle_time 」 切換爲true(在2.13以後)
  • 錯誤58870 - TableEditor:最小尺寸過小。供稿人:Vincent Herilier(gmail.com的vherilier)
  • 錯誤58933 - JSyntaxTextArea:可以設置字體。供稿人:Denis Kirpichenkov(gmail.com的denis.kirpichenkov)
  • 錯誤58793 - 建立開發人員頁面,解釋如何構建和貢獻
  • 錯誤59046 - JMeter Gui替換控制器應保留名稱和選擇。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59038 - 棄用HTTPClient 3.1相關元素
  • 錯誤59094 - 刪除對舊JMX文件格式的支持
  • 錯誤59082 - 刪除「 TestCompiler.useStaticSet 」參數。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59093 - 選項解析錯誤消息可能「 丟失 」
  • 錯誤58715 - 功能請求:使用JMeter 捆綁groovy-all
  • 錯誤58426 - 改進JMeter在高分辨率設備(HiDPI)上的顯示(加強的第1部分)
  • 錯誤59105 - TableEditor:添加從剪貼板粘貼行並刪除多個選擇的功能。供稿人:Vincent Herilier(gmail.com的vherilier)
  • 錯誤59197 - 線程組:應該能夠只使用彈出菜單運行單個線程組或選擇的線程組。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59207 - 發生錯誤時errorsOrFatalsLabel的字體顏色更改爲紅色。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)
  • 錯誤58941 - 建立一個在驗證模式下運行線程組的新Starter(1個線程,1個迭代,全部可自定義的暫停)
  • 錯誤59236 - JMeter屬性:進行一些清理
  • 錯誤59240 - 爲Logkit引入一個slf4j適配器(這容許在插件和核心代碼中使用slf4j)
  • 錯誤59153 - 若是CSVDataSet正在訪問不存在的文件,請中止測試。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)
  • 錯誤59320 - 使用GenericTestBeanCustomizer(CSV數據集配置,JDBC鏈接配置,密鑰庫配置,...)在GUI中更好的工具提示。基於Antonio Gomes Rodrigues的補丁(ra0077 at gmail.com)
  • 錯誤 59171 - 示例結果SaveConfig對話框以隨機順序生成
  • 錯誤59425 - 顯示有關幫助窗格中缺乏幫助頁面的錯誤

非功能性變化

  • 更新爲httpclient,httpmime 4.5.2(從4.2.6開始)
  • 更新爲tika-core和tika-parsers 1.12(從1.7開始)
  • 更新爲commons-math3 3.6.1(來自3.4.1)
  • 更新爲commons-pool2 2.4.2(從2.3開始)
  • 更新爲commons-lang 3.4(來自3.3.2)
  • 更新至rhino-1.7.7.1(從1.7R5開始)
  • 已更新至jodd-3.6.7.jar(來自3.6.4)
  • 更新到jsoup-1.8.3(從1.8.1開始)
  • 更新爲rsyntaxtextarea-2.5.8(從2.5.6開始)
  • 已更新至slf4j-1.7.12(自1.7.10起)
  • 更新到xmlgraphics-commons-2.0.1(從1.5開始)
  • 更新爲commons-collections-3.2.2(來自3.2.1)
  • 更新爲commons-net 3.4(來自3.3)
  • 已更新至slf4j 1.7.13(自1.7.12起)
  • 錯誤57981 - 至少須要Java 7.部分由Graham Russell提供(jum at ham1.co.uk)
  • 錯誤58684 - JMeterColor不須要擴展java.awt.Color供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58687 - ButtonPanel應該死。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58705 - 使org.apache.jmeter.testelement.property.MultiProperty可迭代。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58729 - Cleanup extras文件夾的可維護性
  • 錯誤57110 - 修正拼寫+語法,格式化,刪除註釋掉的代碼等。供稿人:Graham Russell(jum at ham1.co.uk)
  • 有關在help.txt中運行JMeter的正確說明供稿人:Pascal Schumacher(gmx.net上的pascalschumacher)
  • 錯誤58704 - 非迴歸測試:若是測試並在非en_EN語言環境中運行並使用使用CSV DataSet的JMX文件,則Ant任務批處理測試失敗
  • 錯誤58897 - 改進JUnit測試代碼。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58949 - 清除LDAP代碼。基於Benoit Wiart的補丁(gmail.com的benoit dot wiart)
  • 錯誤58897 - 改進JUnit測試代碼。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58967 - 使用JUnit類別排除須要gui的測試。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59003 - ClutilTestCase testSingleArg8testSingleArg9徹底相同
  • 錯誤59064 - 刪除支持很是舊的Avalon格式JTL(結果)文件的OldSaveService
  • 錯誤59165 - RSyntaxTextArea與無頭測試不兼容
  • 錯誤59021 - 使用Double#compare而不是在NumberProperty#compareTo中從新實現它
  • 錯誤59037 - 在htmlparser和htmllexer上刪除HtmlParserHTMLParser和依賴項
  • 錯誤58465 - JMS讀取響應字段命名錯誤並記錄在案
  • 錯誤58601 - 更改檢查以將saveservice.propertiesSVN Revision ID修改成文件自己的sha1 sum。
  • 錯誤58726 - 刪除jmeterthread.startearlier參數。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58784 - 使JMeterUtils#runSafe sync / async awt調用可配置並更改可視化器以使用異步版本。
  • 錯誤58790 - CheckDirty中的問題及其與ActionRouter的關係
  • 錯誤59095 - 刪除八年前棄用的UserParameterXMLParser。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59262 - 向LICENSE添加二進制jar列表; 用於單元測試
  • 錯誤59353 - 在changes.xml的「不兼容的更改」部分中添加「已棄用和已刪除的元素」。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)

Bug修復

HTTP採樣器和測試腳本記錄器

  • 錯誤57806 - ViewResultsTree錯誤地將「 audio / x-mpegurl 」mime類型視爲二進制。由Ubik Load Pack提供(ubikloadpack.com支持)。
  • 錯誤57858 - 樣本方法中發生RuntimeExceptionIOException時,不要在HTTPHC4Impl中調用sampleEnd兩次
  • 錯誤57921 - 沒有keep-alive的HTTP / 1.1「 鏈接 」響應頭再也不使用無限保持活動。
  • 錯誤57956 - 當jMeter未在bin中啓動時jmeter.propertieshc.parameters引用不起做用
  • 錯誤58137 - JMeter沒法下載包含URL中的非法字符的嵌入式URL(它不會逃脫它們)。
  • 錯誤58201 - 在不一樣的http採樣器中使主機頭中的端口使用更加一致。
  • 錯誤58453 - HTTP測試腳本記錄器:禁用捕獲HTTP標頭時出現NullPointerException
  • 錯誤57804 - 在HTTPS中使用客戶端證書時,HTTP請求不會重用緩存的SSL上下文(僅適用於HttpClient4實現)
  • 錯誤58800 - proxy.pause默認值:修復文檔
  • 錯誤58844 - 參數面板中的按鈕啓用/禁用已中斷。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58861 - 在參數面板的單元格中單擊向上,向下或詳細信息時,新添加的內容將丟失。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤57935 - HttpClient 4.2.6不支持SSL SNI擴展
  • 錯誤59044 - Http Sampler:若是方法不是POST,則不該該選擇多部分編碼供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59008 - Http Sampler:達到幀深度限制的無限遞歸SampleResult
  • 錯誤58881 - HTTP請求:當服務器使用「 deflate 」壓縮時,HTTPHC4Impl顯示異常
  • 錯誤58583 - 若是服務器因爲未發送「 connection:close 」而致使服務器出現異常,HTTP客戶端沒法關閉鏈接,違反了HTTP RFC 2616 / RFC 7230
  • 錯誤58950 - 當採樣器之間的暫停超過服務器發送的keepalive時, NoHttpResponseException
  • 錯誤59085 - Http文件面板:瀏覽取消時數據丟失。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤56141 - 使用HTTP Recorder時應用程序沒法正常運行。在Dan的幫助下(java.junkee在yahoo.com上)
  • 錯誤59079 - 使用「 自動重定向 」 時不強制執行「 httpsampler.max_redirects 」屬性
  • 錯誤58811 - 當在http採樣器之間粘貼參數時,「Encode」和「Include Equals」列將丟失。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)

其餘採樣器

  • 錯誤58013 - 啓用默認SSLContext上啓用的全部協議,以便與SMTP採樣器一塊兒使用。
  • 錯誤58209 - 測試javasampler時JMeter掛起,由於從多個線程調用HashMap.put ()而沒有同步。
  • 錯誤58301 - 使用類型化的方法,如setIntsetDoublesetDate,...用於準備好的語句#27
  • 錯誤58851 - 在hamcrest-core上添加依賴項以容許帶有註釋的JUnit測試工做
  • 錯誤58947 - 發生ConnectException鏈接指標錯誤
  • 錯誤58980 - 只要收到1條消息,JMS訂閱服務器就會返回成功。供稿人:Harrison Termotto(stonybrook.edu的harrison dot termotto)
  • 錯誤59075 - JMS Publisher:若是priority或expiration字段爲空,則拋出NumberFormatException
  • 錯誤59345 - SMTPSampler鏈接泄漏。基於Luca Maragnani的補丁(luca dot maragnani at gmail dot com)

控制器

  • 錯誤58600 - 在IncludeController搜索文件名時顯示正確的文件名
  • 錯誤58678 - 模塊控制器:限制目標元素選擇。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58714 - 模塊控制器:不該該將計時器添加爲子級。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59067 - 在具備「 開始下一個線程循環 」 的線程組發生斷言錯誤後,JMeter沒法迭代控制器,這些控制器是具備「 生成父樣本 」 的TransactionController的子代供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59076 - 若是模塊控制器沒法找到其替換子樹,則測試應該失敗

聽衆

  • 錯誤58033 - SampleResultConverter應注意它不能記錄非TEXT數據
  • 錯誤58845 - 請求http視圖不顯示全部參數。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58413 - ViewResultsTree:請求HTTP 呈現器未正確顯示包含&符號的參數。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59172 - SampleResult SaveConfig不容許禁用某些字段
  • 錯誤58329 - 響應時間圖和聚合圖:將圖存儲到文件時不考慮自上次單擊圖表以來更改的設置。供稿人:David Coppens(dlcoppens在gmail.com)

定時器,斷言,配置,預處理器和後處理器

  • 錯誤58079 - 使用HTTP CacheManager時,請勿緩存具備Vary標頭的HTTP示例
  • 錯誤58912 - 響應斷言gui:刪除多個選定的行只刪除一行。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)

功能

國際化

通常

  • 錯誤54826 - 在視圖結果樹中將JSON響應顯示爲JSON時,請勿在JSON響應中使用長字符串失敗。
  • 錯誤57734 - Maven瞬態依賴關係不正確2.13(Commons Pool和Math的固定組ID)
  • 錯誤57731 - TESTSTART.MS始終在NON GUI分佈式測試中以服務器模式啓動第一個測試的值
  • 錯誤58016 - 使用外部SSL提供程序進行錯誤類型轉換。供稿人:Kirill Yankov(gmail.com的myworkpostbox)
  • 錯誤58293 - SOAP / XML-RPC Sampler文件瀏覽器生成NullPointerException
  • 錯誤58685 - JDatefield:使用向上/向下箭頭修改日期。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤58693 - 修復「設置eclipse時沒法在輸出文件夾'jmeter / build'中嵌套輸出文件夾'jmeter / build / components'」
  • 錯誤58781 - 命令行選項「 - ? 」顯示未知選項
  • 錯誤57821 - 命令行選項「 -X --remoteexit 」自2.13起無效(與 Bug 57500相關的迴歸
  • 錯誤58795 - NPE可能發生GuiPackage#getTestElementCheckSum一些3 第三方插件
  • 錯誤58913 - 關閉JMeter時不該將取消解釋爲「 破壞個人測試計劃 」。供稿人:Benoit Wiart(gmail.com的benoit dot wiart)
  • 錯誤59096 - 搜索功能:不區分大小寫的搜索實際上不區分大小寫
  • 錯誤59193 - 從未經過Thread.currentThread()加載的依賴項訪問類時,ant run_guiClassNotFoundExceptionIllegalAccessError而失敗 .getContextClassLoader ()
  • 錯誤59225 - 運行指示器圖標顯示不正確。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)
  • 錯誤56927 - 在測試期間禁用語言更改
  • 錯誤59391 - 在分佈式模式下,客戶端在測試結束時異常退出
  • 錯誤59397 - build.xml不會在Unix系統上使dist.executables可執行

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • Ubik Load Pack
  • Benoit Vatan(gmail.com的benoit.vatan)
  • JérémieLesage(jeremie.lesage at jeci.fr)
  • Kirill Yankov(gmail.com的myworkpostbox)
  • Amol Moye(amol.moye at thomsonreuters.com)
  • Samoht-fr(https://github.com/Samoht-fr)
  • Graham Russell(jum at ham1.co.uk)
  • Maxime Chassagneux(gmail.com的maxime.chassagneux)
  • Benoit Wiart(gmail.com的benoit.wiart)
  • 迪卡儂SA
  • Ubik-Ingenierie SAS
  • Oleg Kalnichevski(來自apache.org的olegk)
  • Pascal Schumacher(gmx.net上的pascalschumacher)
  • Vincent Herilier(gmail.com的vherilier)
  • Florent Sabbe(來自ubik-ingenierie.com的f dot sabbe)
  • Antonio Gomes Rodrigues(g00上的ra0077)
  • Harrison Termotto(harrison dot termotto at stonybrook.edu
  • Denis Kirpichenkov(gmail.com的denis.kirpichenkov)
  • Gary Gregory(ggregory at apache.org)
  • David Coppens(dlcoppens at gmail.com)
  • Luca Maragnani(來自gmail dot com的luca dot maragnani)
  • Philip Helger(http://www.helger.com)爲他的CSS Parser以及很是快速地考慮咱們的錯誤報告
  • Irek Pastusiak(gmail.com的.automatic.tester)

咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

  • purnasatyap在gmail dot com上進行關於夜間構建的測試和報告
  • Sergey Batalin(sergey_batalin在mail dot ru)進行關於夜間構建的測試和報告
  • Vincent Daburon(gmail dot com的vdaburon)關於夜間構建的測試和報告

若是咱們遺漏了其餘人,請道歉。

已知問題和解決方法

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 綠色框左側顯示的數字是活動線程數/線程總數,線程總數僅適用於本地運行的測試,不然將顯示0(參見 錯誤55510)。
  • 請注意, 在某些Linux系統上存在Java中的錯誤,在運行測試用例或JMeter自己時會將其顯示爲如下錯誤:
     [java]警告:沒法刷新用戶首選項:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException:不支持:indent-number
    
    這不會影響JMeter操做。自Java 7b05以來,此問題已獲得解決。
  • 請注意,在某些Windows系統下,您可能會遇到如下警告:
    java.util.prefs.WindowsPreferences 
    警告:沒法在root 0處打開/建立prefs根節點Software \ JavaSoft \ Prefs x80000002。Windows RegCreateKeyEx(...)返回錯誤代碼5。
    
    修復是以管理員身份運行JMeter,它將爲您建立註冊表項,而後您能夠做爲普通用戶從新啓動JMeter,您將再也不有警告。
  • 使用Oracle Java 7和Mac Book Pro Retina Display,JMeter GUI可能看起來很模糊。這是一個已知的Java錯誤,請參閱Bug JDK-8000629解決方法是使用Java 7 update 40運行時修復此問題。
  • 您可能會遇到如下錯誤:
    java.security.cert.CertificateException:證書不符合算法約束
    若是您在具備SSL證書(自己或其信任鏈中的SSL證書之一)的網站上使用MD2(如md2WithRSAEncryption)或大小低於1024位的SSL證書運行HTTPS請求。此錯誤與Java 7版本u16(MD2)和版本u40(證書大小低於1024位)以及Java 8的安全性增長有關。 
    要容許您執行HTTPS請求,能夠經過編輯Java jdk.certpath.disabledAlgorithms屬性來降級Java安裝的安全性。根據您的狀況,刪除MD2值或大小約束。 
    此屬性在此文件中:
    JAVA_HOME / JRE / lib / security中/ java.security
    有關詳細信息,請參閱 錯誤56357
  • 在Mac OSX下,因爲鏡像對數字的影響,聚合圖表將顯示錯誤的值。這是因爲已知的Java bug,請參閱Bug JDK-8065373 。修復方法是使用JDK7_u79,JDK8_u45或更高版本。
  • 查看結果樹可能沒法在HTML呈現器下顯示某些HTML代碼,請參閱 錯誤54586這是因爲已知的Java錯誤沒法解析row / col屬性中的「 px 」單位。請參閱Bug JDK-8031109 修復方法是使用JDK9 b65或更高版本。
  • 使用鍵盤進行JTable選擇(SHIFT  +  向上/向下)在Mac OSX上徹底沒法使用JAVA 7。這是因爲已知的Java錯誤JDK-8025126 修復是使用JDK 8 b132或更高版本。

版本2.13

摘要

新的和值得注意的

新元素

具備Graphite實現的新Async BackendListener

添加了一個新的Async BackendListener以容許將結果數據發送到後端偵聽器。JMeter附帶了GraphiteBackendListenerClient,容許使用Pickle或Plaintext協議將結果發送到Graphite服務器。您能夠經過擴展AbstractBackendListenerClient來實現本身的後端這個後端能夠是數據庫(JDBC),面向消息的中間件(JMS),Web服務或任何您想要的東西。

這是您能夠使用GrafanaInfluxDB 得到的實時儀表板類型
閱讀此內容以獲取更多詳細信息。

Grafana儀表板Grafana儀表板

核心改進

新的鏈接時間指標

今後版本開始,添加了一個名爲connectTime的新指標。它表明創建鏈接的時間。默認狀況下,它不保存爲CSV或XML,將其保存添加到user.properties:jmeter.save.saveservice.connect_time 
= true

彙總圖和報告

聽衆聚合圖表和聚合報告之前僅顯示了90%(歷史行爲),95百分位數和99百分位數已添加並可自定義。要設置所需的百分位數值,請添加到user.properties:aggregate_rpt_pct1 
= 90 
aggregate_rpt_pct2 = 95 
aggregate_rpt_pct3 = 99

 

HTTP(S)測試腳本記錄器

如今,組件可以檢測身份驗證方案,並自動添加具備正確機制的預配置HTTP受權管理器。

HTTP請求

在HTTP請求採樣器中添加了CalDAV謂詞(WebDAV的日曆擴展)REPORT和MKCALENDAR。

 

JDBC請求

ResultSet能夠做爲對象獲取,這容許在BeanShell,JSR223腳本以後更輕鬆地處理結果,......

 

分佈式測試

爲了更好地在雲中使用Distributed Testing,在服務器上啓動測試時添加了重試行爲。閱讀本文瞭解更多詳情。

 

分佈式測試性能

從JMeter 2.13開始,剝離模式(StrippingBatch是默認模式)如今也剝離了SubResults的響應,改善了消耗的網絡帶寬。

文檔刷新

Felix Schumacher建立了一種新的網站風格(響應式和更新)。文件已經特別刷新:

 

GUI改進

模塊控制器

模塊控制器如今在樹視圖中顯示目標控制器(而不是組合列表)。

 

工具欄

JMeter的工具欄已刷新爲某些圖標(開始,切換等)。如今有三種尺寸可供選擇:22x22,32x32和48x48。
定義首選大小的屬性是:

jmeter.toolbar.icons.size =值

值22x22(默認大小),32x32或48x48。

 

帶有22x22像素圖標的工具欄

 

帶有32x32像素圖標的工具欄

 

帶有48x48像素圖標的工具欄

 

HTTP(S)測試腳本記錄器

若是您的測試計劃不包含錄製控制器,若是HTTP(S)測試腳本錄製器配置爲將樣本發送到錄製控制器,則會出現新的警告消息。

 

不兼容的變化

  • 從2.13開始,Aggregate Graph,Summary Report和Aggregate Report如今導出百分比爲%,而後導出十進制值,這與GUI中顯示的不一樣
  • 修復 Bug 57586可能會影響第三方插件,若是您依賴父類這樣作,請確保您的HttpTestSampleGui子類實現ItemListener。
  • 報告包已被刪除,所以再也不生成 ApacheJMeter_report.jar,請參閱錯誤57269

改進

HTTP採樣器和測試腳本記錄器

  • 錯誤25430 - HTTP(S)測試腳本記錄器:使其填充HTTP受權管理器。部分基於Dzmitry Kashlach的補丁(dzmitrykashlach at gmail.com)
  • 錯誤57381 - 若是目標控制器引用錄製控制器且不存在錄製控制器,則HTTP(S)測試腳本錄製器應顯示錯誤。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57488 - 性能:改進SSLContext重置以進行雙向SSL身份驗證
  • 錯誤57565 - SamplerCreator:添加方法以容許實現將子項添加到建立的採樣器
  • 錯誤 57606 - HTTPSamplerBase#errorResult更改異常時的示例標籤
  • 錯誤57613 - HTTP採樣器:添加了CalDAV謂詞(REPORT,MKCALENDAR)。供稿人:Richard Brigham(來自teamaol.com的richard.brigham)
  • 錯誤48799 - 添加時間以創建與可用樣本指標的鏈接。由Andrey Pokhilko(andrey在blazemeter.com)實施,由BlazeMeter Ltd.和Pieter Ennes(spam.ennes.nl的apache.org)提供。
  • 錯誤57500 - 介紹分佈式測試的重試行爲。由Andrey Pokhilko和Dzimitry Kashlach實施,由BlazeMeter Ltd.提供。

其餘採樣器

  • 錯誤57322 - JDBC測試元素:添加ResultHandler以處理可調用語句返回的ResultSets(遊標)。供稿人:YngviÞórSigurjónsson(blitzkopf at gmail.com)

控制器

  • 錯誤57561 - 模塊控制器UI:用樹替換組合框。供稿人:Maciej Franek(gmail.com的maciej.franek)
  • 錯誤57648 - 建立時應禁用TestFragment。供稿人:Ubik Load Pack(ubikloadpack.com支持)

聽衆

  • 錯誤55932 - 建立一個Async BackendListener以容許輕鬆插入新的偵聽器(Graphite,JDBC,Console,...)
  • 錯誤57246 - BackendListener:建立Graphite實現
  • 錯誤57217 - 聚合圖和聚合報告改進(3個可配置的百分位數,二者中的相同數據,因子輸出代碼)。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57537 - BackendListener:容許實現刪除樣本

定時器,斷言,配置,預處理器和後處理器

功能

  • 錯誤54453 - 性能加強:在__Random函數中用ThreadLocalRandom替換Random

國際化

通常

  • 錯誤57518 - 具備多種尺寸的工具欄的圖標
  • 錯誤57605 - 加載測試計劃時出錯,SaveService.loadTree返回null,致使調用者的NPE
  • 錯誤57269 - 刪除org.apache.jmeter.reports
  • 錯誤53764 - 網站:爲網站建立一種新的風格

非功能性變化

  • 已更新至jsoup-1.8.1.jar(從1.7.3開始)
  • 更新爲tika-core和tika-parsers 1.7(從1.6開始)
  • 更新爲commons-codec-1.10.jar(從1.9開始)
  • 已更新至dnsjava-2.1.7.jar(自2.1.6起)
  • 已更新至jodd-3.6.4.jar(來自3.6.1)
  • 更新至junit-4.12.jar(從4.11開始)
  • 更新至rhino-1.7R5(自1.7R4起)
  • 更新至rsyntaxtextarea-2.5.6(來自2.5.3)
  • 更新至slf4j-1.7.10(從1.7.5開始)
  • 錯誤57276 - 自Java 5以來再也不須要RMIC
  • 錯誤57310 -更換System.getProperty( 「文件分割符」)文件分割符整個(也稱「 path.separator」File.pathSeparator
  • 錯誤57389 - 修復轉換器中的潛在NPE
  • 錯誤57417 -刪除未使用的方法方法isTemporaryNullProperty這是2003年重構的遺留問題。
  • 錯誤57418 - 從Workbench中刪除未使用的構造函數
  • 錯誤57419 - 刪除未使用的接口ModelListener。
  • 錯誤57466 - IncludeController:刪除不須要的集建立。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 添加了屬性loggerpanel.usejsyntaxtext以禁用控制檯記錄器使用JSyntaxTextArea(若是是內存或其餘問題)
  • 錯誤57586 - HttpTestSampleGui:刪除接口ItemListener實現

Bug修復

HTTP採樣器和測試腳本記錄器

  • 錯誤57385 - 在「跟隨重定向」設置的HTTP請求的xml結果中獲取空線程名稱。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57579 - 若是使用「RETURN_NO_SAMPLE」(默認)並在HTTP緩存管理器中選中「使用Cache-Control / Expires標頭...」,則會在主樣本上引起NullPointerException錯誤

其餘採樣器

控制器

  • 錯誤57447 - 啓用「使用自定義DNS解析程序」選項時,僅使用列出的用戶DNS服務器。

聽衆

  • 錯誤57262 - 聚合報告,聚合圖和摘要報告導出:標題使用鍵而不是標籤
  • 錯誤57346 - Summariser:+(差別)報告顯示錯誤的通過時間和吞吐量
  • 錯誤57449 - 分佈式測試:剝離模式不會剝離SubResults的響應(影響使用嵌入式資源下載的負載測試)。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57562 - 查看結果樹CSS / JQuery Tester:當語法錯誤而且jmeter.log中發生異常時,沒有任何反應
  • 錯誤57514 - 聚合圖,摘要報告和聚合報告在保存的文件中顯示錯誤的百分比報告

定時器,斷言,配置,預處理器和後處理器

  • 錯誤57607 - 恆定吞吐量計時器:因爲舍入錯誤,在共享模式下計算的吞吐量錯誤

通常

  • 錯誤57365 - 因爲調用UIManager.setLookAndFeel太晚,選擇的LAF未正確設置供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57364 - 選項<外觀和感受不會更新全部窗口LAF。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57394 - 使用ClassTools#construct(String,int)構造實例時,忽略整數並使用默認構造函數。
  • 錯誤57440 - 因爲未考慮disableUndo而在LoggerPanel中引入JSyntaxTextArea後出現OutOfMemoryError。
  • 錯誤57569 - FileServer.reserveFile - hasHeader爲true時的不一致行爲
  • 錯誤57555 - 沒法將JMeter 2.12用做maven依賴項。供稿人:Pascal Schumacher(t-systems.com上的pascal.schumacher)
  • 錯誤57608 - 修復啓動腳本與舊Unix shell的兼容性,例如在Solaris上

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • Ubik Load Pack
  • YngviÞórSigurjónsson(blitzkopf at gmail.com)
  • Dzmitry Kashlach(gz的dzmitrykashlach)
  • BlazeMeter Ltd.
  • Benoit Wiart(gmail.com的benoit.wiart)
  • Pascal Schumacher(t-systems.com上的pascal.schumacher)
  • Maciej Franek(gmail.com的maciej.franek)
  • 理查德·布里格姆(richard.brigham,來自teamaol.com)
  • Pieter Ennes(apache.org at spam.ennes.nl)


咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

  • Chaitanya Bhatt(ghat的bhatt.chaitanya)對新的BackendListener和Graphite Client實現進行了完全的測試。
  • Marcelo Jara(hotmail.com上的 marcelojara)關於Bug 57607的明確報道

若是咱們遺漏了其餘人,請道歉。

 

已知的錯誤

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 綠色框左側顯示的數字是活動線程數/線程總數,線程總數僅適用於本地運行的測試,不然將顯示0(參見 錯誤55510)。
  • 請注意, 在某些Linux系統上存在Java中的錯誤,在運行測試用例或JMeter自己時會將其顯示爲如下錯誤:
     [java]警告:沒法刷新用戶首選項:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException:不支持:indent-number
    
    這不會影響JMeter操做。自Java 7b05以來,此問題已獲得解決。
  • 請注意,在某些Windows系統下,您可能會遇到如下警告:
    java.util.prefs.WindowsPreferences 
    警告:沒法在root 0處打開/建立prefs根節點Software \ JavaSoft \ Prefs x80000002。Windows RegCreateKeyEx(...)返回錯誤代碼5。
    
    修復是以管理員身份運行JMeter,它將爲您建立註冊表項,而後您能夠做爲普通用戶從新啓動JMeter,您將再也不有警告。
  • 對於Linux系統上的Java 1.6和Gnome 3,JMeter菜單可能沒法正常工做(在鼠標單擊和菜單之間切換)。這是一個已知的Java錯誤(參見 錯誤54477)。解決方法是使用Java 7運行時(OpenJDK或Oracle JDK)。
  • 使用Oracle Java 7和Mac Book Pro Retina Display,JMeter GUI可能看起來很模糊。這是一個已知的Java錯誤,請參閱Bug JDK-8000629解決方法是使用Java 7 update 40運行時修復此問題。
  • 您可能會遇到如下錯誤:java.security.cert.CertificateException: 若是您在具備SSL證書(自己或其信任鏈中的SSL證書之一)的網站上運行HTTPS請求,則證書不符合算法約束使用MD2(如md2WithRSAEncryption)或大小低於1024位的SSL證書的簽名算法。此錯誤與Java 7版本u16(MD2)和版本u40(證書大小低於1024位)以及Java 8的安全性增長有關。 
    要容許您執行HTTPS請求,能夠經過編輯Java jdk.certpath.disabledAlgorithms屬性來降級Java安裝的安全性。根據您的狀況,刪除MD2值或大小約束。 
    此屬性在此文件中:
    JAVA_HOME / JRE / lib / security中/ java.security
    有關詳細信息,請參閱 錯誤56357

版本2.12

摘要

新的和值得注意的

Java 8支持

如今,JMeter 2.12符合Java 8。

新元素

關鍵部分控制器

Critical Section Controller容許序列化樹中某個部分的執行。在測試期間,將僅同時執行該部分的一個實例。

DNS緩存管理器

新配置元素DNS緩存管理器(參見 Bug 56841)改進了如下測試:

  • CDN(內容分發網絡)
  • DNS負載平衡。
  • 像Amazon Elastic Load Balancer這樣的負載均衡器

 

核心改進

更智能地記錄Http測試計劃

Test Script Recorder已經在不少方面獲得了改進

  • 更好地匹配請求中的變量,使得測試腳本記錄器在錄製過程當中使您的採樣器變得更加通用
  • 可以從「查看結果樹」中篩選出從記錄中排除的樣本,這使您能夠專一於記錄的採樣器分析,而無需使用無用的樣本結果
  • 錄製的默認設置更好,由於此版本的錄製器會爲建立的採樣器編號,讓您能夠在「查看結果樹」中輕鬆找到它們。事務控制器下的採樣器分組將更加智能,使網頁發出的全部請求都成爲新的事務控制器

支持Webdav請求

您如今能夠使用HttpClient4 Http Request實現來測試WebDav服務器

更好地處理嵌入式資源

當檢查下載嵌入資源時,JMeter如今使用用戶代理標頭來下載條件註釋中嵌入的資源,而不是按照條件註釋

可以自定義緩存資源的緩存管理器(瀏覽器緩存模擬)處理

您如今能夠在Cache中找到資源時配置JMeter的行爲,這能夠經過cache_manager.cached_resource_mode屬性進行控制

JMS Publisher / JMS點對點

爲這些採樣器添加JMSPriority和JMSExpiration字段。

郵件閱讀器採樣器

您如今能夠指定要檢索的消息數(在檢索全部消息以前)。此外,您如今只能獲取郵件頭。

SMTP採樣器

將鏈接超時和讀取超時添加到SMTP採樣器。

同步定時器

添加超時以定義等待虛擬用戶組的最長時間。

性能改進

經過提高無用同步,功能性能獲得了很大改善。它涉及除__StringFromFile,__ XPath和__BeanShell以外的全部函數,請參閱 錯誤57114

__jexl2的性能已獲得改進,以免爭用點,參見 Bug 56708

GUI改進

撤消/重作支持

已經引入了撤消/重作,並容許用戶撤消/重作在測試計劃樹上所作的更改。默認狀況下禁用此功能(ALPHA MODE),以啓用它設置屬性undo.history.size = 25

查看結果樹

經過更改呈現器的位置並容許自定義排序(使用屬性view.results.tree.renderers_order)來改進View Results Tree的人體工程學

響應時間圖

添加Response Time Graph偵聽器的功能,以便在jmx文件中保存/恢復其設置。

日誌查看器

從這個版本開始,能夠經過單擊右上角的警告圖標直接在GUI中查看JMeter的日誌文件(jmeter.log)的最後幾行。這將展開日誌查看器面板並顯示日誌。

文件打開

如今,「打開文件對話框」使用上次打開的文件夾做爲開始文件夾,請參閱 錯誤52707

已知的錯誤

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 綠色框左側顯示的數字是活動線程數/線程總數,線程總數僅適用於本地運行的測試,不然將顯示0(參見 錯誤55510)。
  • 請注意, 在某些Linux系統上存在Java中的錯誤,在運行測試用例或JMeter自己時會將其顯示爲如下錯誤:
     [java]警告:沒法刷新用戶首選項:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException:不支持:indent-number
    
    這不會影響JMeter操做。自Java 7b05以來,此問題已獲得解決。
  • 請注意,在某些Windows系統下,您可能會遇到如下警告:
    java.util.prefs.WindowsPreferences 
    警告:沒法在root 0處打開/建立prefs根節點Software \ JavaSoft \ Prefs x80000002。Windows RegCreateKeyEx(...)返回錯誤代碼5。
    
    修復是以管理員身份運行JMeter,它將爲您建立註冊表項,而後您能夠做爲普通用戶從新啓動JMeter,您將再也不有警告。
  • 對於Linux系統上的Java 1.6和Gnome 3,JMeter菜單可能沒法正常工做(在鼠標單擊和菜單之間切換)。這是一個已知的Java錯誤(參見 錯誤54477)。解決方法是使用Java 7運行時(OpenJDK或Oracle JDK)。
  • 使用Oracle Java 7和Mac Book Pro Retina Display,JMeter GUI可能看起來很模糊。這是一個已知的Java錯誤,請參閱Bug JDK-8000629解決方法是使用Java 7 update 40運行時修復此問題。
  • 您可能會遇到如下錯誤:java.security.cert.CertificateException: 若是您在具備SSL證書(自己或其信任鏈中的SSL證書之一)的網站上運行HTTPS請求,則證書不符合算法約束使用MD2(如md2WithRSAEncryption)或大小低於1024位的SSL證書的簽名算法。此錯誤與Java 7版本u16(MD2)和版本u40(證書大小低於1024位)以及Java 8的安全性增長有關。 
    要容許您執行HTTPS請求,能夠經過編輯Java jdk.certpath.disabledAlgorithms屬性來降級Java安裝的安全性。根據您的狀況,刪除MD2值或大小約束。 
    此屬性在此文件中:
    JAVA_HOME / JRE / lib / security中/ java.security
    有關詳細信息,請參閱 錯誤56357

不兼容的變化

  • 從JMeter 2.12開始,默認狀況下,全部線程組中的活動線程和當前線程組中的活動線程都保存爲CSV或XML結果,請參閱 Bug 57025這一般是預期的行爲,由於您但願在測試期間擁有正在運行的線程數。可是,若是要恢復到之前的行爲,請設置屬性jmeter.save.saveservice.thread_counts = false
  • 自JMeter 2.12起,Mail Reader Sampler將顯示1個樣本數而不是檢索到的消息數,請參閱 錯誤56539
  • 從JMeter 2.12開始,當使用緩存管理器時,若是在緩存中找到資源,則不會建立SampleResult,在之前的版本中,返回了具備空內容和204返回代碼的SampleResult,請參閱 錯誤54778您能夠選擇不一樣的方法來處理這種狀況,請參閱jmeter.properties中的cache_manager.cached_resource_mode
  • 從JMeter 2.12開始,日誌查看器在關閉時將再也不清除日誌,即便關閉也能夠使用日誌。 Bug 56920 有關配置此組件的詳細信息,請閱讀提示和技巧>啓用調試日誌記錄

Bug修復

HTTP採樣器和測試腳本記錄器

  • 錯誤55998 - HTTP記錄 - 用戶定義的變量替換端口值不起做用
  • 錯誤56178 - keytool錯誤:AVA中無效的轉義字符: - 必須轉義某些字符
  • 錯誤56222 - NPE若是jmeter.httpclient.strict_rfc2616 = true且位置不是絕對的
  • 錯誤56263 - DefaultSamplerCreator應將BrowserCompatible Multipart設置爲true
  • 錯誤56231 - 將重定向位置處理從HC3 / HC4採樣器移動到HTTPSamplerBase#followRedirects()
  • 錯誤56207 - URL在HC3.1和HC4採樣器中的重定向上編碼
  • 錯誤56303 - 目標控制器組合列表的寬度應設置爲當前面板大小,而不是控制器的標籤大小
  • 錯誤54778 - 當在Cache中找到資源時,HTTP Sampler不該返回204,使其能夠使用新屬性cache_manager.cached_resource_mode進行配置

其餘採樣器

  • 錯誤55977 - JDBC池keepalive氾濫
  • 錯誤55999 - 當內容超出顯示時,jms點對點採樣器上的滾動條不起做用
  • 錯誤56198 - JMSSampler:當JMS提供程序的JNDI底層實現不符合Context.getEnvironment契約時,拋出NullPointerException
  • 錯誤56428 - MailReaderSampler - 它應該使用mail.pop3s。*屬性嗎?
  • 錯誤46932 - select語句中給出的別名不用做JDBC請求的響應數據中的列標題。根據Nicola Ambrosetti的報告和分析
  • 錯誤56539 - 郵件閱讀器取樣器:當要檢索的郵件數量優於1時,樣本數量應僅顯示1而不是檢索到的郵件數量
  • 錯誤56809 - JMSSampler過早關閉InitialContext。供稿人:Bradford Hovinen(hovinen at gmail.com)
  • 錯誤56761 - JMeter嘗試中止已中止的JMS鏈接並顯示「鏈接已關閉」
  • 錯誤57068 - 在「測試操做」中輸入負持續時間時未引起錯誤
  • 錯誤57078 - LagartoBasedHTMLParser沒法解析包含無類型輸入的頁面
  • 錯誤57183 - JMSSampler:對於輸入字符串:「」java.lang.NumberFormatException(對於Expiration或Priority字段)

控制器

  • 錯誤56243 - Foreach在後續迭代中對索引的工做不正確
  • 錯誤56276 - 一旦循環計數評估爲零,循環控制器就會中斷
  • 錯誤56160 - 在IfController中使用WhileController時出現StackOverflowError
  • 錯誤56811 - 結果狀態操做處理程序或線程組中的「啓動下一個線程循環」和測試操做中的「轉到下一個循環迭代」行爲錯誤,而且已檢查「生成父採樣器」的TransactionController

聽衆

  • 錯誤56706 - SampleResult #getResponseDataAsString()不在響應主體中使用編碼來影響PostProcessors和ViewResultsTree。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57052 - ArithmeticException:/當sampleCount等於0時爲零

定時器,斷言,配置,預處理器和後處理器

  • 錯誤56162 - HTTP緩存管理器不該緩存PUT / POST等。
  • 錯誤56227 - AssertionGUI:NPE斷言鼠標選擇
  • 錯誤41319 - URLRewritingModifier:容許參數值進行url編碼

功能

國際化

  • 錯誤56111 - 德語翻譯中的「評論」不正確

通常

  • 錯誤56059 - 使用TextAreaEditor時,較舊的TestBeans與2.11不兼容
  • 錯誤56080 - 使用Java 8 Early Access Build轉換錯誤com.thoughtworks.xstream.converters.ConversionException
  • 錯誤56182 - 沒法使用bshclient.jar觸發bsh腳本; 套接字意外關閉
  • 錯誤56360 - HashTree和ListedHashTree沒法使用Java 8進行編譯
  • 錯誤56419 - JMeter沒法保存結果
  • 錯誤56662 - 不記住在偵聽器中另存爲xml
  • 錯誤56367 - 關於maven central的JMeter 2.11觸發了一個不存在的依賴關係rsyntaxtextarea 2.5.1,升級到2.5.3
  • 錯誤56743 - mail2.xml上的郵件列表存檔錯誤。供稿人:Felix Schumacher(falleix.schumacher在internetallee.de)
  • 錯誤56763 - 刪除JMeter未使用的Oracle圖標(以及丟失的許可證)
  • 錯誤54100 - 切換語言沒法保留工具欄按鈕狀態(啓用/禁用)
  • 錯誤54648 - 在樹上的元素上使用CMD + C(鍵盤快捷鍵或UI菜單項)時,OS X上的JMeter GUI崩潰
  • 錯誤56962 - JMS GUI應禁用受jndi.properties影響的全部字段複選框
  • 錯誤57061 - 另存爲測試片斷沒法克隆深度選定的節點。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57075 - 未處理 BeanInfoSupport.MULTILINE屬性
  • 錯誤57076 - BooleanPropertyEditor#getAsText()必須返回getTags()中的值
  • 錯誤57088 - ResultCollector.testEnded中的NPE

改進

HTTP採樣器和測試腳本記錄器

  • 錯誤55959 - 當測試腳本記錄器因I / O問題而失敗時,改進錯誤消息
  • 錯誤52013 - 測試腳本記錄器的子視圖結果樹沒有考慮測試腳本記錄器排除/包含的URL。基於詹姆斯梁的報道和分析
  • 錯誤56119 - 使用計時器的每次其餘嘗試都沒法上傳文件。爲不發送Keep-Alive標頭的服務器啓用空閒超時。
  • 錯誤56272 - MirrorServer應支持狀態和重定向的查詢參數
  • 錯誤56772 - 解析嵌入資源時處理IE條件註釋
  • 錯誤57026 - HTTP(S)測試腳本記錄器:更好的默認設置。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57107 - 補丁建議:將DAV動詞添加到HTTP Sampler。供稿人:Philippe Jung(來自famille-jung.fr的apache)
  • 錯誤56357 - 證書不符合算法約束:添加註釋以指示如何刪除Java安裝這些新的安全性約束

其餘採樣器

  • 錯誤56033 - 向SMTP採樣器添加鏈接超時和讀取超時
  • 錯誤56429 - MailReaderSampler - 若是不是所有須要,則無需獲取全部消息
  • 錯誤56427 - MailReaderSampler加強:僅讀取郵件頭
  • 錯誤56510 - JMS Publisher /點對點:添加JMSPriority和JMSExpiration

控制器

  • 錯誤56728 - 用於序列化測試塊的新關鍵部分控制器。部分基於由Mikhail Epikhin(eyehin-m在yandex.ru)提供的補丁
  • 錯誤57145 - RandomController:使用ThreadLocalRandom而不是Random來得到更好的性能

聽衆

  • 錯誤56228 - 查看結果樹:經過更改渲染器的位置並容許自定義排序來改善人體工程學
  • 錯誤56349 - 「摘要」是「生成摘要結果」組件的錯誤名稱,文檔已闡明
  • 錯誤56769 - 爲響應時間圖監聽器添加在jmx文件中保存/恢復格式設置的功能
  • 錯誤57025 - SaveService:更好的默認值,默認狀況下保存線程計數

定時器,斷言,配置,預處理器和後處理器

  • 錯誤56691 - 同步計時器:等待時添加超時
  • 錯誤56701 - HTTP受權管理器/ Kerberos身份驗證:當服務器端口既不是80也不是443時,將端口添加到SPN。基於來自Dan Haughey(來自swinton.co.uk的dan.haughey)和Felix Schumacher(來自internetallee的felix.schumacher)的補丁。德)
  • 錯誤56841 - 新配置元素:DNS緩存管理器,用於改進CDN的測試。基於來自Dzmitry Kashlach(gz的dzmitrykashlach)的補丁,由BlazeMeter Ltd.提供。
  • 錯誤52061 - 容許訪問Regex Extractor中的請求標頭。基於來自Dzmitry Kashlach(gz的dzmitrykashlach)的補丁,由BlazeMeter Ltd.提供。

功能

  • 錯誤56708 - __jexl2沒法擴展多個CPU核心。根據Mikhail Epikhin(eyehin-m at yandex.ru)提供的分析和補丁
  • 錯誤57114 - 性能:僅將值做爲實例變量的函數不該同步執行。基於Ubik Load Pack支持和Vladimir Sitnikov的分析,由Vladimir Sitnikov(sitnikov.vladimir在gmail.com)提供的補丁

國際化

通常

  • 錯誤21695 - Unix jmeter啓動腳本假定它在PATH上,而不是連接
  • 錯誤56292 - 在啓動文件中添加Java版本的檢查,並在Java v8引擎時禁用某些選項
  • 錯誤56298 - JSR223語言顯示未顯示將使用哪一個引擎
  • 錯誤56455 - 批處理文件:刪除對非NT Windows shell腳本的支持
  • 錯誤52707 - 「打開文件」對話框使用上次打開的文件夾做爲起始文件夾。基於來自Dzmitry Kashlach(gz的dzmitrykashlach)的補丁,由BlazeMeter Ltd.提供。
  • 錯誤56807 - 可以強制刷新ResultCollector文件。供稿人:Andrey Pohilko(來自ya.ru的apc4)
  • 錯誤56921 - 模板:改進記錄模板以忽略嵌入資源案例和URL參數。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤42248 - 對測試計劃樹修改的撤消 - 重作支持。由Andrey Pohilko(apa4在ya.ru)開發並由BlazeMeter Ltd.提供.Ubik Load Pack的額外貢獻(ubikloadpack.com支持)
  • 錯誤56920 - LogViewer:即便關閉它也會使其接收全部日誌事件。供稿人:Ubik Load Pack(ubikloadpack.com支持)
  • 錯誤57083 - 簡化了CachedResourceMode枚舉。供稿人:Graham Russel(graham at ham1.co.uk)
  • 錯誤57082 - ComboStringEditor:將hashCode添加到覆蓋等於的內部類。供稿人:Graham Russel(graham at ham1.co.uk)
  • 錯誤57081 - 更新checkstyle以僅檢查java,xml,xsd,dtd,htm,html和txt文件中的選項卡(不是圖像!)。供稿人:Graham Russell(graham at ham1.co.uk)
  • 錯誤56178 - 在生成代理證書以前,確實替換用戶名中的反斜槓。供稿人:Graham Russel(graham at ham1.co.uk)
  • 錯誤57084 - 在BeanShellClient中使用後關閉套接字。供稿人:Graham Russel(graham at ham1.co.uk)

非功能性變化

  • 錯誤57117 - 將HTTPS測試腳本記錄器的默認密碼從SSLv3增長到TLS
  • 更新爲commons-lang3 3.3.2(來自3.1)
  • 更新爲commons-codec 1.9(從1.8開始)
  • 更新爲commons-logging 1.2(從1.1.3開始)
  • 更新爲tika 1.6(從1.4開始)
  • 更新爲xercesImpl 2.11.0(從2.9.1開始)
  • 更新到xml-apis 1.4.01(從1.3.04開始)
  • 更新到xstream 1.4.8(從1.4.4開始)
  • 更新爲jodd 3.6.1(來自3.4.10)
  • 更新爲rsyntaxtextarea 2.5.3(從2.5.1開始)
  • 將xalan和序列化程序更新爲2.7.2(從2.7.1開始)
  • 已更新至jsoup-1.8.1.jar(從1.7.3開始)

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • 詹姆斯梁(jliang at andera.com)
  • Emmanuel Bourg(eachel at apache.org)
  • Nicola Ambrosetti(gmail.com的ambrosetti.nicola)
  • Ubik Load Pack
  • Mikhail Epikhin(yyedex.ru的epihin-m)
  • Dan Haughey(dan.haughey at swinton.co.uk)
  • 菲利克斯·舒馬赫(falleix.schumacher at internetallee.de)
  • Dzmitry Kashlach(gz的dzmitrykashlach)
  • Andrey Pohilko(在ya.ru上的apc4)
  • Bradford Hovinen(hovinen at gmail.com)
  • BlazeMeter Ltd.
  • 格雷厄姆羅素(graham at ham1.co.uk)
  • Philippe Jung(來自famille-jung.fr的apache)
  • Vladimir Sitnikov(gmail.com的sitnikov.vladimir)


咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

  • Oliver LLoyd(發送電子郵件至oliverlloyd.com)獲取 Bug 56119的幫助
  • Vladimir Ryabtsev(gmail.com的greatvovan)對 Bug 56243 Bug 56276的幫助
  • Adrian Speteanu(gmail.com上的asp.adieu)和Matt Kilbride(來自gmail.com的matt.kilbride)對 Bug 54648的反饋和測試
  • Shmuel Krakower(shmulikk at gmail.com)的測試和Undo / Redo功能報告

若是咱們遺漏了其餘人,請道歉。

 

版本2.11

摘要

新的和值得注意的

HTTP(S)測試腳本記錄器改進

自JMeter 2.10在HTTP(S)測試腳本記錄器上引入重大更改以來,已經進行了如下改進:

  • 更好地檢測keytool實用程序的丟失或無效配置
  • 新的系統屬性keytool.directory(請參閱system.properties)容許您在非標準安裝的狀況下配置包含keytool的目錄

 

JMS Publisher /點對點:添加在JMS頭屬性中設置類型值的功能

在採樣器JMS Publisher和JMS Point-to-Point中,您如今能夠爲JMS標頭屬性設置值類。之前只有String纔有可能。

 

 

查看結果樹:添加XPath測試程序

在View Results Tree偵聽器中,能夠使用新的XPath測試程序來測試XPATH表達式。

 

 

可以在JsseSslManager中爲證書密鑰選擇客戶端別名,以即可以使Mutual SSL身份驗證測試更加靈活

在測試基於客戶端的證書身份驗證時,您如今能夠經過新字段「變量名稱保留證書別名」更好地控制您使用的證書,此字段容許您選擇要發送給服務器進行身份驗證的證書。您能夠使用CSV數據集做爲變量值的持有者。

 

 

添加「另存爲測試片斷」選項

在文件菜單中,新選項容許將一組元素保存爲測試片斷。

 

 

默認狀況下,在非GUI模式下啓用Summariser

從命令行運行JMeter時,如今JMeter顯示Summariser模式的一些統計信息。

 

 

事務控制器:爲新建立的元素更改默認屬性「包括計時器的持續時間...」

從2.11開始,只要定時器暫停,事務控制器默認配置爲排除前/後處理器的處理時間。

 

 

已知的錯誤

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 當If Controller的條件在第一次迭代時老是爲假時,監聽器不會顯示迭代計數(參見 錯誤52496)。解決方法是在If Controller的同一級別(或更高級別)添加一個採樣器。例如,具備0等待時間的測試操做採樣器(不生成樣本),或者將全部字段設置爲False的調試採樣器(以減少樣本大小)。
  • 綠色框左側顯示的數字是活動線程數/線程總數,線程總數僅適用於本地運行的測試,不然將顯示0(參見 錯誤55510)。
  • 請注意, 在某些Linux系統上存在Java中的錯誤,在運行測試用例或JMeter自己時會將其顯示爲如下錯誤:
     [java]警告:沒法刷新用戶首選項:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException:不支持:indent-number
    
    這不會影響JMeter操做。自Java 7b05以來,此問題已獲得解決。
  • 對於Linux系統上的Java 1.6和Gnome 3,JMeter菜單可能沒法正常工做(在鼠標單擊和菜單之間切換)。這是一個已知的Java錯誤(參見 錯誤54477)。解決方法是使用Java 7運行時(OpenJDK或Oracle JDK)。
  • 使用Oracle Java 7和Mac Book Pro Retina Display,JMeter GUI可能看起來很模糊。這是一個已知的Java錯誤,請參閱Bug JDK-8000629解決方法是使用Java 7 update 40運行時修復此問題。

不兼容的變化

  • 建立新的事務控制器時,將從2.11版開始取消選中屬性「包含生成的樣本中的計時器和事先處理器的持續時間」
  • 在非GUI模式下,自2.11彙總器啓用時頻率爲30秒
  • JMeter對重定向處理更加寬容,並經過容許相對位置放寬RFC2616。請參閱屬性「 jmeter.httpclient.strict_rfc2616在」 jmeter.properties改變這種行爲,請參閱 錯誤55717
  • 建立新的響應斷言時,屬性「模式匹配規則」如今默認爲從2.11版開始的子串

Bug修復

HTTP採樣器和測試腳本記錄器

  • 錯誤55815 - Proxy#getDomainMatch沒法正確處理通配符
  • 錯誤55717 - 當HttpClient4和HttpClient3.1的URL處於相對格式時,重定向處理不當

其餘採樣器

  • 錯誤55685 - 操做系統採樣器:超時選項不保存和正確恢復值,而且沒有初始化正確超時

控制器

  • 錯誤55816 - 未選中「包含持續時間...」的事務控制器不會忽略上一個子採樣器的處理時間

聽衆

  • 錯誤55826 - 字段RespTimeGraphVisualizer.internalList中列表的非同步併發訪問

定時器,斷言,配置,預處理器和後處理器

  • 錯誤55694 - 斷言和提取器:當範圍可變且缺乏變量時,避免NullPointerException
  • 錯誤55721 - HTTP緩存管理器 - 錯誤解釋了no-store指令

功能

  • 錯誤55871 - 當數字以前/以後存在空格字符時,使用intSum()函數的結果錯誤。由Milamber根據James Liang的提議提供。

國際化

通常

  • 錯誤55739 - 遠程測試:GUI模式下的總線程數顯示無效的線程總數

改進

HTTP採樣器和代理

其餘採樣器

  • 錯誤55589 - JMS發佈者/點對點:添加在JMS頭屬性中設置類型值的功能。

控制器

  • 錯誤55854 - 事務控制器:爲新建立的元素更改默認屬性「包括計時器的持續時間...」

聽衆

  • 錯誤55610 - 查看結果樹:添加XPath測試程序

定時器,斷言,配置,預處理器和後處理器

  • 錯誤55908 - 響應斷言:更改模式匹配規則默認爲建立時的子串以得到更好的性能
  • 錯誤54977 - 可以在JsseSslManager中爲cert密鑰選擇客戶端別名,以即可以使Mutual SSL身份驗證測試更加靈活。供稿人:UBIK Load Pack(ubikloadpack.com支持)

功能

國際化

通常

  • 錯誤55693 - 添加「另存爲測試片斷」選項
  • 錯誤55753 - 改進FilePanel行爲以從Filename字段中設置的值開始(若是有)。供稿人:UBIK Load Pack(ubikloadpack.com支持)
  • 錯誤55756 - HTTP鏡像服務器:添加設置標頭的功能
  • 錯誤55852 - 當charset值被單引號括起時,在解析時更寬鬆
  • 錯誤55857 - 性能:AbstractProperty應該測試空虛以免異常拋出
  • 錯誤55858 - 啓動性能:在啓動時,BeanInfoSupport應測試密鑰可用性而不是拋出
  • 錯誤55865 - 性能:默認狀況下,在HttpClient 4和3.1中禁用失效檢查
  • 錯誤55512 - 默認狀況下,應在非GUI模式下啓用Summariser

非功能性變化

  • 更新至rsyntaxtextarea-2.5.1.jar(自2.5.0起)
  • 更新爲(3.4.8)和jodd-lagarto-3.4.9.jar(來自3.4.9)的jodd-core-3.4.9.jar
  • 已更新至jsoup-1.7.3.jar(從1.7.2開始)
  • 已更新至mail-1.5.0-b01(從1.4.4開始)
  • 更新到mongo-java-driver-2.11.3(從2.11.2開始)

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • 詹姆斯梁(jliang at andera.com)
  • UBIK Load Pack(ubikloadpack.com支持)


咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

  • John Natsioulas(yahoo.com.au的john_natsioulas)
  • Antonio Gomes Rodrigues(g00上的ra0077)

若是咱們遺漏了其餘人,請道歉。

 

版本2.10

摘要

新的和值得注意的

核心改進

新的性能改進

 

  • 高吞吐量測試(沒有暫停)已經取得了巨大的性能提高,參見 Bug 54777
  • 已經修復了沒必要要的SSL上下文重置的問題,這提升了純HTTP測試的性能,請參閱 Bug 55023
  • 經過切換到JODD / Lagarto HTML Parser,在HTML頁面中解析嵌入式資源的重要性能提高,請參閱 錯誤55632

 

視圖樹結果中的新CSS / JQuery測試程序

View Tree結果中的新CSS / JQuery Tester使得CSS / JQuery Extractor成爲JMeter中的一等公民,您如今能夠很是輕鬆地測試您的表達式

 

 

已經對HTTP(S)記錄進行了許多改進

 

 
「HTTP代理服務器」測試元素已重命名爲「HTTP(S)測試腳本記錄器」。
 

 

您如今能夠經過新的MongoDB Source Config加載測試MongoDB

 

 

 

 

Kerberos身份驗證已添加到Auth Manager

 

 

如今能夠在源IP地址以外使用設備

 

 

您如今能夠經過新的MongoDB腳本對MongoDB腳本進行功能測試

 

 

已將超時添加到OS Process Sampler

 

 

查詢超時已添加到JDBC請求中

 

 

如今能夠使用新函數(__urlencode和__urldecode)對URL編碼的字符進行編碼/解碼

 

 

如今,經過添加一個強制NON-GUI JVM在測試結束後退出的新標誌,能夠緩解持續集成

見jmeter屬性:

jmeterengine.force.system.exit

 

HttpSampler如今容許DELETE Http Method擁有一個主體(適用於HC4和HC31實現)。這容許例如測試Elastic Search API

 

 

添加了2個HtmlParser實現以改進嵌入式資源解析

您能夠選擇用於在HTML頁面中解析嵌入式資源的實現:請參閱jmeter.properties並查看屬性「htmlParser.className」。

  • org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser得到最佳表現
  • org.apache.jmeter.protocol.http.parser.JSoupBasedHtmlParser用於最準確的解析和功能測試

 

分佈式測試已獲得改進

 

  • 如今,每一個節點上的線程數都會報告給控制器。

     

     

     

     

  • BatchSampleSender的性能改進( 錯誤 55423 
  • 添加2個SampleSender模式(StrippedAsynch和StrippedDiskStore),請參閱jmeter.properties

 

ModuleController已獲得改進,能夠更好地處理對引用控制器的更改

改進的類加載器配置,請參閱 錯誤55503

 

  • 插件依賴項的新屬性「plugin_dependency_paths」
  • 屬性「search_paths」,「user.classpath」和「plugin_dependency_paths」如今自動添加配置目錄中的全部jar

 

最佳實踐部分已獲得改進,確保您閱讀它以充分利用JMeter

請參閱最佳實踐

GUI和人體工程學改進

新模板功能容許您從現有模板建立測試計劃或將模板合併到測試計劃中

 

 

 

 

如今能夠保存工做臺

 

 

語法顏色已添加到腳本元素(BeanShell,BSF和JSR223),MongoDB和JDBC元素中,使代碼更具可讀性,並容許UNDO / REDO經過CTRL + Z / CTRL + Y

具備語法顏色的BSF採樣器

 

具備語法顏色的JSR223預處理器

 

如今,更好的編輯器可用於具備大文本內容的測試元素,如HTTP Sampler,以及提供行編號的JMS相關測試元素,並容許UNDO / REDO經過CTRL + Z / CTRL + Y

JMeter GUI如今能夠徹底國際化,全部剩餘的問題都已修復

目前法語已翻譯其全部標籤。其餘語言部分翻譯,能夠經過閱讀本地化(翻譯指南)自由撰寫翻譯

測試計劃中的移動元素已在許多方面獲得改進

如今,在多個節點上拖放測試計劃樹中的元素變得更加容易

 

 

請注意,因爲Java中的錯誤,您沒法在最後一個節點以後刪除節點。解決方法是在最後一個節點以前刪除它,而後將最後一個節點拖放到剛刪除的節點以前。

添加了新的快捷方式以移動樹中的元素。

(alt +向上箭頭)和(alt +向下箭頭)移動父節點內的元素
(alt +向左箭頭)和(alt +向右箭頭)在樹深度上下移動元素

響應時間圖Y軸如今能夠縮放

 

 

JUnit Sampler如今提供有關配置錯誤的更多詳細信息

已知的錯誤

  • Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。
  • 當If Controller的條件在第一次迭代時老是爲假時,監聽器不會顯示迭代計數(參見 錯誤52496)。解決方法是在If Controller的同一級別(或更高級別)添加一個採樣器。例如,具備0等待時間的測試操做採樣器(不生成樣本),或者將全部字段設置爲False的調試採樣器(以減少樣本大小)。
  • Web服務採樣器不考慮HTTP響應狀態來計算響應的狀態,所以包含非空體的響應500將被視爲成功,請參閱錯誤54006要解決此問題,請確保始終讀取響應並在響應中添加響應斷言檢查文本。
  • 綠色框左側顯示的數字是活動線程數/線程總數,這些僅適用於本地運行的測試; 它們不包括在使用客戶端 - 服務器模式時在遠程系統上啓動的任何線程(參見 錯誤54152)。
  • 請注意, 在某些Linux系統上存在Java中的錯誤,在運行測試用例或JMeter自己時會將其顯示爲如下錯誤:
     [java]警告:沒法刷新用戶首選項:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException:不支持:indent-number
    
    這不會影響JMeter操做。自Java 7b05以來,此問題已獲得解決。
  • 對於Linux系統上的Java 1.6和Gnome 3,JMeter菜單可能沒法正常工做(在鼠標單擊和菜單之間切換)。這是一個已知的Java錯誤(參見 錯誤54477)。解決方法是使用Java 7運行時(OpenJDK或Oracle JDK)。
  • 使用Oracle Java 7和Mac Book Pro Retina Display,JMeter GUI可能看起來很模糊。這是一個已知的Java錯誤,請參閱Bug JDK-8000629解決方法是使用Java 7 update 40運行時修復此問題。

不兼容的變化

  • 若是subject字段爲空,則SMTP Sampler如今使用eml文件主題
  • 有了這個版本,autoFlush已經在PrintWriter上關閉,負責編寫測試結果。這樣能夠提升密集測試的吞吐量,可是在JMeter崩潰的狀況下會致使更多的測試數據丟失(極少)。要恢復到之前的行爲,請將jmeter.save.saveservice.autoflush屬性設置true
  • 功能助手對話框的 快捷鍵如今是CTRL + SHIFT + F1(Mac OS的CMD + SHIFT + F1)原始鍵序列(Ctrl + F1)在某些位置不起做用(它由Java Swing ToolTipManager使用)。所以有必要改變捷徑。
  • Web服務(SOAP)請求已默認從GUI中刪除,由於不推薦使用Element。(將HTTP請求 與正文數據一塊兒使用,另請參閱模板構建SOAP Web服務測試計劃),若是須要顯示它,請參閱jmeter.properties中的屬性not_in_menu
  • 事務控制器如今設置二維碼生成父採樣 (若是生成的父樣檢查),用於第一失敗的孩子的響應代碼中的一個子失效的狀況下,在之前的版本響應代碼是空的。
  • 在之前的版本中,IncludeController能夠運行位於線程組內的測試元素,這種行爲(未記錄)可能致使奇怪的行爲,在此版本中已被刪除(請參閱 錯誤55464)。包含測試元素的正確方法是使用包含控制器文檔中所述的測試片斷
  • HttpClient 3.1和HttpClient 4.x採樣器的重試計數已更改成0之前默認值爲1,這可能會致使意外的額外流量。
  • 今後版本開始,HTTP(S)測試腳本記錄器嘗試檢測樣本什麼時候是先前重定向的結果。若是當前響應是重定向,JMeter將保存重定向URL。收到下一個請求時,會將其與保存的重定向URL進行比較,若是匹配,JMeter將禁用生成的樣本。要恢復到之前的行爲,請設置屬性proxy.redirect.disabling = false
  • 今後版本開始,在HTTP(S)測試腳本記錄器中,若是將分組設置爲將每一個組放入新的事務控制器中,則記錄器將建立事務控制器實例,其中包括計時器的包含持續時間和生成的樣本中的事先處理器設置爲false 。此默認值反映的響應時間更準確。
  • __escapeOroRegexpChars函數(轉義ORO保留字符)再也不修剪該值(請參閱 錯誤55328
  • 所述公共琅-2.6.jar已經從嵌入在庫被去除的JMeter / lib中的文件夾,由於它不是在運行時所需的由JMeter的(它僅由Apache的速度,用於生成文檔)。若是您使用依賴於它的任何插件或第三方代碼,則須要將其添加到jmeter / lib文件夾中

Bug修復

HTTP採樣器和代理

  • 錯誤54627 - JMeter代理GUI:當存在具備長名稱的採樣器時,採樣器設置類型佔據整個屏幕。
  • 錯誤54629 - HTMLParser不提取<object>標記網址。
  • 錯誤55023 - SSL上下文重用功能(51380)對非ssl請求性能/吞吐量產生負面影響。根據Brent Cromarty的分析(brent.cromarty在yahoo.ca)
  • 錯誤55092 - 當嵌入資源URL格式錯誤時,顯示「WARN - jmeter.protocol.http.sampler.HTTPSamplerBase:檢測到(不該發生)空URL」的日誌消息。
  • 錯誤55161 - SoapSampler.setPostHeaders中的無用處理。供稿人:Adrian Nistor(yinois1 at illinois.edu)
  • 錯誤54482 - HC沒法跟蹤帶有非編碼字符的重定向。
  • 錯誤54142 - 當路徑包含「|」時,HTTP代理服務器拋出異常 字符。
  • 錯誤55388 - HC3不容許IP Source字段覆蓋httpclient.localaddress。
  • 錯誤55450 - HEAD重定向應保持爲HEAD
  • 錯誤55455 - 使用HTTPClient4的HTTPS忽略cps設置
  • 錯誤55502 - 代理在錄製時生成空的http:/條目
  • 錯誤55504 - 當瀏覽器提示進行證書覆蓋時,代理服務器錯誤地發出CONNECT請求
  • 錯誤55506 - 代理應該向任何已配置的偵聽器發送失敗的請求
  • 錯誤55545 - HTTP代理服務器GUI不該容許選擇「跟隨」和「自動」重定向

其餘採樣器

  • 錯誤54913 - JMSPublisherGui錯誤地恢復其狀態。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤55027 - 測試操做迴歸,未記錄持續時間值(每晚構建)。
  • 錯誤55163 - 調用testStarted(String)/ testEnded(String)時,BeanShellTestElement沒法引用字符串。
  • 錯誤55349 - 若是未指定輸入文件且應用程序請求輸入,NativeCommand將掛起。
  • 錯誤55462 - 若是樣本失敗,系統採樣器不該更改採樣器標籤

控制器

  • 錯誤54467 - 循環控制器:每一個父迭代只計算一次循環值。
  • 錯誤54985 - 使事務控制器將生成的父採樣器的響應代碼設置爲第一個失敗的子進程的響應代碼,以防其中一個子進程出現故障。供稿人:Mikhail Epikhin(yyedex.ru的epihin-m)
  • 錯誤54950 - ModuleController:若是在首次運行後發生更改而且禁用了引用的節點,則不會考慮對引用的模塊的更改。
  • 錯誤55201 - ForEach控制器排除起始索引幷包括結束索引(澄清文檔)。
  • 錯誤55334 - 添加包含控制器到測試計劃(由包含控制器組成)而不保存TestPlan致使包含的代碼在保存以前不被考慮。
  • 錯誤55375 - 若是ModuleController的名稱與目標節點相同,則在非GUI模式下使用ModuleController的StackOverflowError。
  • 錯誤55464 - 包含控制器運行包含的線程組

聽衆

  • 錯誤54589 - 若是html頁面使用雙字節字符集,則查看結果樹有不少垃圾字符。
  • 錯誤54753 - 在使用統計模式時,若是key_on_threadname = false,則SampleResult.getSampleLabel()處的StringIndexOutOfBoundsException。
  • 錯誤54685 - 若是在客戶端但未在服務器中設置「sample_variable」,則爲ArrayIndexOutOfBoundsException。
  • 錯誤55111 - ViewResultsTree:若是須要垂直滾動條,則不會重寫文本。由Milamber供稿

定時器,斷言,配置,預處理器和後處理器

  • 錯誤54540 - IHM中未標記「HTML參數掩碼」。
  • 錯誤54575 - CSS / JQuery Extractor:選擇JODD實現老是使用JSOUP。
  • 錯誤54901 - 響應斷言GUI表現得很奇怪。
  • 錯誤54924 - XMLAssertion使用JMeter JVM file.encoding而不是響應編碼,而且不清除threadlocal變量。
  • 錯誤53679 - 具備本地化的常量吞吐量計時器錯誤。Ludovic Garcia報道

功能

國際化

  • 錯誤55437 - ComboStringEditor在語言更改時不會轉換EDIT和UNDEFINED字符串
  • 錯誤55501 - __char函數的法語描述的編碼不正確。供稿人:Antonio Gomes Rodrigues(g00上的ra0077)

通常

  • 錯誤54504 - 找不到資源字符串:[clipboard_node_read_error]。
  • 錯誤54538 - GUI:上下文菜單太大。
  • 錯誤54847 - 剪切和粘貼被樹多選選中斷。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤54870 - 樹拖放可能會丟失葉節點(受影響的夜間構建)。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤55056 - 在Data.append()中浪費了工做。供稿人:Adrian Nistor(yinois1 at illinois.edu)
  • 錯誤55129 - 根據CVE-2013-1571,VU#225657更改Javadoc生成。
  • 錯誤55187 - 在HTTP CacheManager中計算ONE_YEAR_MS時出現整數溢出。
  • 錯誤55208 - JSR223語言條目重複; 摺疊到小寫。
  • 錯誤55203 - TestBeanGUI - 找到錯誤的語言設置。
  • 錯誤55065 - Spline3.converge()中的無用處理。供稿人:Adrian Nistor(yinois1 at illinois.edu)
  • 錯誤55064 - ReportTreeListener.isValidDragAction()中的無用處理。供稿人:Adrian Nistor(yinois1 at illinois.edu)
  • 錯誤55242 - BeanShell客戶端jar在升級到2.8後拋出異常。
  • 錯誤55288 - 對於HTTP請求,JMeter應默認爲0次重試。
  • 錯誤55405 - 若是缺乏lib / api或lib / doc,則ant download_jars任務失敗。由Antonio Gomes Rodrigues提供。
  • 錯誤55427 - TestBeanHelper應忽略GenericTestBeanCustomizer不支持的屬性
  • 錯誤55459 - 若是用戶選擇另外一個測試元素,使用ComboStringEditor的元素將丟失輸入值
  • 錯誤54152 - 在分佈式測試中:activeThreads在GUI和Summariser中始終顯示0
  • 錯誤55509 - 容許插件通知遠程線程號進展
  • 錯誤55572 - 當內容超出顯示時,參數的詳細信息彈出窗口不顯示滾動條
  • 錯誤55580 - 幫助窗格沒法滾動以啓動<a href="#">連接
  • 錯誤55600 - JSyntaxTextArea:第一次撤消時出現奇怪的行爲
  • 錯誤55655 - 若是一個引擎未正確啓動,則遠程中止/關閉所有時出現 NullPointerException。供稿人:UBIK Load Pack(ubikloadpack.com支持)
  • 錯誤55657 - 遠程和本地中止/關閉按鈕狀態不考慮本地/遠程狀態

改進

HTTP採樣器和代理

  • HTTP請求:行參數詳細信息框中的小用戶交互改進。由Milamber供稿
  • 錯誤55255 - 在HTTP DELETE方法中容許Body支持使用它的API(如ElasticSearch)。
  • 錯誤53480 - 向Http Sampler(HttpClient4)添加Kerberos支持。基於Felix Schumacher的補丁(felix.schumacher在internetallee.de)
  • 錯誤54874 - 除源IP地址外還支持設備。基於Dan Fruehauf的補丁(malkodan at gmail.com)
  • 錯誤55488 - 將.ico和.woff文件擴展名添加到代理記錄器中的默認建議排除項。由Antonio Gomes Rodrigues提供
  • 錯誤55525 - 代理應支持密鑰服務器條目的別名
  • 錯誤55531 - 代理記錄和重定向。添加了禁用重定向樣本的代碼。
  • 錯誤55507 - 代理SSL記錄沒法很好地處理外部嵌入式資源
  • 錯誤55632 - 有一個新的htmlParser實現,用於嵌入式資源解析,具備更好的性能
  • 錯誤55653 - HTTP(S)測試腳本記錄器應設置TransactionController屬性「包括計時器和生成的樣本中的事前處理器的持續時間」爲false

其餘採樣器

  • 錯誤54788 - JMS點對點採樣器 - GUI加強功能可提升可讀性和易用性。供稿人:Bruno Antunes(bmail.com在gmail.com)
  • 錯誤54798 - 使用來自EML文件的主題進行SMTP採樣器。供稿人:Mikhail Epikhin(yyedex.ru的epihin-m)
  • 錯誤54759 - 使用HTTPS的SSLPeerUnverifiedException,記錄屬性。
  • 錯誤54896 - JUnit sampler僅提供「沒法建立類的實例」消息,其中包含構造函數問題。
  • 錯誤55084 - 爲JDBC請求添加超時支持。供稿人:Mikhail Epikhin(yyedex.ru的epihin-m)
  • 錯誤55403 - 對OS採樣器的加強:支持超時
  • 錯誤55518 - 當選擇「Prepared Select Statement」,「Prepared Update Statement」或「Callable Statement」查詢類型時,添加限制每一個鏈接的緩存PreparedStatements數的功能

控制器

  • 錯誤54271 - 若是重命名測試計劃,模塊控制器會中斷。

聽衆

  • 錯誤54532 - 改進響應時間圖Y軸刻度具備巨大值或小值(<1000ms)。添加新字段以定義增量比例。由Milamber根據Luca Maragnani(luca.maragnani at gmail.com)的補丁提供的
  • 錯誤54576 - 查看結果樹:添加CSS / JQuery測試程序。
  • 錯誤54777 - 提升默認ResultCollector的性能。基於Mikhail Epikhin的補丁(eyehin-m at yandex.ru)
  • 錯誤55389 - 在請求數據中顯示IP源地址

定時器,斷言,配置,預處理器和後處理器

  • 錯誤54789 - XPath斷言 - GUI加強功能可提升可讀性和易用性。

功能

  • 錯誤54991 - 添加編碼/解碼URL編碼字符的函數(__urlencode和__urldecode)。由Milamber供稿。

國際化

  • 錯誤55241 - 須要GUI編輯器來處理基於具備本地化顯示字符串的枚舉的字段
  • 錯誤55440 - ComboStringEditor應該容許標籤依賴於語言
  • 錯誤55432 - 切換語言時,CSV數據集配置失去共享模式

通常

  • 錯誤54584 - MongoDB插件。基於Jan Paul Ettles的補丁(gmail.com的janpaulettles)
  • 錯誤54669 - 添加標誌,強制非GUI JVM在測試後退出。由Scott Emmons提供
  • 錯誤42428 - Workbench未隨測試計劃一塊兒保存。供稿人:Dzmitry Kashlach(來自gmail.com的dzmitrykashlach)
  • 錯誤54825 - 添加快捷方式以在樹中移動元素。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤54834 - 改進jmeter樹中的拖放。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤54839 - 在Mac上設置應用程序名稱。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤54841 - 正確處理Mac Os(CMD-Q)上的退出快捷方式。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤54844 - 在Mac Os上設置應用程序圖標。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤54864 - 在釋放Shift或Control以前,無需開始拖動便可在樹中啓用多選拖放。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤54945 - 添加Shutdown Hook以啓用陷阱kill或CTRL + C信號。
  • 錯誤54990 - 下載大文件,避免outOfMemory。
  • 錯誤55085 - 用戶體驗改進:可以從模板建立新的測試計劃。供稿人:UBIK Load Pack(ubikloadpack.com支持)
  • 錯誤55172 - 爲插件提供添加頂級菜單和菜單項的方法。
  • 錯誤55202 - 使用RSyntaxTextArea爲腳本元素(BeanShell,BSF和JSR223)和JDBC元素添加語法顏色。由Milamber提供,基於Marko Vlahovic(vlahovic74 at gmail.com)的補丁
  • 錯誤55175 - HTTPHC4Impl重構以容許更好的繼承。
  • 錯誤55236 - 模板 - 提供從新加載模板詳細信息的按鈕。
  • 錯誤55237 - 模板系統應支持相對的fileName條目。
  • 錯誤 55423 - BatchSampleSender:經過將listener.processBatch移動到synchronized塊以外來減小鎖定粒度
  • 錯誤55424 - 將剝離添加到現有SampleSenders
  • 錯誤55451 - 當文本內容足夠長以添加滾動條時,JSyntaxTextArea的測試元素GUI向下滾動
  • 錯誤55513 - StreamCopier不能與System.err或System.out一塊兒使用,由於它會關閉輸出流
  • 錯誤55514 - SystemCommand應支持任意輸入和輸出流
  • 錯誤55515 - SystemCommand應支持連接命令
  • 錯誤55606 - 將JSyntaxtTextArea用於Http請求,JMS測試元素
  • 錯誤55651 - 將JMeter應用程序圖標更改成Apache plume圖標

非功能性變化

  • 已更新至jsoup-1.7.2
  • 錯誤54776 - 將對Bouncy Castle的依賴關係更新爲1.48。供稿人:Emmanuel Bourg(ebourg at apache.org)
  • 更新爲HttpComponents Client 4.2.6(從4.2.3開始)
  • 更新爲HttpComponents Core 4.2.5(從4.2.3開始)
  • 更新爲commons-codec 1.8(從1.6開始)
  • 更新爲commons-io 2.4(來自2.2)
  • 更新爲commons-logging 1.1.3(從1.1.1開始)
  • 更新爲commons-net 3.3(來自3.1)
  • 更新至jdom-1.1.3(來自1.1.2)
  • 更新爲jodd-lagarto和jodd-core 3.4.8(來自3.4.1)
  • 更新到junit 4.11(從4.10開始)
  • 更新到slf4j-api 1.7.5(從1.7.2開始)
  • 更新爲tika 1.4(從1.3開始)
  • 更新到xmlgraphics-commons 1.5(從1.3.1開始)
  • 更新到xstream 1.4.4(從1.4.2開始)
  • 更新至BouncyCastle 1.49(自1.48起)
  • 錯誤54912 - JMeterTreeListener應該使用常量。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤54903 - 刪除對Activation Framework的依賴性。供稿人:Emmanuel Bourg(ebourg at apache.org)
  • 將commons-lang(2.6)移動到lib / doc,由於它只須要Velocity。
  • 從新組織和簡化的NOTICE和LICENSE文件。
  • 錯誤55411 - NativeCommand可能在其餘地方有用。複製代碼到oajorphan.exec。
  • 錯誤55435 - 能夠簡化ComboStringEditor以使大多數設置最終
  • 錯誤55436 - ComboStringEditor應該實現ClearGui
  • 錯誤55463 - 不建議使用Component.requestFocus(); 請改用requestFocusInWindow()
  • 錯誤55486 - 新的JMeter徽標。供稿人:UBIK Load Pack(ubikloadpack.com支持)
  • 錯誤55548 - 整理使用TestElement.ENABLED; 始終使用TestElement.isEnabled()/ setEnabled()
  • 錯誤55617 - jorphan集合的改進。供稿人:Benoit Wiart(gmail.com的benoit.wiart)
  • 錯誤55623 - 不該忽略無效/意外配置值
  • 錯誤55626 - 將HTTP代理服務器重命名爲HTTP(S)測試腳本記錄器

謝謝

咱們感謝上面的bug和改進部分中提到的全部貢獻者:

  • Bruno Antunes(gmail.com的bmantunes)
  • Emmanuel Bourg(eachel at apache.org)
  • 斯科特埃蒙斯
  • Mikhail Epikhin(yyedex.ru的epihin-m)
  • Dzmitry Kashlach(gz的dzmitrykashlach)
  • Luca Maragnani(gmail.com的luca.maragnani)
  • Milamber
  • Adrian Nistor(來自illinois.edu的nistor1)
  • Antonio Gomes Rodrigues(g00上的ra0077)
  • UBIK Load Pack(ubikloadpack.com支持)
  • Benoit Wiart(gmail.com的benoit.wiart)


咱們也感謝幫助咱們改進JMeter的bug記者。
對於此版本,咱們要特別感謝如下記者在咱們修復後作出的明確報告和測試:

  • 伊曼紐爾·海登(immanuel.hayden at gmail.com)
  • Danny Lade(dlade at web.de)
  • Brent Cromarty(yahoo.ca的brent.cromarty)
  • Wolfgang Heider(racon.at的wolfgang.heider)
  • Shmuel Krakower(shmulikk at gmail.com)

若是咱們遺漏了其餘人,請道歉。

 

版本2.9

新的和值得注意的

核心改進:

*引入了一個使用CSS或相似jquery的選擇器語法的新Extractor,它容許使用JODD或JSOUP實現

 

 

結果:JMeter變量中頁面的標題

 

* JMeter如今能夠處理不一樣元素中的不一樣類型的文檔(PDF,MsOffice文件,Apache OpenOffice的文件......)

  • 正則表達式提取器,從文檔中提取文本
  • 斷言響應,檢查文檔中的文本
  • 查看結果樹,查看文本文本

 

 

*新的Regex用戶參數預處理器,能夠使用正則表達式提取器從先前的響應中提取的引用來注入輸入參數名稱和值

 

 

* TCP採樣器:新選項

TCP Sampler已加強了新選項,容許設置Close Connection, SO_LINGER和 End of line(EOL)字節值

 

*一個新的函數__escapeOroRegexpChars(,)已經引入了引用ORO regexp元字符

* ForEach Controller:新領域

ForEach Controller如今有2個新字段來控制循環的開始和結束

 

*結果狀態操做處理程序如今有一個「開始下一個線程循環」的新選項

 

 

* JMS Publisher:新選項

JMS Publisher如今能夠發送字節消息

*內存和性能改進

當使用多個後處理器做爲採樣器的子進程時,此版本對每一個線程和CPU的內存使用量進行了重大改進

JSR223 Elements(使用Groovy,Scala,...做爲腳本語言)已獲得改進,可在文本區域中傳遞腳本時啓用編譯結果的緩存

默認狀況下,某些配置默認值已更改成提升性能(請參閱 錯誤54412),請參閱新增和值得注意的部分中的說明。

  • 分佈式測試如今使用MODE_STRIPPED_BATCH,它以批處理模式返回樣本(默認狀況下每100個樣本或每分鐘)。另請注意,MODE_STRIPPED_BATCH會從SampleResult中刪除響應數據,所以若是須要,請更改成其餘模式(jmeter.properties中的mode屬性)
  • 結果數據如今默認保存爲CSV(jmeter.properties中的jmeter.save.saveservice.output_format)

 

* XPath Assertion如今容許使用JMeter變量做爲輸入

 

 

GUI和人體工程學改進:

*搜索功能已獲得改進,可在更多內部元素字段中進行搜索並擴展搜索結果

*如今能夠在2個JMeter實例之間複製/粘貼> = 2.9版本

從一個JMeter實例複製元素:

 

將元素粘貼到第二個JMeter實例中:

 

* HTTP標頭管理器

容許從剪貼板複製到HeaderPanel,標題應該用新行分隔,並具備如下表單名稱:value

 

*模塊控制器

模塊控制器已獲得改進,能夠更好地呈現引用的控制器並經過單擊新按鈕進行擴展

 

* HTTP代理服務器

HTTP代理服務器如今有一個按鈕,能夠爲URL模式添加一組默認排除項,此列表能夠經過屬性配置:proxy.excludes.suggested

 

* HTTP代理服務器中的目標控制器渲染已獲得改進

HTTP代理服務器記錄:

* HTTP代理服務器如今自動使用帶有Raw Post Body模式的HTTP請求,用於只有一個未命名參數的樣本(JSON,XML,GWT,...)

* HTTP代理服務器不強制用戶在HTTP採樣器設置中選擇採樣器的類型,這樣能夠更容易地在實現之間切換,由於採樣器再也不具備此信息集

 

 

* SamplerCreator界面已通過豐富,可知足插件提供商的新要求

*如今能夠經過修改proxy.binary.types屬性來添加application / x-www-form-urlencoded來爲x-www-form-urlencoded POST請求建立二進制採樣器

*在讀取CSV文件時改進了時間戳格式自動檢測

已知的錯誤

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

當If Controller的條件在第一次迭代時老是爲假時,監聽器不會顯示迭代計數(參見 錯誤52496)。解決方法是在If Controller的同一級別(或更高級別)添加一個採樣器。例如,具備0等待時間的測試操做採樣器(不生成樣本),或者將全部字段設置爲False的調試採樣器(以減少樣本大小)。

Web服務採樣器不考慮HTTP響應狀態來計算響應的狀態,所以包含非空體的響應500將被視爲成功,請參閱 錯誤54006要解決此問題,請確保始終讀取響應並在響應中添加響應斷言檢查文本。

更改語言可能會破壞如下元素的部分配置(請參閱 錯誤53679):

  • CSV數據集配置(共享模式將丟失)
  • 恆定吞吐量計時器(根據丟失計算吞吐量)

 

綠色框左側顯示的數字是活動線程數/線程總數,這些僅適用於本地運行的測試; 它們不包括在使用客戶端 - 服務器模式時在遠程系統上啓動的任何線程(參見 錯誤54152)。

請注意,在某些Linux系統上存在Java中的錯誤,在運行測試用例或JMeter自己時會將其顯示爲如下錯誤:

 [java]警告:沒法刷新用戶首選項:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException:不支持:indent-number

這不會影響JMeter操做。

 

不兼容的變化

JMeter如今須要Java 6或更高版本的運行時。

默認狀況下,某些配置默認值已更改成提升性能(請參閱 錯誤54412),請參閱新增和值得注意的部分中的說明。

Webservice採樣器如今添加請求經過Header Manager設置的標頭,這些標頭之前被忽略

jdbcsampler.cachesize屬性已被刪除,它先前限制了Map <String,PreparedStatement>的每一個鏈接緩存的大小,它還限制了此映射的大小,該映射包含用於SQL查詢的PreparedStatement。這個限制引起了一個錯誤 Bug 53995它已被刪除,因此如今這兩個地圖的大小再也不受限制。此更改會今後版本開始更改行爲,在測試期間不會關閉PreparedStatement。

從這個版本開始,JSR223測試元素有一些重要的變化:

  • 具備無效文件名(不存在或不可讀)的JSR223測試元素將使測試失敗,而不是使元素靜默工做
  • 在JSR223測試元素中:responseCodeOk,responseMessageOK和成功是在腳本執行以前設置的,若是設置了responseData,它將再也不被腳本返回值上的toString()覆蓋

 

查看結果樹如今將缺乏內容類型的響應視爲文本。

在遠程測試模式下,若是沒法配置其中一個遠程引擎,JMeter如今會退出錯誤,以前它已使用可用引擎啓動測試。

Bug修復

HTTP採樣器和代理

  • 使用帶緩存管理器或CookieManager的併發池嵌入式下載時,請勿記錄虛假警告消息
  • 錯誤54057 - 在啓動時設置用戶和密碼的代理選項(-u和-a)不能與HTTPClient 4一塊兒使用
  • 錯誤54187 - 若是請求失敗,請求選項卡不顯示標題
  • 錯誤53840 - 代理記錄:響應消息:URLDecoder:轉義(%)模式中的非法十六進制字符 - 對於輸入字符串:「」「
  • 錯誤54351 - HC4和URI片斷失敗

其餘採樣器

  • 錯誤53997 - LDAP擴展請求:在XML響應數據中的搜索過濾器標記中轉義&符號(&),左尖括號(<)和右尖括號(>)
  • 錯誤53995 - AbstractJDBCTestElement在多線程之間共享PreparedStatement
  • 錯誤54119 - 未重定向HTTP 307響應
  • 錯誤54326 - AjpSampler在post中發送文件拋出FileNotFoundException
  • 錯誤54331 - AjpSampler在受保護的GET請求上拋出空指針

控制器

聽衆

  • 錯誤54088 - 類型video / f4m是文本,而不是二進制
  • 錯誤54166 - ViewResultsTree沒法呈現HTML響應:處理沒法解析HTML
  • 錯誤54287 - 在日期格式字段中使用帶有時間的日期時,響應時間圖中的時間戳不正確
  • 錯誤54451 - 當同時有多個樣本時,響應時間圖報告錯誤的時間
  • 錯誤54459 - CSVSaveService沒法很好地處理日期解析

定時器,斷言,配置,預處理器和後處理器

  • 錯誤54058 - 在HTTP請求默認值中,若是未選中複選框「檢索全部嵌入資源」,則「嵌入的URL必須匹配:」字段的值不會保存。
  • 錯誤54375 - 正則表達式提取器:當正則表達式語法錯誤時,後處理中止

功能

國際化

通常

  • 錯誤53975 - 變量替換不適用於選項「延遲建立線程直到須要」
  • 錯誤54055 - 查看結果樹:=在HTTP選項卡上從參數值中刪除符號
  • 錯誤54129 - 搜索功能雖然存在於元素中,但找不到文本
  • 錯誤54023 - 沒法從根目錄啓動JMeter,若是JMeter安裝的完整路徑包含一個或多個空格(Unix / linux)
  • 錯誤54172 - 重複的快捷鍵不起做用,CTRL + C / CTRL + V / CTRL + V不取消默認事件
  • 錯誤54057 - 在啓動時設置用戶和密碼的代理選項(-u和-a)不能與HTTPClient 4一塊兒使用
  • 錯誤54267 - 開始下一個線程循環設置在自定義線程組中不起做用
  • 錯誤54413 - DataStrippingSampleSender返回0表示任何響應的字節數

改進

HTTP採樣器

  • 錯誤54185 - 容許以HTTP或HTTPS開頭的路徑中的查詢字符串

其餘採樣器

  • 錯誤54004 - Webservice Sampler:容許使用Header Manager添加標頭以進行請求
  • 錯誤54106 - JSR223TestElement應在設置文件名時檢查文件是否存在,而不是使用文本區域內容
  • 錯誤54107 - JSR223TestElement:啓用腳本文本的編譯和緩存
  • 錯誤 54109 - JSR223TestElement:在進入腳本以前應設置SampleResult屬性以容許用戶設置不一樣的代碼
  • 錯誤54230 - TCP採樣器,添加「關閉鏈接」,「SO_LINGER」和「行結束(EOL)字節值」選項
  • 錯誤54182 - 支持發送ByteMessage for JMS Publisher。

控制器

  • 錯誤54131 - ForEach Controller:添加循環變量的開始和結束索引
  • 錯誤54132 - 模塊控制器GUI:改進引用控制器的渲染
  • 錯誤54155 - ModuleController:添加一個快捷方式按鈕,將樹展開到引用的控制器並突出顯示它

聽衆

  • 錯誤54200 - 添加對多種文檔類型(如Apache OpenOffice文件,MS Office文件,PDF文件等)的支持,查看結果樹,斷言響應和正則表達式提取器(使用Apache Tika)
  • 錯誤54226 - 查看結果樹:即便服務器未返回ContentType標頭,也顯示響應

定時器,斷言,配置,預處理器和後處理器

  • 錯誤54259 - 介紹一個使用CSS或相似jquery的選擇器語法的新Extractor
  • 錯誤45772 - RegEx用戶參數後處理器
  • 錯誤54160 - 添加對xpath斷言的支持以應用於JMeter變量。

功能

國際化

通常

  • 錯誤54005 - HTTP鏡像服務器:添加特殊標頭「X-」以控制響應狀態和響應內容
  • 錯誤53875 - 在HTTP代理上包含URL過濾器的建議默認值
  • 錯誤54031 - 向運行/總線程指示符添加工具提示
  • Webservice(SOAP)請求已被棄用
  • 錯誤54161 - 代理:能​​夠爲x-www-form-urlencoded POST請求建立二進制採樣器
  • 錯誤54154 - HTTP代理服務器不該強制用戶在HTTP採樣器設置中選擇採樣器的類型
  • 錯誤54165 - 代理服務器:改進目標控制器的渲染
  • 錯誤46677 - 在測試計劃之間複製測試元素
  • 錯誤54204 - 結果狀態操做處理程序:添加開始下一個線程循環選項
  • 錯誤54232 - 搜索功能:添加按鈕以搜索和擴展結果
  • 錯誤54251 - 添加三態複選框實現
  • 錯誤 54257 - 加強SamplerCreator接口以知足新要求
  • 錯誤54258 - 代理:當Sampler有一個未命名的參數時使用Raw Post Body,對於使用類型JSON,XML,GWT body的POST方法的Samplers很是有用
  • 錯誤54268 - 提升CPU和內存使用率
  • 錯誤54376 - ScopePanel:容許更精確地配置範圍
  • 錯誤54412 - 更改JMeter默認值以確保默認狀況下性能更佳
  • 錯誤54414 - 若是其中一個引擎沒法正確啓動,則不該啓動遠程測試

非功能性變化

  • 錯誤53956 - 添加從標題管理器剪貼板粘貼(值列表)的功能
  • 更新爲HttpComponents Client 4.2.3(從4.2.1開始)
  • 更新爲HttpComponents Core 4.2.3(從4.2.2開始)
  • 錯誤54110 - BSFTestElement和JSR223TestElement應使用共享超類用於公共字段
  • 錯誤54199 - 轉到Java 6
  • 升級到rhino 1.7R4

版本2.8

新的和值得注意的

核心改進:

線程組:新選項延遲線程建立,直到須要

新選項「延遲線程建立直到須要」,它將在須要時建立和啓動線程,而不是在測試啓動時建立它
這個新功能容許使用大量短時間線程運行測試。

 

HTTP Cookie管理器(IPv6支持)

在JMeter中添加HTTPClient 4 cookie實現。
Cookie Manager如今具備默認的HC3.1實現和新的HC4實現選擇(符合IPv6地址)

 

內存和性能改進

在此版本中,對JMeterThread的內存使用狀況進行了重大改進

JSR223 Elements(使用Groovy,scala,...做爲腳本語言)已通過改進,能夠實現:

  • 可用時使用Compilable接口來提升CPU使用率
  • 腳本用做文件時緩存編譯

請參閱各版本的JMeter Performance

 

OS Process Sampler

容許爲stdout / stderr / stdin定義文件。

 

HTTP請求:PATCH動詞

將PATCH謂詞添加到HTTP採樣器

 

HTTP請求:HTTPClient 4如今是默認實現

HTTPClient 4如今是默認的HTTP請求實現(以及生成HTTP請求時的Proxy元素)。
之前默認是HTTP Java實現(即JVM提供的實現)

 

HTTP請求

將嵌入式URL過濾器添加到HTTP請求默認值控制(它已經存在於HTTP請求中)

 

  • CSV數據集:引用數據如今支持嵌入的新行
  • JMX文件如今包含建立該文件的JMeter版本
  • JMeter版本如今可用做屬性「jmeter.version」

報告改進:

響應時間圖

添加新的可視化器響應時間圖以繪製線圖,顯示測試響應時間的演變

 

響應時間圖的設置

 

查看錶格中的結果

在Table監聽器中爲View Result添加延遲

 

聚合圖

小改進:左側或右側的圖例如今位於1列(而不是1個大線),...

 

GUI和人體工程學改進:

HTTP代理服務器簡化

HTTPS欺騙選項已從代理中刪除,由於自JMeter 2.4以來可直接使用HTTPS記錄。

 

HTTP代理服務器

容許從剪貼板粘貼URL過濾器

 

在JMeter中查找

CTRL + F表示新的查找功能

ESC鍵如今關閉彈出窗口。

 

GNOME 3中的用戶界面

在Gnome 3的應用程序標題欄中顯示「Apache JMeter」標題

 

已知的錯誤

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

當If Controller的條件在第一次迭代時老是爲假時,監聽器不會顯示迭代計數(參見 錯誤52496))。解決方法是在If Controller的同一級別(或更高級別)添加一個採樣器。例如,具備0等待時間的測試操做採樣器(不生成樣本),或者將全部字段設置爲False的調試採樣器(以減少樣本大小)。

更改語言可能會破壞如下元素的部分配置(請參閱 錯誤53679):

  • CSV數據集配置(共享模式將丟失)
  • 恆定吞吐量計時器(根據丟失計算吞吐量)

 

請注意,在某些Linux系統上存在Java中的錯誤,在運行測試用例或JMeter自己時會將其顯示爲如下錯誤:

 [java]警告:沒法刷新用戶首選項:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException:不支持:indent-number

這不會影響JMeter操做。

 

不兼容的變化

當使用CacheManager時,JMeter如今緩存GET查詢的響應,前提是標題Cache-Control與「no-cache」不一樣,如規範中所述。此外,它再也不用於「無緩存」響應的緩存已棄用條目。請參閱 錯誤53521 錯誤53522

JSR223測試元素髮生了重大變化,之前在腳本執行以前設置的變量存儲在每次執行建立一次的ScriptEngineManager中,如今ScriptEngineManager是全部JSR223元素共享的單例,每次執行只建立一次ScriptEngine,變量設置在腳本執行以前如今存儲在每次執行時建立的Bindings中,請參閱 錯誤53365

若是ScriptEngine支持此功能,則使用腳本文件的JSR223測試元素如今已編譯,請參閱 錯誤53520

功能助手對話框的快捷鍵如今是CTRL + F1(Mac OS的CMD + F1),CTRL + F(Mac OS的CMD + F1)如今打開搜索對話框。

默認狀況下,TestCompiler如今存儲它在Controller實例中看到的對的詳細信息,而不是靜態集。錯誤53796 ]這爲延遲啓動測試計劃提供了更好的內存行爲,由於使用的內存與併發線程數成正比。使用靜態Set內存使用量與總線程數成正比。這種變化不太可能致使問題。經過設置屬性TestCompiler.useStaticSet = true能夠恢復原始行爲

HTTPS欺騙選項已從代理中刪除,由於自JMeter 2.4以來可直接使用HTTPS記錄。

Bug修復

HTTP採樣器和代理

  • 錯誤53521 - 緩存管理器應使用Cache-control = private緩存內容
  • 錯誤53522 - 緩存管理器不該存儲帶有標頭「no-cache」的全部響應,並存儲具備max-age值的其餘類型的Cache-Control
  • 錯誤53838 - 按「中止」不會中斷TCP採樣器
  • 錯誤53911 - JmeterKeystore不容許鍵入證書列表

其餘採樣器

  • 錯誤53348 - 當請求隊列和接收隊列不同時,JMeter JMS點對點請求 - 響應採樣器不起做用
  • 錯誤53357 - JMS點對點在請求響應模式下報告響應時間過長
  • 錯誤53440 - SSL鏈接致使JDK 6上的ArrayStoreException和一些KeyManagerFactory SPI
  • 錯誤53511 - 訪問日誌採樣器SessionFilter拋出NullPointerException - cookie管理器未正確初始化
  • 錯誤53715 - JMeter未加載WSDL

控制器

聽衆

  • 錯誤53742 - 當jmeter.save.saveservice.sample_count設置爲true時,偵聽器讀取的已用時間老是等於0
  • 錯誤53774 - 除非samplerData爲非null,不然RequestViewRaw不顯示標頭
  • 錯誤53802 - IdleTime值未保存到CSV日誌
  • 錯誤53874 - 查看結果樹:若是某些包含%等特殊字符的參數未編碼,則RequestViewHTTP將失敗並顯示java.lang.IllegalArgumentException:URLDecoder:轉義(%)模式中的非法十六進制字符且未顯示Response

定時器,斷言,配置,預處理器和後處理器

  • 錯誤51512 - 未使用IPv6主機標頭將Cookie插入到HTTP請求中

功能

國際化

通常

  • 錯誤53365 - JSR223TestElement應該緩存ScriptEngineManager
  • 錯誤53520 - JSR223元素:使用Compilable接口來提升文件腳本的性能
  • 錯誤53501 - 同步計時器阻止測試結束。
  • 錯誤53750 - TestCompiler在配對集合中保存沒必要要的條目
  • 錯誤52266 - 代碼:同步不一致
  • 錯誤53841 - CSVSaveService使用JVM默認文件編碼讀取文件,而不是使用saveservice.properties中配置的文件
  • 錯誤53953新:Typo監視器測試計劃文檔

改進

HTTP採樣器

  • 錯誤53675 - 將PATCH謂詞添加到HTTP採樣器
  • 錯誤53931 - 爲默認HTTP請求定義HTTPClient 4(以及生成HTTP請求的Proxy元素)。默認狀況下,它是HTTP Java Sampler
  • 錯誤53934 - 刪除JMeter HTTP代理服務器中的HTTPS欺騙選項。從JMeter 2.4開始,代理直接支持HTTPS協議

其餘採樣器

  • 錯誤55310 - TestAction應實現可中斷
  • 錯誤53318 - 將嵌入式URL過濾器添加到HTTP請求默認值控制
  • 錯誤53782 - 加強JavaSamplerClient清理的JavaSampler處理以使用更少的內存
  • 錯誤53168 - 操做系統進程 - 容許指定stdout / stderr / stdin
  • 錯誤53844 - JDBC相關元素應檢查應該包含JDBC鏈接配置的變量名類,以免ClassCastException

控制器

  • 錯誤53671 - 即便發生關機測試,tearDown線程組也會運行

聽衆

  • 錯誤53566 - 不記錄對jmeter日誌的部分響應
  • 錯誤53716 - 聚合圖中的小改進:左側或右側的圖例如今位於1列(而不是1個大線),沒有與參考方塊顏色的邊界,減小某些字段的寬度
  • 錯誤53718 - 添加新的可視化工具「響應時間圖」以繪製線圖,顯示測試響應時間的演變
  • 錯誤53738 - 跟蹤已啓動和已完成的線程數
  • 錯誤53753 - Summariser:在大多數狀況下,沒有顯示分數時間的點
  • 錯誤53749 - 可能會拆分TestListener接口。這應該減小每線程內存需求和處理,由於如今只須要處理實際使用testIterationStart功能的測試元素。
  • 錯誤53941 - 爲View Result表偵聽器添加延遲

定時器,斷言,配置,預處理器和後處理器

  • 錯誤53755 - 在JMeter中添加HttpClient 4 cookie實現。Cookie Manager如今具備默認的HC3.1實現和新的HC4實現選擇(符合IPv6地址)

功能

  • 錯誤51527 - __time()函數:爲__time()添加另外一個選項以提供自紀元以來的*秒*

國際化

通常

  • 錯誤53364 - 對函數助手對話框中的函數列表進行排序
  • 錯誤53418 - 新選項「延遲線程建立直到須要」,它將在須要時建立和啓動線程,而不是在測試啓動時建立它們
  • 錯誤42245 - 在HTTP受權管理器中顯示清除密碼
  • 錯誤53616 - 在Gnome 3的應用程序標題欄中顯示「Apache JMeter」標題
  • 錯誤53759 - ClientJMeterEngine使用SearchByClass(TestListener)執行沒必要要的遍歷
  • 錯誤52601 - CTRL + F用於新的查找功能
  • 錯誤53796 - TestCompiler使用靜態Set,它能夠變大
  • 錯誤53673 - 在jmx文件中添加JMeter版本
  • 將HeapDump支持添加到JMeter非GUI和GUI客戶端
  • 錯誤53862 - 將JMeter版本做爲屬性提供會很好
  • 錯誤53806 - FileServer應提供線程安全的解析
  • 錯誤53807 - CSV數據集不處理引用數據中的嵌入新行
  • 錯誤53879 - GUI:容許使用ESC鍵關閉彈出窗口
  • 錯誤53876 - 容許從剪貼板粘貼URL過濾器(HTTP代理)

非功能性變化

  • 錯誤53311 - JMeterUtils#runSafe在中斷時不該拋出錯誤
  • 更新爲commons-net-3.1(從3.0.1開始)
  • 更新爲HttpComponents Core 4.2.2(來自4.1.4)和HttpComponents Client 4.2.1(來自4.1.3)
  • 錯誤53765 - 切換到commons-lang3-3.1
  • 錯誤53884 - 錯誤的Maven groupId for commons-lang

版本2.7

新的和值得注意的

OS Process Sampler

一個新的系統採樣器,可用於在本地計算機上執行命令。

 

使用DNS查找命令'dig'的OS Process Sampler結果示例

 

JMS採樣器的改進

添加「非持久傳遞」選項以發送「非持久性」(保證最多一次傳遞。消息丟失不是問題。)JMS消息

 

支持發送JMS對象消息,以便經過XStream發送從XML解組的對象

 

啓用經過JMS Publisher採樣器設置JMS屬性

 

測試動做採樣​​器

容許過早退出循環

 

Webservice採樣器改進

添加jmeter屬性soap.document_cache以控制文檔緩存的大小

 

使維護HTTP會話可配置

 

聚合圖:具備平均值,中位數,90%行,最小和最大列的彙集條形碼

聚合圖更改成彙集條形圖,添加更多列(中位數,90%行,最小值,最大值)和選項,修復了一些錯誤

 

聚合圖的新設置

 

由extras文件夾中的JMeter Ant任務生成的HTML報告設計的改進

HTML報告示例

 

帶有一些斷言錯誤的HTML報告示例

 

梅勒展現臺

 

  • 使用SSL或TLS啓用身份驗證和鏈接安全性
  • 改進GUI設計
  • 添加國際化(i18n)支持

 

日誌中ERROR / FATAL消息數量的新可視指示符

指示器顯示日誌中的ERROR / FATAL消息數,能夠單擊它以切換日誌查看器面板

 

用於顯示參數行詳細信息的對話框

在參數表上添加一個詳細信息按鈕以顯示行的詳細信息

 

細節框示例

 

插件做家

引入了新的接口org.apache.jmeter.engine.util.ConfigMergabilityIndi​​cator來判斷是否能夠在Sampler中合併ConfigTestElement(參見Bug 53042):

public boolean apply(ConfigTestElement configElement);

 

新的接口org.apache.jmeter.protocol.http.proxy.SamplerCreator容許在記錄階段插入與默認HTTP採樣器不一樣的基於HTTP的採樣器經過代理(參見 錯誤52674):

public String [] getManagedContentTypes();
public HTTPSamplerBase createSampler(HttpRequestHdr request,Map <String,String> pageEncodings,Map <String,String> formEncodings);
public void populateSampler(HTTPSamplerBase sampler,HttpRequestHdr request,Map <String,String> pageEncodings,Map <String,String> formEncodings)拋出異常;

 

已知的錯誤

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

當If Controller的條件在第一次迭代時老是爲假時,監聽器不會顯示迭代計數(參見 錯誤52496)。解決方法是在If Controller的同一級別(或更高級別)添加一個採樣器。例如,具備0等待時間的測試操做採樣器(不生成樣本),或者將全部字段設置爲False的調試採樣器(以減少樣本大小)。

不兼容的變化

在更換用戶定義變量時,當使用「正則表達式匹配」時,代理將再也不替換部分值。它將使用Perl 5字匹配(「\ b」)

在用戶定義的變量,測試計劃,HTTP採樣器參數表,Java請求默認值,JMS採樣器和發佈者,LDAP請求默認值和LDAP擴展請求默認值中,再也不保存具備空名稱和值的行。

JMeter如今將測試計劃樹擴展到測試計劃級別,再也不進一步選擇樹的根。此外,onload.expandtree的默認值爲false。

圖表完整結果監聽器已被刪除。

調用「所有清除」命令時,若是顯示日誌查看器,則其內容將被清除。

Bug修復

HTTP採樣器和代理

  • 錯誤52613 - 使用Raw Post Body選項,文本被編碼
  • 錯誤52781 - 即便選中瀏覽器兼容的標題,Content-Disposition標頭也會出現亂碼(HC4)
  • 錯誤52796 - 啓動新解析時,MonitorHandler沒法清除變量
  • 錯誤52871 - 多個證書不能與HTTP客戶端4一塊兒使用
  • 錯誤52885 - 代理:使用HTTPS記錄問題,以安全性開頭的cookie部分被截斷
  • 錯誤52886 - 代理:啓用欺騙時使用HTTPS記錄問題,並不老是更改安全cookie
  • 錯誤52897 - HTTPSampler:使用PUT方法與HTTPClient4和空內容編碼和發送文件致使NullPointerException
  • 錯誤53145 - HTTP Sampler - 過早評估路徑中的函數

其餘採樣器

  • 錯誤51737 - TCPSampler:數據包被轉換/損壞
  • 錯誤52868 - 應對BSF語言列表進行排序
  • 錯誤52869 - JSR223語言列表目前使用BSF列表,這是錯誤的
  • 錯誤52932 - JDBC採樣器:在不是類IOException,SQLException,發生IOException的異常中,Sampler未標記爲錯誤
  • 錯誤52916 - 若是存在空的用戶定義變量,則爲 JDBC異常
  • 錯誤52937 - Webservice採樣器:測試結束時清除Soap文檔緩存
  • 錯誤53027 - 在使用HTTP Cookie Mngr或HTTP請求默認值的測試計劃中使用SMTP Sample時,Jmeter開始拋出異常
  • 錯誤53072 - JDBC PREPARED SELECT語句應該返回非準備SELECT等變量的結果

控制器

  • 錯誤52968 - 選項啓動線程組中的下一個循環在發生錯誤時不會將父事務處理採樣器標記爲錯誤
  • 錯誤50898 - IncludeController:NullPointerException若是Includers使用相同的元素名稱,則在非GUI模式下加載腳本

聽衆

  • 錯誤43450 - 監聽器/保存器假設SampleResult計數始終爲1; 已修復生成摘要結果

斷言

功能

國際化

通常

  • 錯誤52639 - 若是未激活日誌,則應隱藏日誌面板的JSplitPane分隔符
  • 錯誤52672 - 更改控制器操做將刪除除一個子採樣器外的全部子進程
  • 錯誤52694 - 與非AWT線程更新GUI相關的GUI中的死鎖
  • 錯誤52678 - 代理:在替換UserDefinedVariables時,不該替換部分值
  • 錯誤52728 - CSV數據集配置元素不能與同一線程計劃中的BSF採樣器共存
  • 錯誤52762 - 多重證書問題:在從新啓動索引以前不使用第一個索引
  • 錯誤52741 - TestBeanGUI默認值在第二次或之後不起做用
  • 錯誤52783 - 因爲早期init,從未使用過oro.patterncache.size屬性
  • 錯誤52789 - 若是值爲null,則使用Regexp匹配的代理可能會在值替換中失敗並顯示NullPointerException
  • 錯誤52645 - 使用代理記錄致使OutOfMemory
  • 錯誤52679 - 用戶參數列縮小
  • 錯誤52843 - 未爲子樣本累積樣本headerSize和bodySize
  • 錯誤52967 - 在GUI模式下與遠程服務器一塊兒運行時,函數__P()沒法使用默認值。
  • 錯誤50799 - 在http測試計劃中使用非HTTP採樣器可防止多個標頭管理器工做
  • 錯誤52997 - 若是在退出失敗以前保存,Jmeter不該在不保存測試計劃的狀況下退出
  • 錯誤53136 - 捕捉Throwable須要當心處理

改進

HTTP採樣器

其餘採樣器

  • 錯誤52775 - JMS發佈者:添加非持久傳遞選項
  • 錯誤52810 - 啓用經過JMS Publisher採樣器設置JMS屬性
  • 錯誤52938 - Webservice Sampler:添加一個jmeter屬性soap.document_cache來控制文檔緩存的大小
  • 錯誤52939 - Webservice Sampler:使MaintainSession可配置
  • 錯誤53073 - 容許將JDBC CALLABLE的OUT結果分配給JMeter變量
  • 錯誤53164 - 新系統採樣器
  • 錯誤53172 - OS Process Sampler - 容許指定環境變量
  • 錯誤52936 - JMS Publisher:支持發送JMS對象消息

控制器

聽衆

  • 錯誤52603 - MailerVisualizer:啓用SSL,TLS和身份驗證
  • 錯誤52698 - 刪除圖表完整結果監聽器
  • 錯誤53070 - 將聚合圖更改成彙集條形圖,添加更多列(中位數,90%行,最小值,最大值)和選項,修復了一些錯誤
  • 錯誤53246 - Mailer Visualizer:改進GUI設計和I18N

定時器,斷言,配置,預處理器和後處理器

功能

國際化

  • Mailer Visualizer已經國際化。法語翻譯補充說。(見 Bug 53246

通常

  • 錯誤45839 - 測試操做:容許過早退出循環
  • 錯誤52614 - MailerModel.sendMail有奇怪的方法來計算調試設置
  • 錯誤52782 - 在參數表上添加一個詳細信息按鈕以顯示行的詳細信息
  • 錯誤52674 - 代理:添加一個Sampler Creator,容許使用可能非文本的POST Body(AMF,Silverlight,...)插入基於HTTP的採樣器,併爲其餘人自定義它們
  • 錯誤52934 - GUI:打開測試計劃,樹擴展到測試計劃級別,再也不進一步選擇樹的根
  • 錯誤52941 - 由JMeter Ant任務額外生成的HTML報告設計的改進
  • 錯誤53042 - 在Sampler接口中引入一個新方法,以容許Sampler決定配置元素是否適用於Sampler
  • 錯誤52771 - 文檔:在JMeter主頁上添加了RSS源「訂閱新內容」連接
  • 錯誤42784 - 顯示GUI中記錄的錯誤數
  • 錯誤53256 - 使所有清除命令清除LogViewer內容
  • 錯誤53261 - 單擊警告指示器時, 錯誤42784打開日誌查看器面板中添加「錯誤/致命」計數器

非功能性變化

  • 升級到rhino 1.7R3(是js-1.7R2.jar)。注意:jar的Maven座標從rhino:js更改成org.mozilla:rhino。這不會直接影響JMeter,但若是在Maven項目中使用JMeter,而且其餘代碼依賴於早期版本的Rhino Javascript jar,則可能會致使問題。
  • 錯誤52675 - Refactor Proxy和HttpRequestHdr容許經過代理建立採樣器
  • 錯誤52680 - 說起引入功能的版本
  • 錯誤52788 - HttpRequestHdr:優化代碼以免無用的工做
  • JMeter Ant(ant-jmeter-1.1.1.jar)任務從1.0.9升級到1.1.1
  • 更新爲commons-io 2.2(來自2.1)
  • 錯誤53129 - 將XStream從1.3.1升級到1.4.2
  • 更新爲httpcomponents-client 4.1.3(來自4.1.2)
  • 更新了JMeter分佈式測試指南(jmeter_distributed_testing_step_by_step.pdf)。將源格式更改成OpenOffice odt(來自sxw)

版本2.6

新的和值得注意的

工具欄

JMeter主窗口上的新工具欄

 

JMeter啓動測試按鈕

新的菜單選項和按鈕容許啓動測試,忽略暫停計時器

 

JMeter GUI外觀和感受

容許從選項菜單設置系統或CrossPlatform LAF

 

JMeter GUI - 重複節點

在上下文菜單中添加「重複節點」

 

JMeter樹視圖 - 搜索工具

在採樣器樹視圖中按關鍵字搜索的功能

 

HTTP請求 - 原始請求窗格

改進HTTP請求GUI以更好地顯示沒有名稱的參數(例如GWT RPC請求或SOAP請求)

 

HTTP請求 - 其餘更改

 

  • 容許在參數面板中進行多項選擇
  • 容許從剪貼板添加(粘貼)條目到參數列表
  • 可以在HTTP請求中上下移動變量

 

HTTP請求 - 文件協議

更好地支持HTTP採樣器中的文件:協議

 

使用file:protocol檢索嵌入的資源

 

HTTP請求 - 忽略嵌入式資源失敗

爲嵌入資源啓用「忽略失敗」

 

嵌入式資源的父成功失敗

 

查看錶格中的結果 - 子樣本顯示

向TableVisualiser添加選項以顯示子樣本而不是父樣本

 

密鑰庫 - 多個證書

容許多個證書(JKS)

 

聚合圖改進

Aggregate Graph Listener的一些改進:

  • 用於設置的新GUI
  • 動態圖形大小
  • 容許更改標題圖和圖例的字體
  • 容許更改條形顏色(背景和文本值)
  • 容許繪製或不繪製輪廓
  • 容許經過正則表達式過濾器僅選擇一些採樣器
  • 容許定義Y軸最大刻度

 

聚合圖形欄

 

反新的重置選項

在每一個線程組迭代上添加一個重置計數器的選項

 

功能

 

  • 添加一個新函數__RandomString以生成隨機字符串
  • 添加一個新函數__TestPlanName,返回當前「測試計劃」的名稱
  • 添加一個新函數__machineIP返回IP地址
  • 添加新函數__jexl2以支持Jexl2

 

用戶定義的變量改進

 

  • 在「用戶定義的變量」中添加註釋字段
  • 容許從剪貼板添加(粘貼)條目到參數列表
  • 可以在用戶定義的變量中上移或下移變量

 

查看結果樹

在「查看結果樹」中,若是結果很大,則不顯示消息,而是顯示配置的結果

 

控制器 - 更改元素

添加更改控制器元素的功能

 

JDBC先後處理器

添加JDBC先後處理器

 

JDBC事務隔離選項

容許在JDBC鏈接配置中設置事務隔離

 

泊松定時器

添加基於泊松的計時器

 

GUI和OS交互

支持文件拖放。

 

確認刪除對話框

添加一個對話框以確認在調用Remove action時刪除元素

經過設置JMeter屬性confirm.delete.skip = true能夠跳過對話框

 

遠程批處理支持

在分佈式測試期間使用外部存儲來保存樣本,添加DiskStore遠程樣本發送器:如Hold,但將樣本保存到磁盤直到測試結束

 

JMS訂戶採樣器

使用JMS訂閱服務器,能夠使用選擇器

 

新的記錄器面板

新的日誌查看器已添加到GUI,能夠從菜單選項→日誌查看器啓用:

 

此日誌查看器顯示jmeter.log文件,而且有用(例如)調試BeanShell / BSF腳本:

 

菜單項選項/選擇語言如今功能齊全

菜單項選項/選擇語言如今將全部顯示的文本更改成新語言,前提是全部消息都已翻譯。您能夠經過翻譯成您的語言來提供幫助。

恢復了舊版JMX和JTL Avalon格式支持

在JMeter 2.4版中刪除了對讀取/寫入JMX(腳本)和JTL(樣本結果)文件的原始Avalon XML格式的支持。JMeter如今能夠再次讀取Avalon格式文件,可是不支持以舊格式保存文件。

JMeter罐子可從Maven存儲庫得到

JMeter罐子如今可從Maven存儲庫得到。

已知的錯誤

Include Controller在非GUI模式下存在一些問題(參見Bugs 40671,41286,44973,50898)。特別是,若是有兩個包含相同名稱的控制器,則可能致使NullPointerException。

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

當If Controller的條件在第一次迭代時老是爲假時,監聽器不會顯示迭代計數(參見 錯誤52496)。解決方法是在If Controller的同一級別(或更高級別)添加一個採樣器。例如,具備0等待時間的測試操做採樣器(不生成樣本),或者將全部字段設置爲False的調試採樣器(以減少樣本大小)。

不兼容的變化

自2.1以來的JMeter版本在加載嵌入式資源時沒法建立容器樣本。這已獲得糾正; 仍然能夠經過設置如下屬性恢復到Bug 51939行爲: httpsampler.separate.container = false

鏡像服務器如今使用默認端口8081,在2.5.1以前是8080。

自從2.6發生以來,TCP Sampler處理SocketTimeoutException,SocketException和InterruptedIOException的方式不一樣,Sampler被標記爲失敗。

如今,樣本發件人實現解決了自2.6以來客戶端的配置問題。能夠使用屬性sample_sender_client_configured(將其設置爲false)更改此行爲。

已刪除HTTP用戶參數修飾符測試元素; 它已經被棄用了很長時間。

Bug修復

HTTP採樣器和代理

  • 錯誤51932 - 在max-age以後,CacheManager不處理具備任何屬性的緩存控制頭
  • 錯誤51918 - 當容許多個鏈接時,GZIP壓縮流量會產生錯誤
  • 錯誤51939 - 在檢索嵌入資源時,若是須要,應生成新的父樣本
  • 錯誤51942 - 使用併發下載時CacheManager上的同步問題
  • 錯誤51957 - 若是任務未完成,併發get可能會掛起
  • 錯誤51925 - 調用Stop on Test會在併發下載資源時泄漏執行程序線程
  • 錯誤51980 - HtmlParserHTMLParser重複計算連接中使用的圖像
  • 錯誤52064 - CacheManager中的OutOfMemory風險
  • 錯誤51919 - 使用併發下載時CookieManager中的 Random ConcurrentModificationException或NoSuchElementException#removeMatchingCookies
  • 錯誤52126 - HttpClient4不會在迭代之間清除cookie
  • 錯誤52129 - 使用HTTP Client 4和Keep Alive鏈接時報告的正文大小錯誤
  • 錯誤52137 - HTTP緩存管理器的問題
  • 錯誤52221 - 使用Nullpointer異常檢索沒有HTTP緩存管理器的嵌入式資源
  • 錯誤 52310 - 若是啓用了「併發池大小」,則IPSource中的變量將失敗HTTP請求
  • 錯誤52371 - API不兼容 - HTTPSampler2中的方法如今須要PostMethod而不是HttpMethod [Base]。恢復原始類型。
  • 錯誤49950 - 使用代理服務器錄製時代理:IndexOutOfBoundsException
  • 錯誤52409 - HttpSamplerBase#errorResult修改做爲參數傳遞的sampleResult; 修復假定建立新實例的代碼(即添加子樣本時)
  • 錯誤52507 - 刪除Http用戶參數修飾符(不建議使用,已廢棄)

其餘採樣器

  • 錯誤51996 - 當多個線程同時進入InitialContextFactory#lookupContext時,新建立的JMS初始上下文泄漏
  • 錯誤51691 - 受權不適用於JMS Publisher和JMS訂閱服務器
  • 錯誤52036 - 因爲缺乏clientId字段,持久訂閱因ActiveMQ而失敗
  • 錯誤52044 - 與許多線程一塊兒使用的JMS訂閱者致使javax.naming.NamingException:已經與ActiveMQ綁定的東西
  • 錯誤52072 - LengthPrefixedBinaryTcpClientImpl可能會過早地結束樣本
  • 錯誤52390 - AbstractJDBCTestElement:perConnCache中的內存泄漏和同步問題

控制器

  • 錯誤51865 - 若是設置「設置錯誤後啓動下一個循環」選項,則線程組內的無限循環沒法正常工做
  • 錯誤51868 - jmeter.log中的許多異常,同時爲線程使用選項「Start next loop」
  • 錯誤51866 - 若是爲線程組設置了「爲錯誤啓動下一個循環」選項,則循環計數器沒法正常工做
  • 錯誤52296 - TransactionController + Children ThrouputController或InterleaveController致使ERROR sampleEnd調用兩次java.lang.Throwable:當TPC不運行樣本時無效的調用序列
  • 錯誤52330 - 在下一循環中未執行錯誤樣本後出現下一循環錯誤

聽衆

  • 錯誤52357 - 在表中查看結果不容許多個結果樣本
  • 錯誤52491 - 在Tree Listener / Http Request視圖中解析Post數據參數的錯誤

斷言

  • 錯誤52519 - XMLSchemaAssertion使用JMeter JVM file.encoding而不是響應編碼

功能

  • char函數的CRLF示例是錯誤的; CRLF =(0xD,0xA),不是(0xC,0xA)

國際化

通常

  • 錯誤51937 - JMeter沒有很好地處理丟失的TestPlan條目
  • 錯誤51988 - 當變量字段爲空時,CSV數據集配置不解析標頭解析的默認分隔符
  • 錯誤52003 - 查看結果樹「自動滾動」在展開節點時沒法正確滾動
  • 錯誤27112 - 用戶參數應使用滾動條
  • 錯誤52029 - 命令行關閉僅發送到已啓動的最後一個引擎
  • 錯誤52093 - 工具欄工具提示不切換語言
  • 錯誤51733 - 若是您中斷測試計劃,則SyncTimer會搞砸
  • 錯誤52118 - 新工具欄:未運行測試時未禁用關閉和中止按鈕
  • 錯誤52125 - 若是在其中一個TreeMap中有更多樣本具備相同的響應時間,則StatCalculator.addAll(StatCalculator calc)加入不正確
  • 錯誤52339 - 分佈式測試中的JMeter統計模式顯示錯誤的響應時間
  • 錯誤52215 - 在StatGisualizer,SummaryReport,Summariser中混淆同步並在StatGraphVisualizer中發出問題
  • 錯誤52216 - TableVisualizer:currentData字段嚴重同步
  • 錯誤52217 - ViewResultsFullVisualizer:root和treeModel上的同步問題
  • 錯誤43294 - XPath Extractor命名空間問題
  • 錯誤52224 - TestBeanHelper不支持NOT_UNDEFINED == Boolean.FALSE
  • 錯誤52279 - 切換到另外一種語言丟失樹中的圖標並記錄錯誤沒法從...獲取GUI類
  • 錯誤52280 - 菜單項選項/選擇語言不會將全部顯示的文本更改成新語言
  • 錯誤 52376 - StatCalculator#addValue(T val,int sampleCount)應該使用long,而不是int
  • 錯誤49374 - 嵌入元素URL的編碼取決於file.encoding屬性
  • 錯誤52399 - URLRewritingModifier使用默認的file.encoding來匹配文本內容
  • 錯誤50438 - 代碼使用整數數學計算平均值,指望雙值
  • 錯誤52469 - 支持用於遠程測試的RMI流量的SSH隧道的更改
  • 錯誤52466 - 升級測試計劃功能:NameUpdater不升級屬性
  • 錯誤52503 - 統一文件→關閉和窗口關閉文件保存行爲
  • 錯誤52537 - 首次加載文件時,幫助不會滾動到正確的錨點

改進

HTTP採樣器

其餘採樣器

  • 錯誤51419 - JMS訂閱者:使用選擇器的能力
  • 錯誤52088 - JMS採樣器:選擇REQUEST / RESPONSE時添加選擇器
  • 錯誤52104 - TCP採樣器處理嚴重錯誤
  • 錯誤52087 - TCPClient接口不容許部分讀取
  • 錯誤52115 - 找不到要發送的文件時,SOAP / XML-RPC不該發送POST請求
  • 錯誤40750 - TCPSampler:遠程主機關閉套接字時的行爲
  • 錯誤52396 - 「重用鏈接模式」中的TCP採樣器重用之前的採樣器鏈接,即便它配置了其餘主機,端口,用戶或密碼
  • 錯誤52048 - BSFSampler,BSFPreProcessor和BSFPostProcessor應共享相同的GUI

控制器

聽衆

  • 錯誤52022 - 在查看結果樹中,若是結果很大,則不顯示消息,顯示儘量多的結果
  • 錯誤52201 - 向TableVisualiser添加選項以顯示子樣本而不是父樣本
  • 錯誤52214 - 保存對文件的響應 - 改進命名算法
  • 錯誤52340 - 容許在運行時更改遠程採樣模式
  • 錯誤52452 - 聚合圖形偵聽器的改進(GUI和設置)
  • 復活OldSaveService以容許讀取Avalon格式的JTL(結果)文件

定時器,斷言,配置,預處理器和後處理器

功能

  • 錯誤52006 - 建立函數RandomString以生成隨機字符串
  • 錯誤52016 - 支持Jexl2會頗有用
  • __char()函數如今支持八進制值
  • 新函數__machineIP返回IP地址
  • 錯誤51091 - 返回當前「測試計劃」名稱的新函數

國際化

通常

  • 錯誤51892 - 默認鏡像端口應與默認代理端口不一樣
  • 錯誤51817 - 在「用戶定義的變量」控件中上下移動變量
  • 錯誤51876 - 在採樣器TreeView中搜索的功能
  • 錯誤52019 - 添加菜單選項以啓動測試忽略暫停計時器
  • 錯誤52027 - 容許從選項菜單設置系統或CrossPlatform LAF
  • 錯誤52037 - 記住用戶設置的LaF重啓。
  • 錯誤51861 - 改進HTTP請求GUI以更好地顯示沒有名稱的參數(例如GWT RPC請求)(UNDER DEVELOPMENT)
  • 錯誤52040 - 在JMeter主窗口中添加工具欄
  • 錯誤51816 - 用戶定義變量控件中的註釋字段。
  • 錯誤52052 - 使用分隔符分隔JMS訂閱服務器的結果消息
  • 錯誤52103 - 向表格可視化工具添加自動滾動選項
  • 錯誤52097 - 另存爲應指向使用MRU列表時用於打開文件的同一文件夾
  • 錯誤52085 - 容許在參數面板中進行多項選擇
  • 錯誤52099 - 容許在JDBC鏈接配置中設置事務隔離
  • 錯誤52116 - 容許將剪貼板中的條目添加(粘貼)到參數列表中
  • 錯誤52160 - 不顯示標記爲隱藏的TestBeanGui項
  • 錯誤51886 - 部分在客戶端和部分服務器上解析了部分SampleSender配置
  • 錯誤52161 - 除了upgrade.properties以外,還容許插件添加本身的轉換規則。加載META-INF / resources / org.apache.jmeter.nameupdater.properties文件中的任何其餘屬性
  • 錯誤42538 - 在上下文菜單中添加「重複節點」
  • 錯誤46921 - 添加更改控制器元素的功能
  • 錯誤 52240 - TestBeans應支持Boolean,Integer和Long
  • 錯誤52241 - GenericTestBeanCustomizer假定默認值爲空字符串
  • 錯誤52242 - FileEditor不容許將輸出保存在文件中
  • 錯誤51093 - 加載先前由「選擇另存爲」存儲的選擇時,在藍色窗口欄中顯示文件名
  • 錯誤50086 - JMS Publisher,JMS訂戶,郵件閱讀器採樣器,SMTP採樣器和數據庫配置中未隱藏的密碼字段
  • 錯誤29352 - 在分佈式測試期間使用外部存儲來保存樣本,添加DiskStore遠程樣本發送器:如Hold,但將樣本保存到磁盤直到測試結束。
  • 錯誤52333 - 減小計算SampleResult #nanoTimeOffset的開銷
  • 錯誤52346 - Shutdown檢測是否存在任何阻止JVM退出的非守護程序線程。
  • 錯誤52281 - 支持文件拖放
  • 錯誤52471 - 經過使用線程池提升鏡像服務器性能,而不是爲每一個請求啓動線程
  • 復活OldSaveService以容許讀取Avalon格式的JMX文件(在2.4中刪除)
  • 添加一個對話框以確認在調用Remove action時刪除元素
  • 錯誤41788 - 日誌查看器(控制檯窗口)做爲選項須要
  • 添加選項以更改守護程序線程中的暫停時間(默認爲2000毫秒),該線程檢查JVM是否成功退出。除非暫停時間大於0,不然線程如今不會啓動。

非功能性變化

  • 修復build.xml:支持腳本; 本地化可重用的屬性名稱
  • 錯誤51923 - 計數器功能錯誤或文檔問題?(固定文檔)
  • 將velocity.jar更新爲1.7(從1.6.2開始)
  • 將js.jar更新爲1.7R3(從1.6R5開始)
  • 更新commons-codec1.5⇒1.6
  • 更新commons-io2.0.1⇒2.1
  • 更新commons-jexl2.0.1⇒2.1.1
  • 更新jdom1.1⇒1.1.2
  • 更新junit4.9⇒4.10
  • 錯誤51954 - 生成的文檔包括</ br>條目,這些條目會致使額外的空白行
  • 錯誤52075 - JMeterProperty.clone()當前返回Object; 它應該返回JMeterProperty
  • 將httpcore更新爲4.1.4
  • 錯誤49753 - 請在Maven中央存儲庫上發佈jMeter工件

版本2.5.1

主要變化摘要

  • HttpClient4採樣器如今能夠正確地從新使用鏈接(之前它會使用每一個樣本一個,這可能很快致使資源耗盡)。
  • 對JMS採樣器的各類修復
  • 與Configuration元素一塊兒使用時,再也不僞造函數
  • WebService採樣器GUI已通過從新組織,以實現更好的設計和更高的用戶友好性。WSDL配置助手的一些改進
  • 更好地處理測試關閉。System.exit如今只在沒有其餘選項時調用; 即便這能夠被禁用。

已知的錯誤

Include Controller在非GUI模式下存在一些問題。特別是,若是有兩個包含相同名稱的控制器,則可能致使NullPointerException。

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

若是條件在第一次迭代中始終爲假,則If Controller可能會致使無限循環。解決方法是在If Controller的同一級別(或更高級別)添加一個採樣器。例如,具備0等待時間的測試操做採樣器(不生成樣本),或者將全部字段設置爲False的調試採樣器(以減少樣本大小)。

菜單項選項/選擇語言不會將全部顯示的文本更改成新語言。[行爲已改進,但語言更改仍未徹底正常工做]要徹底覆蓋默認本地語言,請在啓動JMeter以前設置JMeter屬性「language」。

不兼容的變化

HttpClient4和Commons HttpClient 3.1採樣器以前使用的重試次數爲3.這已經更改成默認值爲1,以與Java實現兼容。能夠經過設置相關的JMeter屬性來覆蓋重試計數,例如:

httpclient4.retrycount = 3
httpclient3.retrycount = 3

 

Bug修復

HTTP採樣器和代理

  • 修復HttpClient 4採樣器,以便儘量重用HttpClient實例和鏈接。
  • 臨時修復HC4採樣器以繞過HTTPCLIENT-1120。
  • 錯誤51863 - 與HttpClient 4實現的大量ESTABLISHED鏈接(vs HttpClient 3.1 impl)
  • 錯誤51750 - 檢索全部嵌入的資源不遵循IFRAME
  • 錯誤51752 - 使用「檢索全部嵌入資源」和併發池時,HTTP緩存已中斷
  • 錯誤39219 - HTTP服務器:文件→打開後沒法中止
  • 錯誤51775 - 經過HttpClient(3.1和4.x)捕獲時,Host頭中的端口號重複
  • 錯誤50617 - 監控結果圖例顯示「死」服務器,儘管檢索了服務器的值

其餘採樣器

  • 錯誤50424 - Web方法下拉列表框不一致
  • 錯誤43293 - 建立新採樣器時未清除Java請求字段
  • 錯誤51830 - 當Webservice WSDL URL關閉時,Webservice Soap Request會觸發太多彈出窗口
  • WebService(SOAP)請求 - 添加鏈接超時以獲取用於在服務器未響應時填充Web方法的wsdl
  • 錯誤51841 - JMS:若是ReceiveSubscriber構造函數或Publisher中發生錯誤,則Connections將保持打開狀態
  • 錯誤51691 - 受權不適用於JMS Publisher和JMS訂閱服務器
  • 錯誤51840 - JMS:InitialContext的緩存有一些問題
  • 錯誤47888 - JUnit Sampler重用測試對象

控制器

  • 若是控制器 - 修復了 Bug 50032引入的兩個迴歸(參見 Bug 50618
  • 若是Controller - 當條件老是返回false時捕獲StackOverflowError(在至少一次返回true以後返回true)參見Bug 50618
  • 錯誤51869 - 使用包含控制器時出現NullPointer異常

聽衆

斷言

功能

  • 錯誤48943 - 與Config元素組合使用時,會屢次調用函數

國際化

  • WebService(SOAP)請求 - 爲某些標籤添加I18N

通常

  • 錯誤51831 - 沒法禁用UDP服務器或更改最大UDP端口
  • 錯誤51821 - 爲測試計劃中的啓用/禁用(子)樹或分支添加快捷方式。
  • 錯誤47921 - JMeterThread退出後未爲GC發佈的變量。
  • 錯誤51839 - 「...運行結束」過早打印
  • 錯誤51847 - 某些JUnit測試是區域設置敏感的,若是Locale與US不一樣,則會失敗
  • 錯誤51855 - 父樣本的通過時間可能略微不許確
  • 錯誤51880 - 若是在全部線程啓動以前調用它,則shutdown命令不起做用
  • 未啓用遠程關閉主機菜單項。
  • 錯誤51888 - 中止測試計劃時偶爾出現死鎖

改進

HTTP採樣器

  • 錯誤51380 - 控制從迭代到迭代的緩存SSL上下文的重用
  • 錯誤51882 - HTTPHC3Client使用默認重試次數3,使其可配置; 默認如今是1
  • 將默認的HttpClient 4採樣器重​​試計數更改成1

其餘採樣器

  • Beanshell Sampler如今支持可中斷接口
  • 錯誤51605 - WebService(SOAP)請求 - 在請求中選擇值時,對全部請求祕密更改WebMethod字段值
  • WebService(SOAP)請求 - 從新組織的GUI,以實現更好的設計和更高的用戶友好性

控制器

聽衆

  • 錯誤42246 - 「查看結果樹」和「斷言結果」中須要「自動滾動」選項
  • 查看結果樹:Regexp Tester - 用戶界面的改進不多

定時器,斷言,配置,預處理器和後處理器

  • 錯誤51885 - 容許JMeter變量做爲XPathExtractor的輸入

功能

國際化

通常

  • 錯誤51822 - (第1部分)保存1個GuiPackage#getCurrentGui調用
  • 添加了AsynchSampleSender,它能夠異步地將樣本從服務器發送到客戶端。
  • 升級到htmlparser 2.1; JavaMail 1.4.4; JUnit 4.9

非功能性變化

  • 錯誤49976 - FormCharSetFinder可見性是默認值而不是公共值。
  • 錯誤50917 - 從測試計劃設置時,屬性CookieManager.save.cookies不受尊重
  • 檢測到Javascript錯誤時改進錯誤日誌記錄。
  • 更新了文檔頁腳

版本2.5

主要變化摘要

  • 如今能夠在運行時選擇HTTP實現,JMeter如今也支持Apache HttpComponents HttpClient 4.x. 請注意,Commons HttpClient 3.1再也不開發,而且可能會在未來的版本中從JMeter中刪除支持。
  • HTTP採樣器如今容許在HTML頁面中並行下載嵌入式資源
  • HTTP Sampler如今能夠在解壓縮以前報告請求的大小。
  • JMS和Mail採樣器已獲得改進。
  • 新的測試片斷測試元素使包含控制器變得更容易
  • View Results Tree Listener有各類改進
  • 錯誤30563 - 線程組應該在Sample Error上有一個start next循環選項
  • 有兩種新的線程組類型--setUp和tearDown - 它們在主線程組以前和以後運行。
  • 客戶端 - 服務器模式如今支持經過UDP進行外部中止/關閉
    多個JMeter服務器實例能夠在同一主機上啓動,而無需更改端口屬性。
  • 錯誤50516 - HTTP標頭管理器中的「主機」標頭未包含在生成的HTTP請求中

 

 

已知的錯誤

Include Controller在非GUI模式下存在一些問題。特別是,若是有兩個包含相同名稱的控制器,則可能致使NullPointerException。

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

菜單項選項/選擇語言不會將全部顯示的文本更改成新語言。[行爲已改進,但語言更改仍未徹底正常工做]要徹底覆蓋默認本地語言,請在啓動JMeter以前設置JMeter屬性「language」。

不兼容的變化

Commons HttpClient採樣器再也不將不支持的方法轉換爲GET。

刪除方法public static long currentTimeInMs()。這已被實例方法public long currentTimeInMillis()取代。

ProxyControl.getSamplerTypeName()如今返回一個String而不是一個int。這是JMeter代理及其GUI的工做內部,所以不該影響任何用戶代碼。

Bug修復

HTTP採樣器和代理

  • 錯誤50178 - 做爲Thread Group的子節點添加的HeaderManager能夠建立鏈接的HeaderManager名稱和OutOfMemoryException
  • 錯誤50392 - 在Multipart中發送請求時修剪值
  • 錯誤50686 - 合併實例時HeaderManager日誌記錄過於冗長
  • 錯誤50963 - AjpSampler拋出java.lang.StringIndexOutOfBoundsException
  • 錯誤50516 - HTTP標頭管理器中的「主機」標頭未包含在生成的HTTP請求中
  • 錯誤50544 - 在Apache Common Log中,HEAD請求致使問題。
  • 錯誤51268 - 經過無效代理的HTTPS請求致使NullPointerException,而且不在結果樹中顯示。不要將「意外」故障委託給JMeter線程處理程序,而是確保全部異常都會生成示例錯誤。
  • 錯誤51275 - Cookie Panel clearGui()在Java 1.6中設置了錯誤的默認策略

其餘採樣器

  • 錯誤50173 - JDBCSampler從PreparedStatement中丟棄ResultSet
  • 確保JSR223 Sampler能夠訪問當前的SampleResult
  • 錯誤50977 - 沒法爲單個樣本設置TCP採樣器

控制器

  • 錯誤50032 - 當線程組有多個循環時,Last_Sample_Ok以及其餘控制器沒法正常工做
  • 錯誤50080 - 事務控制器錯誤地建立樣本,包括計時器
  • 錯誤50134 - TransactionController:報告包含其餘TransactionControllers時的錯誤響應時間

聽衆

  • 錯誤50367 - 在視圖結果樹中清除/清除所有不清除所選元素

斷言

功能

  • 錯誤50568 - 函數__FileToString():當編碼選項爲空/空時沒法讀取文件

國際化

通常

  • 錯誤49734 - 中止線程命令上的空指針異常(運行→中止)
  • 錯誤49666 - CSV標題在EOF後讀取爲數據
  • 錯誤45703 - 同步計時器
  • 錯誤 50088 - 修復SamplingStatCalculator中的getAvgPageBytes,以便它返回它應該的內容
  • 錯誤50203沒法設置屬性「jmeter.save.saveservice.default_delimiter = \ t」
  • mirror-server.sh - 修復要使用的類路徑:separator(not;)
  • 錯誤50286 - URL重寫修飾符:在XML標記之間提取的jsessionid值不正確
  • System.nanoTime()每每相對於System.currentTimeMillis()漂移。每次更改SampleResult以從新計算偏移量。還能夠僅恢復使用System.currentTimeMillis()。
  • 錯誤50425 - 從Controller添加菜單中刪除線程組
  • 錯誤50675 - CVS數據集配置與遠程啓動固定RMI啓動不兼容,以提供相對於user.dir的JMX文件的位置。
  • 錯誤50221 - 重命名樹中的元素不會調整標籤大小
  • 錯誤51002 - 若是CSV文件不可用,則中止線程。JMeter如今將IOError視爲EOF。
  • 默認狀況下定義sun.net.http.allowRestrictedHeaders = true。這修復了 Bug 51238
  • 錯誤51645 - 當file.encoding爲UTF-8時,CSVDataSet不讀取UTF-8文件

改進

HTTP採樣器

  • AJP Sampler如今實現了Interruptible
  • 容許在運行時選擇HTTP實現
  • 錯誤50684 - 可選擇在多部分POST中禁用Content-Type和Transfer-Encoding
  • 錯誤50943 - 容許在html頁面中同時下載嵌入式資源
  • 錯誤50170 - http sampler報告的字節是在GUnZip以後
    添加可選屬性以容許更改方法以獲取響應大小
  • 在HTTP Sampler上隱藏代理密碼(僅在GUI上,而不是在JMX文件中)

其餘採樣器

  • 錯誤49622 - 容許發送沒有主題的郵件(SMTP Sampler)
  • 錯誤49603 - 容許在Mail Reader Sampler上接受過時的證書
  • 錯誤49775 - 容許在沒有正文的狀況下發送消息
  • 錯誤49862 - 改進SMTPSampler請求輸出。
  • 錯誤50268 - 向JMS Publisher添加靜態和動態目標
  • JMS訂閱者 - 添加動態目標
  • 錯誤50666 - JMSSubscriber:支持持久訂閱
  • 錯誤50937 - TCP Sampler未提供/ honor鏈接超時
  • 錯誤50569 - Jdbc Request Sampler可選擇存儲結果集對象數據
  • 錯誤51011 - Mail Reader:在身份驗證失敗時,告訴您嘗試了什麼

控制器

  • 錯誤50475 - 引入測試片斷測試元素以得到更好的包含流程

聽衆

  • 查看結果樹 - 在「採樣器結果選項卡→已解析」上添加對話框的文本框,以雙擊單元格顯示長值
  • 錯誤37156 - 結果樹中請求的格式化視圖
  • 錯誤49365 - 容許將結果集寫入相對於加載腳本的路徑中的文件
  • 錯誤50579 - 錯誤計數很長,樣本計數爲int。將樣本計數更改成long。
  • 查看結果樹 - 添加新的大小字段:響應頭和響應正文(以字節爲單位) - 派生自 Bug 43363

定時器,斷言,配置,預處理器和後處理器

  • 錯誤48015 - 爲預處理器,後處理器和斷言元素提出新圖標
  • 錯誤50962 - SizeAssertionGui驗證阻止使用大小的變量
  • 大小斷言 - 添加響應大小範圍(完整,標題,正文,代碼,消息) - 源自 Bug 43363

功能

  • 錯誤49975 - 返回當前採樣器名稱的新函數

國際化

  • 爲新標籤添加法語翻譯,並減小HTTP Sample上某些標籤的大小(縮寫)

通常

  • 錯誤30563 - 線程組應該在Sample Error上有一個start next循環選項
  • 錯誤50347 - Eclipse安裝說明應提醒用戶下載相關的jar
  • 錯誤50490 - 設置和後線程組加強功能,以得到更好的測試流程。
  • 如今,全部BeanShell測試元素都定義了腳本變量「prev」和「Label」。
  • 錯誤50708 - NewDriver中的 Classpath jar順序不是按字母順序排列的
  • 錯誤50659 - JMeter服務器不支持併發測試 - 阻止客戶端啓動另外一個測試
  • 添加了遠程關機功能
  • 客戶端JMeter引擎如今支持經過UDP進行外部中止/關閉
  • UDP關閉如今能夠使用一系列端口,從jmeterengine.nongui.port = 4445到jmeterengine.nongui.maxport = 4455,容許同一主機上的多個JMeter實例,而無需更改端口屬性。
  • 更新爲httpcore 4.1.3和httpclient 4.1.2

非功能性變化

  • 錯誤50008 - 容許BatchSampleSender進行子類化
  • 錯誤50450 - 在jacobi解算器中使用System.array副本,由於它是本機的,性能更高。
  • 錯誤50487 - runSerialTest驗證永遠不須要持久化的對象
  • 使用Thread.setDefaultUncaughtExceptionHandler()而不是私有ThreadGroup
  • 更新到Commons Net 3.0

版本2.4

主要變化摘要

 

  • JMeter如今至少須要Java 1.5。
  • HTTP代理如今能夠記錄HTTPS會話。
  • JUnit採樣器如今支持JUnit4註釋。
  • 添加了JSR223(javax.script)測試元素。
  • MailReader Sampler如今能夠使用底層實現支持的任何協議。
  • 已添加SMTP採樣器。
  • JMeter如今容許用戶提供本身的線程組實現。
  • 查看結果樹如今支持更多顯示選項,包括搜索和正則表達式測試。
  • StatCalculator的性能大大提升; 聚合報告等須要更少的內存。
  • JMS採樣器已通過普遍的從新設計,不該再丟失消息。相關處理獲得改進。JMS Publisher和Subscriber如今支持主題和隊列。
  • 已經進行了許多其餘改進,請參見下文和手冊。

 

已知的錯誤

Include Controller在非GUI模式下存在一些問題。特別是,若是有兩個包含相同名稱的控制器,則可能致使NullPointerException。

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

菜單項選項/選擇語言不會將全部顯示的文本更改成新語言。[行爲已改進,但語言更改仍未徹底正常工做]要徹底覆蓋默認本地語言,請在啓動JMeter以前設置JMeter屬性「language」。

不兼容的變化

HTTP重定向如今默認爲「關注重定向」而不是「自動重定向」。這是爲了使JMeter可以跟蹤重定向期間可能發送的cookie。這不會影響現有的測試計劃; 它隻影響新HTTP採樣器的默認值。

再也不支持JMX和JTL文件的Avalon文件格式。任何此類文件都須要經過在JMeter 2.3.4中讀取並從新保存來轉換。

默認狀況下,XPath Assertion和XPath Extractor元素再也不獲取外部DTD; 這能夠在GUI中更改。

JMSConfigGui已重命名爲JMSSamplerGui。這不會影響現有的測試計劃。

構造函數public SampleResult(SampleResult res)已更改成真正的「複製構造函數」。它再也不調用addSubResult()。這可能會影響一些3 黨加載項。

Bug修復

HTTP採樣器和代理

  • 錯誤47445 - 使用具備https欺騙安全cookie的代理須要不安全
  • 錯誤47442 - 使用https-spoofing在某些條件下缺乏用http替換https
  • 錯誤 48451 - 錯誤:在else分支中的SoapSampler.setPostHeaders(PostMethod post)
  • 錯誤48542 - SoapSampler使用錯誤的響應頭字段來肯定響應是不是gzip編碼的
  • 錯誤48568 - 爲AjpSampler打破了CookieManager
  • 錯誤48570 - AjpSampler不支持查詢參數(GET / POST)
  • 錯誤46901 - HTTP Sampler不在第一個文件參數中正確處理var / func引用
  • 錯誤43678 - 處理META標籤http-equiv charset?
  • 錯誤49294 - 未從重定向頁面下載圖像
  • 錯誤49560 - 重定向後出現錯誤的「字節大小」

其餘採樣器

  • 錯誤47420 - LDAP擴展請求未在添加請求期間關閉鏈接
  • 錯誤48573 - LDAPExtSampler目錄上下文處理
  • 錯誤47870 - 因爲NPE,JMSSubscriber失敗
  • 錯誤47899 - JMS ReceiveSubscriber構造函數中的NullPointerExceptions
  • 錯誤48144 - JMS OnMessageSubscriber中的NPE
  • 錯誤47992 - JMS點對點請求 - 響應選項不起做用
  • 錯誤48579 - 單個綁定在訪問LdapExt採樣器時不顯示配置信息
  • 錯誤49111 - JMS P2P採樣器上出現「未找到ID的消息」錯誤。
  • 錯誤47949 - JMS訂閱者永遠不會收到全部消息
  • 錯誤46142 - JMS點對點關聯問題
  • 錯誤48747 - TCP採樣器吞下異常
  • 錯誤48709 - TCP採樣器配置設置「classname」無效

控制器

  • 錯誤47385 - TransactionController應設置AllThreads和GroupThreads
  • 錯誤47940 - 模塊控制器錯誤地建立替換子樹
  • 錯誤47592 - 錯誤時連續運行「中止測試」的線程組,JMeter將不會標記爲完成
  • 錯誤48786 - 連續運行線程組:出現錯誤或手動中止時「當即中止測試」,JMeter使綠色框保持活動狀態
  • 錯誤48727 - 若是禁用全部線程組,則沒法中止測試

聽衆

  • 錯誤48603 - Mailer Visualiser爲一個失敗的響應發送兩封電子郵件
  • 正確計算聚合樣本的min / max / std.dev(摘要報告)
  • 錯誤48889 - 模式錯誤的響應時間= Statistical和num_sample_threshold> 1
  • 錯誤47398 - SampleEvents在分佈式測試和非gui模式下經過RMI發送兩次

斷言

功能

國際化

通常

  • 錯誤47646 - 「隨機變量」元素中的NullPointerException
  • 禁止將任何子元素添加到JDBC配置
  • BeanInfoSupport如今緩存getBeanDescriptor() - 在使用CSVDataSet(和其餘一些TestBeans)時應該避免非Sun JVM上的NPE
  • 錯誤48350 - 與2個客戶端分佈式測試的死鎖
  • 錯誤48901 - 經過添加同步計時器無休止地等待
  • 錯誤49149 - usermanual / index.html在「正則表達式」頁面的連接中有拼寫錯誤
  • 錯誤49394 - ActionRouter.postActionPerformed中的Classcast異常
  • 錯誤48136 - 源tarball中缺乏必需的文件。
    源存檔如今包含全部源文件,包括之前僅在二進制存檔中提供的源文件。
  • 錯誤48331 - XpathExtractor不返回Nodeset的XML字符串表示形式

改進

HTTP採樣器

  • 錯誤47622 - 啓用HTTPS會話錄製
  • 容許在HTTP Sampler GUI和HTTP Config GUI上指定代理服務器
  • 錯誤47461 - 更新緩存管理器以處理Expires HTTP標頭
  • 錯誤48153 - 支持Cache-Control和Expires標頭
  • 錯誤47946 - 代理應在事務控制器內啓用分組
  • 錯誤48300 - 容許覆蓋HTTP HttpClient請求的IP源地址
  • 錯誤49083 - 在重定向網址中摺疊'/ pathsegment / ..'

其餘採樣器

  • JUnit採樣器如今支持JUnit4測試(使用註釋)
  • 錯誤47900 - 容許JMS SubscriberSampler中斷
  • 添加了JSR223 Sampler
  • 錯誤47556 - JMS-PointToPoint-Sampler超時字段應使用字符串
  • 錯誤47947 - Mail Reader Sampler應容許覆蓋端口
  • 錯誤48155 - 使用JMS協議類的多個問題/加強功能
  • 容許MailReader採樣器使用任意協議
  • 錯誤45053 - JMeter的SMTP-Sampler
  • 錯誤49552 - 在SMTPSampler上添加郵件頭
  • JMS Publisher和Subscriber如今支持主題和隊列。向JMS訂閱者添加了讀取超時。通常清理JMS代碼。

控制器

  • 錯誤47909 - TransactionController應該總結延遲
  • 錯誤41418 - 從報告中的事務控制器運行時中排除計時器持續時間
  • 錯誤48749 - 容許自定義線程組
  • 錯誤43389 - 容許相對於當前JMX文件找到包含文件

聽衆

  • 添加了DataStrippingSample發送器 - 支持「Stripped」和「StrippedBatch」模式。
  • 添加了比較斷言可視化器
  • 錯誤47907 - 改進(加強和I18N)比較斷言和比較Visualizer
  • 錯誤36726 - 向Tree View Listener添加搜索功能
  • 錯誤47869 - 可以清理SampleResult的字段
  • 錯誤47952 - 添加了JSR223監聽器
  • 錯誤47474 - 查看結果樹對插件渲染器的支持
  • 容許空閒時間保存到示例日誌文件
  • 錯誤48259 - 使用TreeMap提升StatCalculator的性能
  • 使用SamplingStatCalculator的監聽器大大減小了內存需求,由於Sample緩存已移至新的CachingStatCalculator類。特別是,聚合報告如今能夠處理大量樣本。
  • 聚合報告和摘要報告如今容許可選地排除列標題
  • 錯誤49506 - 在偵聽器的「從文件讀取」功能的打開對話框中添加.csv文件擴展名
  • 錯誤49545 - 結果樹中樣本結果的格式化(解析)視圖

定時器,斷言,配置,預處理器和後處理器

  • 錯誤47338 - XPath Extractor強制檢索文檔DTD
  • 添加了比較斷言
  • 錯誤47952 - 添加了JSR223 PreProcessor和PostProcessor
  • 添加了JSR223 Assertion
  • 添加了BSF定時器和JSR223定時器
  • 錯誤48511 - 將父,子,全部選擇添加到正則表達式提取器
  • 將Sampler範圍選擇添加到XPathExtractor
  • 正則表達式提取器,響應斷言和大小斷言如今能夠應用於JMeter變量
  • 錯誤46790 - CSV數據集配置應該可以解析CSV標頭

功能

國際化

通常

  • 錯誤47223 - 緩慢的彙總報告性能(StatCalculator)
  • 錯誤47980 - 主機名解析爲127.0.0.1 - 指定IP不可能
  • 錯誤47943 - 在Start類中未使用DisabledComponentRemover
  • 用於運行時生成轉儲的HeapDumper類
  • 用於讀取原始郵件文件的基本只讀JavaMail提供程序實現
  • 錯誤49540 - 按字母順序對「添加」菜單進行排序

非功能性變化

  • Beanshell,JavaMail和JMS API(Apache Geronimo)jar如今包含在二進制存檔中。
  • 添加TestBean表編輯器支持
  • 從SVN中刪除了全部外部庫; 添加了download_jars Ant目標
  • 更新了各類jar文件:
    • BeanShell - 2.0b4⇒2.0b5
    • Commons Codec - 1.3⇒1.4
    • Commons-Collections - 3.2⇒3.2.1
    • JTidy⇒r938
    • JUnit - 3.8.2⇒4.8.1
    • Logkit - 1.2⇒2.0
    • Xalan Serializer = 2.7.1(以前錯誤地顯示爲2.9.1)
    • Xerces xml-apis = 1.3.04(之前錯誤地顯示爲2.9.1)
    • 一些jar文件被重命名。

版本2.3.4

主要變化摘要

這是一個小錯誤修復版本,主要用於糾正2.3.3中意外添加的一些錯誤。

已知的錯誤

Include Controller在非GUI模式下存在一些問題。特別是,若是有兩個包含相同名稱的控制器,則可能致使NullPointerException。

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

菜單項選項/選擇語言不會將全部顯示的文本更改成新語言。[行爲已改進,但語言更改仍未徹底正常工做]要徹底覆蓋默認本地語言,請在啓動JMeter以前設置JMeter屬性「language」。

Bug修復

HTTP採樣器和代理

  • 錯誤47321 - HTTPSampler2響應超時未獲得遵照

其餘採樣器

  • 錯誤47290 - 鏈接工廠查找(JMS)上的無限循環
  • JDBC Sampler不該關閉Prepared或Callable語句,由於這些語句是緩存的

控制器

  • 錯誤39509 - 僅運行一次的控制器運行兩次

聽衆

  • 將ResultCollector更改成僅警告目錄是否未建立
  • 修復ResultCollector和SampleResult中的一些同步問題(正在使用錯誤的鎖)

國際化

  • 修復了2.3.3中引入的錯誤:若是默認語言環境沒有messages.properties文件,則JMeter沒法啓動。

通常

  • 修復遠程客戶端的問題 - 2.3.3中引入的錯誤
  • 錯誤47377 - 使ClassFinder更健壯並關閉zipfile資源
  • 修復生成文檔時的一些錯誤(當Velocity升級時2.3.3中顯示的潛在錯誤)

改進

其餘採樣器

  • 錯誤47266 - FTP請求採樣器:容許指定FTP端口,而不是默認端口

版本2.3.3

主要變化摘要

測試關閉的處理獲得了很大改善。逐漸「關閉」命令如今等待直到全部線程都中止,而且若是線程在5秒內沒有中止,則不會報告錯誤。若是「關閉」時間過長,如今能夠使用當即「中止」命令。此外,當即「中止」命令可以中斷支持新的可中斷接口(例如HTTP和SOAP,FTP)的採樣器。這容許當即完成待處理的響應。如今,非GUI模式測試也能夠發送「關閉」或「中止」消息。 Test Action如今支持「當即中止」操做,線程組結果狀態操做處理程序後處理器元素也是如此。

HTTP Cookie處理獲得改進,HTTP POST如今能夠正確使用變量文件名。更新的HTTP,SOAP / XML-RPC和WebService(SOAP)採樣器字符編碼更加一致。HTTP採樣器如今支持鏈接和響應超時(對於HTTP Java採樣器須要JVM 1.5)。與上述關閉的改進一塊兒,這應該避免大多數狀況下測試運行掛起。如今,單個HTTP採樣器支持多個標頭管理器元素。代理服務器已獲得改進,默認狀況下再也不存儲「主機」標頭。

JDBC Request能夠選擇將Select語句的結果保存到變量中。JDBC Request如今處理帶引號的字符串和UTF-8,而且能夠處理任意變量類型。

有幾個新函數:__char()函數:容許在字段中輸入任意Unicode字符。__unescape()函數:容許使用Java轉義字符串。_unescapeHtml()函數:解碼Html編碼的文本。__escapeHtml()函數:使用Html編碼對文本進行編碼。對缺失函數的引用 - 例如$ {__ missing(a)} - 如今被視爲缺失變量。之前函數名稱 - 和領導{ - 被刪除。這樣能夠更輕鬆地調試測試計劃。

如今,一些斷言能夠應用於子樣本以及(或代替)父樣本。有一個新的隨機變量配置元素。

JMS採樣器獲得了很大改進(詳見下文)。TCP採樣器如今支持一些額外的客戶端,是一個更靈活一點。

客戶端 - 服務器模式已獲得改進,服務器能夠選擇使用固定的RMI端口,這有助於設置防火牆。

已經進行了各類I18N變化; 語言變化效果更好(雖然還不完美)。有改進的法語翻譯以及新的波蘭語和巴西葡萄牙語翻譯。

BeanShell jar如今包含在二進制存檔中; 無需單獨下載。

已知的錯誤

Include Controller在非GUI模式下存在一些問題。特別是,若是有兩個包含相同名稱的控制器,則可能致使NullPointerException

Once Only控制器在線程組或循環控制器下正常運行,但其行爲不一致(或明確指定)。

菜單項選項  →  選擇語言 不會將全部顯示的文本更改成新語言。[行爲已改進,但語言更改仍未徹底正常工做]要徹底覆蓋默認本地語言,請在啓動JMeter以前設置JMeter屬性「 language 」。

不兼容的變化

從文件加載樣本結果時,再也不清除之前的結果。這容許合併多個文件。若是須要先前的行爲,請在加載文件以前使用菜單項Run  →  Clear (Ctrl  +  Shift  +  E) Run  →  Clear All (Ctrl  +  E) 

測試元素「將結果保存到文件」和「生成摘要結果」如今顯示爲監聽器。它們以前被顯示爲後處理器,即便它們是做爲監聽器實現的。

Cookie管理器默認再也不將傳入的Cookie保存爲變量。要將cookie保存爲變量,請定義屬性「 CookieManager.save.cookies = true 」。此外,cookie名稱在存儲以前以「 COOKIE_ 」 爲前綴(這能夠避免意外損壞局部變量)要恢復原始行爲,請定義屬性「 CookieManager.name.prefix = 」(一個或多個空格)。

Counter元素如今顯示爲Configuration元素。它之前顯示爲預處理器,即便它是做爲Config項實現的。

以上更改僅影響顯示的圖標和GUI彈出菜單中的位置。它們不會影響測試計劃或測試行爲。

PreProcessors如今由JMeterThread類直接調用,而不是由TestCompiler#configureSampler()方法調用。(JMeterThread處理PostProcessors)。這不會影響測試計劃或行爲,但也許能夠影響到3 黨的插件(不太可能)。

將範圍規則子節從第3節「構建測試計劃」移至第4節「測試計劃的元素」

While控制器如今從條件值中修剪前導和尾隨空格,而後將其與LAST,空白或false進行比較。

_jexl()和__javaScript()函數中的「threadName」變量之前拼錯爲「theadName」。

從JOrphanUtils中刪除了如下不推薦使用的方法:booleanToString(boolean)和valueOf(boolean)。Java 1.4+在Boolean類中有這些方法。

TestElement接口有一些新方法:

  • void setProperty(String key,String value,String dflt)
  • void setProperty(String key,boolean value,boolean dflt)
  • void setProperty(String key,int value)
  • void setProperty(String key,int value,int dflt)
  • int getPropertyAsInt(String key,int defaultValue)

這些是在AbstractTestElement類中實現的,全部元素都應該擴展,這不太可能致使問題。

 

Bug修復

HTTP採樣器和代理

  • 錯誤46332 - HTTP Cookie管理器忽略手動定義的cookie(r707810中引入的錯誤)
  • Cookie管理器未將cookie策略傳遞給運行時線程,所以它們始終使用兼容模式
  • 將版本屬性添加到JMeter Cookie類(正確的cookie支持須要)
  • Cookie Manager如今能夠保存/恢復Cookie版本
  • 在存儲以前檢查cookie的有效性。
  • HTTPSamplers如今能夠在POSTed文件名中使用變量
  • 修復HTTP POST中第一個文件名的處理,使函數/變量起做用(多文件支持引入了bug)
  • 錯誤45831 - 若是SOAP數據包建立失敗,WS Sampler會報告錯誤的吞吐量
  • 更新的HTTP,SOAP / XML-RPC和WebService(SOAP)採樣器字符編碼更加一致
  • 錯誤46148 - 當jmeter.util的日誌記錄設置爲DEBUG時,HTTP採樣器在SSL請求上失敗
  • 修復Java 1.6 https錯誤:java.net.SocketException:未實現未鏈接的套接字
  • 錯誤46838 - 若是沒有數據,仍須要在HTTPSampler中設置延遲
  • 錯誤46993 - 從Header Manager保存會生成ClassCastException
  • 錯誤46690 - 使用無效的相對路徑處理302重定向。JMeter如今刪除無關的前導「../」段(與許多瀏覽器同樣)
  • 錯誤44521 - HTTP請求中的POST的空變量不會被忽略
  • 錯誤46977 - JMeter不處理沒有空格分隔的HTTP標頭
  • 修復HTTP文件中的錯誤:處理 - 讀取字節,而不是默認編碼中的字符。
  • 從代理服務器保存的標頭中刪除主機,由於它一般由HTTP堆棧生成
  • 錯誤45199 - 不要嘗試替換代理記錄中的空白變量
  • 更改HTTPS欺騙,即便URL匹配失敗,也會替換https:連接
  • 錯誤46436 - 改進Proxy Gui中的錯誤報告
  • 錯誤46435 - 錯誤501(代理服務器)的詳細錯誤消息

其餘採樣器

  • 如今爲BSF測試元素定義了「prev」和「sampler」對象
  • 在客戶端 - 服務器模式下使用JDBC時修復NPE(在DataSourceElement中)
  • 錯誤45425 - JDBC請求不支持Unicode(更改的採樣器使用UTF-8)
  • 錯誤46522 - 缺乏列名時JDBC示例中的「響應數據」不正確
  • 錯誤46821 - JDBC select請求不存儲變量中的第一列
  • 錯誤43791 - 確保在JMS點對點採樣器中關閉QueueReceiver
  • 錯誤46016 - 避免JMSSampler中可能的NPE
  • 錯誤46142 - JMS Receiver如今使用MessageID
  • 錯誤45458 - 點對點JMS與身份驗證相結合
  • 錯誤45460 - JMS TestPlan元素依賴於資源屬性
  • 各類ReceiveSubscriber線程安全修復程序
  • JMSPublisher和Subscriber修復:線程安全,支持動態區域設置更改,JMX屬性值的區域設置獨立性
  • FTP Sampler如今在斷開鏈接以前註銷。
  • TCP採樣器如今調用setupTest()和teardownTest()方法
  • 錯誤45887 - TCPSampler:錯誤設置超時屬性

控制器

  • 將嵌套事務控制器與父樣本一塊兒使用時修復NPE
  • 修復事務控制器父模式的處理,以便將當前採樣器設置爲實際採樣器
  • 錯誤44941 - 吞吐量控制器不該共享全局計數器
  • 錯誤47120 - 吞吐量控制器:將執行百分比更改成總執行次數,該值存儲在String中並解釋爲1次執行
  • 錯誤47150 - 循環計數爲零的ThreadGroup致使無限循環
  • 錯誤47009 - 插入父引起的子控制器名稱以重置
  • 錯誤47165 - 在命令行模式下使用重複的模塊控制器名稱會致使NPE

聽衆

  • Mailer Visualizer文檔如今贊成代碼,即須要超過失敗/成功計數才能觸發郵件。
  • Mailer Visualizer如今顯示故障計數
  • Mailer Visualiser - 使用「測試」按鈕修復多個電子郵件地址的解析
  • 錯誤45976 - 使用超過1臺服務器的遠程測試時結果文件不完整
  • 修復Summariser,使其在客戶端服務器模式下工做
  • 錯誤34096 - 寫入CSV文件時未刪除重複的樣本
  • 在「聚合」和「摘要」報告中保存「在標籤中包含組名稱」設置
  • JMeter變量「sample_variables」將發送到全部服務器實例,以確保客戶端能夠使用該數據。
  • CSVSaveService - 在讀取引用的字符串時檢查EOF

斷言

  • 錯誤45749 - 響應斷言不適用於剛好是無效RE的子字符串
  • 錯誤45904 - 容許'Not'響應斷言成功使用null示例

功能

  • 修復正則表達式功能 - 沒法正確處理$ m $ mid $ n $
  • 若是在測試關閉期間調用,則在RegexFunction中防止可能的NPE。
  • 若是XPath函數與任何節點都不匹配,請避免使用NPE
  • 在__jexl()和__javaScript()函數中將變量名「theadName」更正爲「threadName」
  • 對缺失函數的引用 - 例如$ {__ missing(a)} - 如今被視爲缺失變量。之前函數名稱 - 和領導{ - 被刪除。

國際化

  • 修復了菜單的語言更改處理(對TestBeans不起做用)
  • 添加HeaderAsPropertyRenderer以支持標頭資源名稱; 使用它來修復各類GUI元素中的區域設置更改
  • 錯誤46424 - 對法語翻譯的更正
  • 錯誤46844 - 測試計劃中的「庫」標籤不是I18N
  • 錯誤47064 - 修復了Mac LAF
  • 錯誤47127 - 沒法將語言更改成pl_PL
  • 錯誤47137 - 查看結果樹中的標籤不是I18N
  • 錯誤46423 - 代理記錄器的I18N
  • 錯誤45928 - AJP / 1.3 Sampler不從messages.properties中檢索其標籤

通常

  • 首次保存新測試計劃時,提示覆蓋現有文件
  • 修改TestBeans以顯示Listeners的正確彈出菜單
  • 錯誤45185 - CSV數據集空白分隔符致使OOM
  • 修復不正確的GUI分類:「將結果保存到文件」和「生成摘要結果」如今顯示爲監聽器。「Counter」如今顯示爲Configuration元素。
  • 錯誤41608 - 刪除了誤導性警告日誌消息
  • 錯誤46359 - BSF JavaScript預處理器沒法在第一次迭代時訪問sampler變量(爲BSF-22實現臨時工做循環)
  • 錯誤46407 - BSF元素不加載腳本文件,嘗試將文件名解釋爲腳本
  • 在測試關閉期間更好地處理異常
  • 修復JMeterThread類中潛在的線程安全問題
  • 錯誤46491 - 「CSV數據集配置」中最後一個變量的值不正確(處理引用字符串時出錯)

改進

HTTP採樣器

  • 錯誤45479 - 支持多個HTTP標頭管理器節點
  • HTTP採樣器如今支持鏈接和請求超時(Java Http採樣器須要Java 1.5)
  • Apache SOAP 2.3.1不容許訪問HTTP響應代碼/消息,所以WebService採樣器如今將空響應視爲錯誤
  • 鏡像服務器如今支持「X-Sleep」標頭 - 若是設置了此項,響應線程將等待指定的毫秒數
  • 錯誤45694 - 在Access Log Sampler中支持GZIP壓縮日誌

其餘採樣器

  • JDBC Request能夠選擇將Select語句的結果保存到變量中。
  • JDBC Request如今處理帶引號的字符串。
  • JDBC Request如今處理任意變量類型。
  • 如今使用換行符格式化LDAP結果數據
  • 錯誤45200 - MailReaderSampler:將整個MIME消息存儲在SamplerResult中
  • 錯誤45571 - JMS採樣器相關性加強
  • 錯誤46030 - 擴展TCP採樣器以支持長度爲前綴的二進制數據
  • 將classname字段添加到TCP Sampler GUI

控制器

  • 容許控制器使用變量表達式(不只僅是Javascript)
  • 在與LAST,空白或false進行比較以前,從While Controller條件中修剪空格

聽衆

  • 保存對文件的響應能夠將生成的文件名保存到變量中。
  • 添加選項以在「保存對文件的響應」中跳事後綴生成
  • 錯誤43119 - 保存對文件的響應:可選擇省略文件編號
  • 添加BSF Listener元素
  • 錯誤47176 - 監控結果:改善負載狀態圖形
  • 錯誤40045 - 容許結果監視器選擇特定鏈接器
  • 更有效地讀取XML JTL文件 - 在讀取時將樣本傳遞給可視化工具,而不是將它們所有保存而後再處理它們

斷言,配置,預處理器和後處理器

  • 錯誤45903 - 容許斷言應用於子樣本
  • 將正文(未轉義)源選項添加到正則表達式提取器。
  • 隨機變量 - 用於建立隨機數字變量的新配置元素

功能

  • 將OUT和日誌變量添加到__jexl()函數
  • 使用腳原本評估__jexl()函數,所以能夠有多個語句。
  • 將日誌變量添加到__javaScript()函數
  • 添加__char()函數:容許在字段中輸入任意Unicode字符。
  • 添加了__unescape()函數:容許使用Java轉義字符串。
  • 添加了__unescapeHtml()函數:解碼Html編碼的文本。
  • 添加了__escapeHtml()函數:使用Html編碼對文本進行編碼。

國際化

通常

  • 容許JMeter路徑名中的空格(適用於Java Bug 4496398的工做循環
  • 在腳本文件中最後處理JVM_ARGS,以便用戶能夠覆蓋默認設置
  • 錯誤46636 - 容許服務器模式可選地使用固定的rmi端口
  • 使一些採樣器能夠中斷:HTTP(二者),SoapSampler,FTPSampler
  • 測試操做如今支持「當即中止」操做,線程組和結果狀態後處理器元素也是如此
  • 菜單項中止和關閉如今表現得更好。關機如今將等待全部線程退出。在GUI模式下,它能夠取消並中止運行。如今中止報告是否某些線程不會退出,若是在非GUI模式下運行則退出
  • 若是在非GUI模式下運行,則添加UDP服務器以等待關閉消息; 添加UDP客戶端以發送消息。
  • 錯誤41209 - JLabeled *和工具提示
  • 在二進制下載中包含BeanShell 2.0b4 jar。

非功能性變化

  • 引入AbstractListenerGui類,以便更輕鬆地建立沒有可視輸出的Listener
  • 斷言在PostProcessors以後運行; 相應地更改彈出菜單的順序
  • 從函數類中刪除沒必要要的clone()方法
  • 將PreProcessor調用移至JMeterThread類
  • 製做HashTree Map字段最終版
  • 提升對多個樣本調用ResultCollector#isSampleWanted()的性能
  • 更新到新版本:xmlgraphics-commons(1.3.1),jdom(1.1),xstream(1.3.1),velocity(1.6.2)

版本2.3.2

主要變化摘要

Bug修復

就視圖結果樹監聽器而言,版本2.3.1改變了二進制和文本內容類型的肯定方式:除「圖像/」內容類型以外的全部內容都被視爲文本,但2.3.1引入了對特定內容類型的檢查。這致使了問題,由於省略了幾種經常使用類型,而且在「響應」選項卡中默認再也不顯示這些類型。JMeter如今只檢查如下二進制類型,而不是嘗試列出全部可能的文本類型:

  • 圖片/*
  • 音頻/ *
  • 視頻/*

如今假定全部其餘類型都是文本。

 

JMeter 2.3.1在Cookie管理器中引入了一個錯誤 - 若是選擇了「每次迭代清除Cookie」,則全部線程都會看到相同的cookie。此錯誤已獲得糾正。

改進

代理服務器如今能夠記錄二進制請求。默認狀況下,內容類型application / x-amf和application / x-java-serialized-object將被視爲二進制文件並保存在文件中。要更改內容類型,請更新屬性proxy.binary.types

CSV數據集配置元素具備新的文件共享選項:每一個線程組,每一個線程,每一個標識符。這容許更靈活的文件處理,例如,每一個線程能夠以相同的順序處理相同的數據。

Switch Controller如今能夠正常使用函數和變量,條件如今能夠是名稱而不是數字。簡單控制器如今能夠在While控制器下正常工做

JTL文件中的CSV字段如今能夠包含分隔符。CSV和XML文件如今能夠包含其餘變量(定義JMeter屬性sample_variables)。

響應斷言如今能夠匹配子串(即不是正則表達式)。正則表達式提取器能夠對變量進行操做。

XPath處理獲得改進; 整潔的錯誤獲得更好的處理。

保存添加到摘要和彙總報表的表數據按鈕,以便輕鬆保存計算數據。

HTTP採樣器如今能夠只保存響應的MD5哈希值,而不是整個響應。做爲特殊狀況,若是HTTP Sampler路徑以「http://」或「https://」開頭,則將其用做完整URL,從而覆蓋主機和端口字段。HTTP採樣器如今能夠POST多個文件。Webservice(SOAP)Sampler如今能夠使用「file:」協議加載本地WSDL文件。

添加了一個簡單的HTTP緩存管理器。這須要進一步發展。

查看結果樹監聽器如今使用Tidy來顯示XML。這應該容許更多內容成功顯示。它還避免了下載遠程DTD文件的須要,這可能會大大減慢渲染速度。

MailReader採樣器如今支持POP3S和IMAPS協議。如今添加單個郵件做爲子樣本。

對BSF Sampler的各類改進:如今支持Jexl,Javascript bug正常工做。添加了BSF PreProcessor,PostProcessor和Assertion測試元素。如今全部人均可以訪問「道具」JMeter Properties對象。

在非GUI模式下加載的類數量大大減小。

已知的錯誤

Include Controller在非GUI模式下存在一些問題。特別是,若是有兩個包含相同名稱的控制器,則可能致使NullPointerException。

Once Only控制器在線程組或循環控制器下運行正常,但其行爲不一致(或明確指定)。

菜單項選項/選擇語言不會將全部顯示的文本更改成新語言。要覆蓋默認本地語言,請在啓動JMeter以前設置JMeter屬性「language」。

不兼容的變化

  • 要減小在非GUI模式下加載的類數,只有在類名包含字符串'.functions'時才能找到函數。而且不包含字符串'.gui。'。全部現有的JMeter功能都符合此限制。要恢復到以前的行爲,請在jmeter.properties中註釋或更改屬性classfinder.functions。*。
  • intSum()的引用值參數如今是可選的。所以,若是使用變量名,則它不能是有效的整數。
  • 提供的TCPClient實現再也不將tcp.eolByte = 0視爲特殊。要跳過EOL檢查,請設置tcp.eolByte = 1000(或其餘一些不是有效字節的值)
  • 在函數調用中從變量名修剪前導和尾隨空格。例如,$ {__ Random(1,63,LOTTERY)}將使用變量'LOTTERY'而不是'LOTTERY'。
  • 已從RunningSample類中刪除同步(不管如何它都不是徹底線程安全的)。3的開發商第三黨插件使用該類可能須要同步訪問。

Bug修復

  • 檢查CSV分隔符是否合理。
  • 修復開關控制器以正常使用功能和變量
  • 錯誤44011 - application / soap + xml未被視爲文本類型
  • 錯誤43427 - 簡單控制器僅部分在While循環中執行
  • 錯誤33954 - If / While控制器中的堆棧溢出(可能先前已修復)
  • 錯誤44022 - 關閉測試計劃時內存泄漏
  • 錯誤44042 - Cookie管理器中的迴歸(2.3.1中引入的錯誤)
  • 錯誤41028 - 當主機被定義爲環回地址時,JMeter服務器不會提醒用戶
  • 錯誤44142 - 若是省略參數,函數__machineName會致使NPE。
  • 錯誤44144 - JMS點對點:請求響應測試不起做用
  • 錯誤44314 - 沒法添加多個SyncTimer
  • 捕獲Tidy控制檯錯誤輸出並記錄它
  • 使用XPath Assertion和XPath Extractor中的Tidy(容錯解析器)修復問題
  • 錯誤44374 - 改進計時器計算
  • 正則表達式提取器如今刪除先前匹配的全部陳舊變量。
  • 錯誤44707 - 運行遠程測試更改內部測試計劃
  • 錯誤44625 - 不能有兩個或更多具備不一樣「put」和「get」操做的FTP採樣器
  • 錯誤40850 - BeanShell內存泄漏
  • 確保爲成功的JDBC樣本設置ResponseCode和ResponseMessage
  • FTPSampler如今檢測並報告打開遠程文件失敗
  • search_paths和user.classpath中定義的類目錄再也不須要尾隨「/」
  • 錯誤44852 SOAP / XML-RPC請求未在「查看結果樹」中顯示「請求」詳細信息
  • WebService(SOAP)採樣器ResponseData如今包括服務器發送的EOL
  • 錯誤44910 - 關閉TCP採樣器中的上一個套接字(若是有)
  • 錯誤44912 - 過濾器在Log Parser中沒法正常工做
  • BeanShell和BSF組件文檔對「SampleResponse」對象進行了一些不正確的引用; 這已被更正爲「SampleResult」
  • BSF Sampler如今能夠正常使用Javascript
  • 測試操做「中止測試」如今有效
  • 錯誤42833 - 參數類在getArgumentsAsMap()中使用LinkedHashMap來保留排序
  • 錯誤45093 - SizeAssertion沒有調用getBytes()
  • 錯誤45007 - 使用代理HTTPS欺騙時重寫位置標頭
  • 將標頭返回給客戶端時,在代理中使用CRLF而不是LF
  • 錯誤45007 - 若是內容可能已更改,則修復內容長度標題

改進

  • CSV文件如今能夠處理帶有嵌入分隔符的字段。
  • 添加了longSum()函數
  • 錯誤43382 - 爲XPath斷言和後處理器配置Tidy輸出(警告,錯誤)
  • 錯誤43984 - 從端口字段修剪空格
  • 向__log()函數添加可選註釋
  • 使隨機函數變量名可選
  • 經過僅查找包含「.functions」的類名中的函數,減小非GUI模式下的類加載。而且不包含'.gui'。
  • 錯誤43379 - 交換機控制器如今支持按名稱和編號進行選擇
  • 能夠指定要寫入JTL文件的變量名列表(CSV和XML格式)
  • 如今檢查remoteStart選項-r和-R是否僅與non_GUI -n選項一塊兒使用
  • 錯誤44184 - 容許使用Aggregate Graph數據保存標頭
  • 添加「保存表格數據」按鈕到聚合報告和摘要報告 - 將表格保存爲帶有標題的CSV格式
  • 容許大多數功能用於測試計劃。注意__evalVar(),__ split()和__regex()不能用於測試計劃。
  • 容許從文件加載全局屬性,例如-Gglobal.properties
  • 將「Substring」選項添加到Response Assertion
  • 錯誤44378 - 土耳其本地化
  • 將可選的輸出變量名稱添加到Jexl函數
  • 將application / vnd.wap.xhtml + xml添加爲文本類型
  • 添加意味着覆蓋視圖結果樹中的最大顯示大小 - 設置屬性:view.results.tree.max_size
  • 使用Tidy在View Results Tree Listener中顯示XML(避免獲取DTD)
  • 錯誤44487 - 德語翻譯
  • 做爲一種特殊狀況,若是HTTP Sampler路徑以「http://」或「https://」開頭,則將其用做完整URL。
  • 錯誤44575 - 結果保護程序如今只能保存成功的結果
  • 錯誤44650 - CSV數據集如今處理引用的列值
  • 錯誤44600 - 使用Java 1.5+運行時的1毫秒分辨率計時器
  • 錯誤44632 - FTP採樣器的文本輸入加強功能
  • 錯誤42204 - 將線程組名稱添加到聚合和摘要報告
  • FTP採樣器設置延遲=登陸時間
  • 若是能夠,FTP採樣器設置URL
  • 錯誤41921 - 爲採樣器添加選項以存儲響應的MD5; 爲HTTP採樣器完成。
  • 如今,正則表達式函數也能夠應用於變量而不只僅是前一個樣本結果。
  • 不推薦使用菜單中的HTML參數掩碼,HTTP用戶參數修飾符
  • 錯誤44807 - 容許會話ID以反斜槓終止
  • 錯誤44784 - 容許損壞的服務器返回額外的字符集
  • 添加了TESTSTART.MS屬性/變量=測試開始時間(以毫秒爲單位)
  • 將POP3S和IMAPS協議添加到Mail Reader Sampler。
  • Mail Reader Sampler如今爲每封郵件建立一個子樣本。
  • 提供的TCPClient實現再也不將tcp.eolByte = 0視爲特殊。要跳過EOL檢查,請設置tcp.eolByte = 1000(或其餘一些不是有效字節的值)
  • JUnit sampler GUI如今還能夠找到user.classpath中定義的Test類
  • 在函數調用中從變量名修剪前導和尾隨空格。例如,$ {__ Random(1,63,LOTTERY)}將使用變量'LOTTERY'而不是'LOTTERY'
  • Webservice(SOAP)Sampler如今能夠使用file:protocol加載本地WSDL文件
  • 錯誤44872 - 將「全部文件」過濾器添加到「打開文件」對話框
  • 鏡像服務器如今能夠獨立運行(mirror-server.cmd和mirror-server.sh)
  • 錯誤19128 - 爲HTTP採樣器添加了多個文件POST支持
  • 容許使用特殊名稱LAST表示最後一次測試運行; 適用於-t,-l,-j標誌
  • 錯誤 44418/42178 - CSV數據集文件處理改進
  • 經過「props」對象爲BeanShell,Javascript和Jexl函數提供對JMeter屬性的訪問
  • 經過「props」對象爲BSF Sampler提供對JMeter Properties的訪問權限
  • 將Jexl添加爲支持的BSF Sampler語言
  • 經過「props」對象爲Beanshell測試元素提供訪問JMeter屬性的權限
  • 添加了BSF PreProcessor,PostProcessor和Assertion測試元素
  • 全部BSF元素如今均可以經過變量「OUT」訪問System.out
  • Summariser更新以處理變量名稱
  • 同步添加到摘要和彙總報告,以防止偶爾丟失的樣本
  • 錯誤44808 錯誤39641 - 對二進制請求的代理支持
  • 錯誤28502 - HTTP資源緩存

非功能性變化

  • 更好地處理MirrorServer啓動問題並改進單元測試。
  • 構建過程如今能夠檢測缺3 黨庫和報告須要二進制和源檔案
  • 若是jar不存在,跳過BeanShell測試
  • 更新到Xerces 2.9.1,Xalan 2.7.1,Commons IO 1.4,Commons Lang 2.4,Commons-Logging 1.1.1,XStream 1.3,XPP3 1.1.4c
  • 使用log / logn函數描述的屬性
  • 檢查demos目錄中的全部jmx文件是否均可以加載
  • 將版權更新爲2008; 在HTML輸出中使用複製標記而不是數字字符
  • 從構造函數調用的方法不能被覆蓋:將GUI init方法設爲私有
  • 若是可能,使靜態變量最終
  • 將更改拆分爲當前和之前

版本2.3.1

變動摘要

JMeter代理

代理欺騙功能在2.3中被破壞; 它已被修復。Spoof如今支持一個可選參數來限制特定URL的欺騙。這對於具備不安全內容的HTTPS頁面頗有用 - 例如,能夠使用HTTP訪問圖像/樣式表。欺騙響應如今從https連接中刪除默認端口(443)以使它們更好地工做。

忽略的代理樣本如今在監聽器中可見 - 標籤用[和]括起來做爲指示。代理文檔已獲得改進。

GUI更改

添加菜單按處理順序顯示元素類型 - 請參閱測試計劃執行順序再也不可能將測試元素添加到樹的不適當部分 - 例如,不能在測試計劃下直接添加採樣器。這也適用於粘貼和拖放。

「文件」菜單如今支持「恢復」選項,該選項可從新加載當前文件。還記住使用的最後幾個文件名以便於從新加載。

「選項菜單」如今支持「所有摺疊」和「所有展開」項目以摺疊和展開測試樹。

遠程測試

JMeter服務器如今直接啓動RMI服務器(默認狀況下)。這簡化了測試,意味着當服務器中止時RMI服務器將中止。

如今能夠在Listener文件名中使用函數(變量不起做用)。

命令行選項-G如今可用於定義遠程服務器的屬性。選項-X可用於在非GUI運行後中止遠程服務器。能夠將服務器設置爲在單個測試後自動退出(set property server.exitaftertest = true)。

其餘加強功能

JMeter啓動再也不加載任意數量的類; 這應該減小內存需求。

添加到全部BeanShell元素的參數和文件支持。Javascript函數如今支持訪問JMeter對象; Jexl函數老是有訪問權限,但如今已包含文檔。用於評估變量的新函數__eval()和__evalVar()。

如今,加載時會自動識別具備正確標題列名稱的CSV文件。無需配置屬性。

主機名如今能夠保存在CSV和XML輸出文件中。保存結果文件時添加了新的「僅成功」選項。如今,在加載XML和CSV文件時,僅支持Errors / Successes選項。

通常文檔改進。

HTTP

PUT和DELETE如今應該正常工做。Cookie管理器再也不清除手動輸入的Cookie。

如今處理META標籤http-equiv charset

JDBC

JDBC Sampler如今容許調用過程的INOUT和OUT參數。JDBC Sampler如今容許每線程鏈接 - 在JDBC Config中設置Max Connections = 0。


不兼容的變化

  • JMeter服務器如今默認建立RMI註冊表。若是RMI註冊表已在外部啓動,則會生成警告消息,但服務器將繼續。這不該該影響JMeter測試。可是,若是您還將RMI註冊表用於其餘應用程序,則可能存在問題。例如,當JMeter服務器關閉時,它將中止RMI註冊表。還可能須要調整用戶編寫的命令文件(JMeter提供的文件已更新)。要恢復到先前的行爲,請定義JMeter屬性:server.rmi.create = false
  • 代理服務器從生成的標題管理器中刪除If-Modified-Since和If-None-Match標頭。要恢復到先前的行爲,請定義沒有值的屬性proxy.headers.remove

Bug修復

  • 錯誤43430 - 遠程樣本的活動線程數不正確
  • 吞吐量控制器不適用於「全部線程」計數
  • 若是POST主體僅根據參數值構建,則若是設置了複選框,則會對這些主體進行編碼。
  • 錯誤43584 - 斷言失敗消息包含一個逗號,該逗號也用做CSV文件的分隔符
  • HTTP鏡像服務器如今老是返回徹底相同的內容,若是UTF-8編碼用於HTTP POST主體,它用於返回不正確的數據,例如
  • 錯誤43612 - HTTP PUT不支持請求參數
  • 錯誤43694 - ForEach Controller(空集合處理錯誤)
  • 錯誤42012 - 在遠程測試中不會處理變量監聽器文件名。文件名如今能夠包含函數引用; 變量引用不起做用。
  • 確保偵聽器節點在複製粘貼時得到本身的保存配置
  • 正確的代理服務器包括和排除匹配的描述 - 包括端口和查詢,與以前記錄的相反。
  • 聚合圖和聚合報告列標題是KB /秒; 將值固定爲KB而不是字節
  • 修復SamplingStatCalculator,使其再也不爲endTime添加通過的時間,由於這是由SampleResult處理的。這能夠糾正摘要報告和聚合報告吞吐量計算之間的差別。
  • 默認HTTPSampleResult爲ISO-8859-1編碼
  • 修復空白編碼的默認編碼
  • 修復了2.3中破壞的Https欺騙(端口問題)
  • 修復HTTP(Java)採樣器,以便http.java.sampler.retries表示重試,即不包括初始嘗試
  • 修復SampleResult dataType檢查以更好地檢測TEXT文檔

改進

  • 添加run_gui Ant目標,打包而後從Ant啓動JMeter GUI
  • 添加文件→還原以輕鬆刪除當前更改並從新加載當前加載的項目文件
  • 錯誤31366 - 記住最近打開的文件
  • 錯誤43351 - 將參數和腳本文件的支持添加到全部BeanShell測試元素
  • SaveService再也不須要實例化類
  • 新函數:__eval()和__evalVar()
  • 菜單項如今按執行順序顯示
  • 如今,測試計劃項目只能被刪除/粘貼/合併到容許它們的樹的部分中
  • 屬性顯示以顯示System和JMeter屬性的值並容許更改它們
  • 錯誤43451 - 容許Regex Extractor對響應代碼/消息進行操做
  • JDBC Sampler如今容許調用過程的INOUT和OUT參數
  • JDBC Sampler如今容許每線程鏈接
  • Cookie管理器再也不清除GUI中定義的cookie
  • 忽略沒有名稱的HTTP參數(沒有文件的POST請求除外)
  • 主菜單中添加了「將選擇另存爲」; 如今只檢查項目被選中
  • 測試計劃如今有粘貼菜單項(已經經過^ V支持粘貼)
  • 若是加載CSV文件時默認分隔符不起做用,請經過分析標題行來猜想分隔符。
  • 爲HttpClient採樣器添加可選的「loopback」協議
  • 若是請求中存在content-length標頭,則HTTP鏡像服務器如今支持阻止等待顯示更多數據
  • HTTP鏡像服務器GUI如今在更明顯的位置具備「開始」和「中止」按鈕
  • 服務器模式如今建立RMI註冊表; 禁用設置JMeter屬性server.rmi.create = false
  • HTTP Sampler如今支持使用MIME Type字段在從參數值構造body時指定內容類型請求標頭
  • 單個服務器測試後啓用退出 - 定義JMeter屬性server.exitaftertest = true
  • 添加了-G選項以設置遠程服務器中的屬性
  • 添加-X選項以在非GUI運行後中止遠程服務器
  • 錯誤43485 - 可以在SOAP / XML-RPC請求上指定keep-alive
  • 錯誤43678 - 處理META標記http-equiv charset
  • 錯誤42555 - [I18N]法語翻譯的修正提案
  • 錯誤43727 - 測試操做不支持變量或函數
  • 代理服務器默認狀況下從生成的標頭管理器中刪除If-Modified-Since和If-None-Match標頭。要更改已刪除標頭的列表,請將屬性proxy.headers.remove定義爲要刪除的標頭的逗號分隔列表
  • javaScript函數如今能夠訪問JMeter變量和上下文等。請參閱JavaScript函數
  • 使用BSF Sampler語言字段的下拉列表
  • 將主機名添加到能夠保存在CSV和XML輸出文件中的項目。
  • 加載XML和CSV文件時,如今支持僅錯誤標誌
  • 確保ResultCollector使用SaveService編碼
  • Proxy如今拒絕嘗試將其與https一塊兒使用
  • 代理欺騙如今能夠使用RE匹配來肯定要欺騙的URL(若是圖像不是https則頗有用)
  • 當轉換https:連接到http時,代理欺騙如今會丟棄默認HTTPS端口(443):
  • 添加成功僅記錄和顯示
  • 若是JMeter日誌文件名稱包含成對的單引號,則將其格式化爲SimpleDateFormat(應用於當前日期).eg'jmeter_'yyyyMMddHHmmss'.log'
  • 添加了「所有摺疊」和「所有展開選項」菜單項
  • 容許可選擇定義可做爲文本查看的額外內容類型

非功能性改進

  • 編碼器代碼收緊; Functor如今能夠與接口一塊兒使用,以及預約義的目標和參數。
  • 在覆蓋現有文件以前,如今保存圖形功能提示
  • 添加了Debug Sampler和Debug PostProcessor。
  • 修復了Calculator和SamplingStatCalculator中的方法名稱
  • 整理了Listener文檔。

版本2.3

修復自2.3RC4以來

Bug修復

  • 修復SampleResultConverter中的NPE - XStream PrettyPrintWriter沒法處理空值
  • 若是Java HTTP sampler看到null ResponseMessage,則替換爲HTTP標頭
  • 錯誤43332 - 2.3RC4不會基於TestBean清除Guis
  • 錯誤42948 - Java 1.6中代理gui表字段的問題
  • 修復損壞的jmeter-server腳本
  • 錯誤43364 - 還原選項若是Controller爲2.3RC3以前的行爲
  • 錯誤43449 - 統計遠程模式不處理延遲
  • 錯誤43450(部分修復) - 容許將SampleCount和ErrorCount保存到文件或從文件恢復

改進

  • 將nameSpace選項添加到XPath提取程序
  • 將NULL參數選項添加到JDBC採樣器
  • 爲函數添加Rhino和BeanShell的文檔連接; 澄清變量和屬性
  • 確保記錄未捕獲的異常
  • 若是在本地找不到,請在JMeter bin目錄中查找user.properties和system.properties

自2.3RC3起修復

  • 修復了Summariser中的NPE(2.3RC3中引入的bug)
  • 修復了代理端口的設置(2.3RC3中引入的bug)
  • 修復了在無頭主機上運行非GUI時的錯誤(2.3RC3中引入的錯誤)
  • 錯誤43054 - SSLManager致使壓力測試飽和並崩潰(2.3RC3中引入的錯誤)
  • 澄清HTTP請求默認使用端口字段
  • 錯誤43006 - 若是找不到icon.properties文件,則爲 NPE
  • 錯誤42918 - Size Assertion如今將空響應視爲長度爲零
  • 錯誤43007 - 測試在全部線程組啓動以前結束
  • 若是302沒有Location頭,則修復HTTPSampler2中可能的NPE。
  • 錯誤42919 - CSV輸出中的失敗消息空白[如今記錄第一個非空白消息]
  • 添加指向Extending JMeter PDF的連接
  • 在Content-Type解析中容許引用的字符集
  • 錯誤39792 - 須要ClientJMeter同步
  • 錯誤43122 - 使用快捷鍵時不老是拾取GUI更改(2.3RC3中引入的錯誤)
  • 錯誤42947 - 使用快捷鍵時未獲取TestBeanGUI更改
  • 添加了serializer.jar(須要更新到xalan 2.7.0)
  • 錯誤38687 - 模塊控制器在非GUI模式下不起做用

自2.3RC3以來的改進

  • 將中止線程選項添加到CSV數據集
  • 將commons-httpclient更新爲3.1
  • 錯誤28715 - 容許變量cookie值(設置CookieManager.allow_variable_cookies = false以禁用)
  • 錯誤40873 - 添加JMS點對點非持久交付選項
  • 錯誤43283 - 若是不存在,保存操做會添加.jmx; 在「另存爲」上檢查現有文件
  • Control  +  A鍵不能所有保存; 改成 Control  +  Shift  +  S.
  • 錯誤40991 - 容許斷言檢查標題

版本2.3RC3

已知問題/限制:

JMeter遠程服務器不支持多個併發測試 - 每一個遠程測試應在單獨的服務器中運行。不然,測試可能會失敗並出現隨機異常,例如StandardJMeterEngine中的ConcurrentModification異常。 Bug 43168

默認HTTP請求(不是HTTPClient)採樣器可能沒法經過代理進行HTTPS鏈接。這彷佛是因爲Java錯誤,請參閱 錯誤39337要避免此問題,請嘗試使用更新版本的Java,或切換到HTTP請求採樣器的HTTPClient版本。

事務控制器父模式不支持嵌套的事務控制器。這樣作可能會致使TestCompiler中出現空指針異常。

運行遠程測試時,CSV和XML文件中的線程活動計數始終爲零。

file_format.testlog = 2.1屬性與2.2相同。然而,JMeter確實尊重3個測試計劃版本。

錯誤22510 - JMeter始終使用密鑰庫中的第一個條目。

若是JMeter安裝在路徑名包含空格的目錄中,則遠程模式不起做用。

BeanShell測試元素泄漏內存。這能夠經過使用文件而不是在test元素中包含腳原本減小。

變量和函數在客戶端 - 服務器(遠程)模式下的監聽器中不起做用,所以它們不能用於在客戶端 - 服務器模式下命名日誌文件。

CSV數據集變量在配置處理完成後定義,所以它們不能用於其餘配置項,例如JDBC Config。(見 錯誤40394

變動摘要(更多詳情,見下文)

一些主要的改進是:

  • Htmlparser 2.0如今用於解析
  • HTTP受權如今支持域和域
  • 能夠經過httpclient.parameters文件指定HttpClient選項
  • 如今,HttpClient的行爲與SSL證書的Java Http相同
  • HTTP鏡像服務器,容許對HTTP採樣器進行本地測試
  • HTTP代理支持XML-RPC記錄和其餘代理改進
  • __V()函數容許支持嵌套變量引用
  • LDAP Ext sampler可選地解析結果集並支持安全模式
  • FTP Sampler支持Ascii / Binary模式並上傳
  • 事務控制器如今可選地生成具備子結果的樣本
  • HTTPS會話上下文如今是每一個線程,而不是共享。這樣能夠更好地模擬多個用戶
  • BeanShell元素如今支持ThreadListener和TestListener接口
  • Tree View Listener和其餘地方的彩色圖標能夠更好地區分失敗的樣本。

主要的錯誤修復是:

  • 如今,HTTPS(SSL)處理獲得了很大改進
  • 修復了各類遠程模式錯誤
  • Control  +  C 和 Control  +  V如今能夠在測試樹中使用
  • 延遲和編碼如今可在CSV日誌輸出中使用
  • 測試元素再也不默認爲先前的內容; 更改語言時再也不清除測試元素。

不兼容的更改(使用狀況):

注意:javax.net.ssl屬性已從jmeter.properties移至system.properties,若是在jmeter.properties中定義,則再也不有效。 
新的安排更靈活,由於它容許定義任意系統屬性。

如今,每一個線程建立SSL會話上下文,而不是共享。這會爲HTTPS測試生成更實際的負載。這種變化可能會減慢許多SSL線程的測試速度。能夠經過設置JMeter屬性來啓用原始行爲:

https.sessioncontext.shared =真

 

LDAP擴展采樣器如今對Thread Bind和Single-Bind測試使用相同的面板。這意味着須要更新使用Single-bind測試的任何測試以設置用戶名和密碼。

錯誤41140:JMeterThread行爲已更改,以便PostProcessors按正向順序運行(由於它們出如今測試計劃中)而不是以前的逆序。經過設置如下JMeter屬性能夠恢復原始行爲: 
jmeterthread.reversePostProcessors = true

HTTP受權管理器如今爲域和域提供了額外的列,所以在用戶名中使用'\'和'@'來分隔域和域的臨時工做輪已被刪除。

Control  +  Z再也不用於Remote Start All - 如今使用 Control  +  Shift  +  R.

HttpClient如今使用搶佔式身份驗證。能夠經過設置如下內容來更改此設置:

jmeter.properties:
httpclient.parameters.file = httpclient.parameters

httpclient.parameters:
http.authentication.preemptive $布爾= FALSE

 

若是將https採樣器設置爲80,則再也不忽略HTTP請求默認值中的端口字段。

不兼容的變化(開發):

NB clear()方法在如下接口中定義:可清除,JMeterGUIComponent和TestElement。這些方法有不一樣的用途,所以其中兩個被重命名:Clearable方法如今是clearData(),JMeterGUIComponent方法如今是clearGui()。RD黨的加載項可能須要重建。

Calculator和SamplingStatCalculator類再也不提供其數據的任何格式。如今應該使用jorphan.gui Renderer類完成格式化。

刪除已棄用的方法JMeterUtils.split() - 改成使用JOrphanUtils版本。

從SaveGraphicsService中刪除了saveUsingJPEGEncoder()方法。到目前爲止它還沒有使用,而且在JMeter中使用了惟一的Sun特定類。

新功能/改進:

  • 將域和域支持添加到HTTP受權管理器
  • HttpClient如今與無效證書等的JDK http採樣器的行爲相同
  • 添加了httpclient.parameters.file以容許定義HttpClient參數
  • 錯誤33964 - 若是省略名稱/類型,Http請求能夠將文件做爲整個帖子正文發送
  • 錯誤41705 - 向HTTP採樣器添加內容編碼選項以用於POST請求
  • 錯誤40933 錯誤40945 - 檢索嵌入的資源URL時可選的RE匹配
  • 錯誤27780 - (補丁19936)建立multipart / form-data HTTP請求而不上傳文件
  • 錯誤42098 - 在HTTP GET中對參數值使用指定的編碼
  • 錯誤42506 - JMeter線程如今使用獨立的SSL會話
  • 錯誤41707 - HTTP代理XML-RPC支持
  • 錯誤41880 - 向HTTP代理服務器添加內容類型過濾
  • 錯誤41876 - 添加更多選項以控制HTTP代理生成的內容
  • 錯誤42158 - 改進對HTTP代理服務器中的多部分/表單數據請求的支持
  • 錯誤42173 - 讓HTTP代理處理請求的編碼和undecode參數值
  • 錯誤42674 - 若是未指定,則默認爲先發制人的HTTP受權
  • 支持HTTP採樣器中的「文件」協議
  • 如今,在建立新採樣器時,Http Autoredirects默認啓用
  • 錯誤40103 - 各類LDAP加強功能
  • 錯誤40369 - LDAP:採樣器中的穩定搜索結果
  • 錯誤40381 - LDAP:更具描述性的字符串
  • BeanShell後處理器再也不忽略具備零長度結果數據的樣本
  • 添加了beanshell.init.file屬性以在啓動時運行BeanShell腳本
  • 錯誤39864 - 如今從當前或bin目錄中找到BeanShell init文件
  • BeanShell元素如今支持ThreadListener和TestListener接口
  • BSF Sampler將其餘變量傳遞給腳本
  • 爲WebService(SOAP)採樣器添加了超時
  • 錯誤40825 - 添加JDBC準備語句支持
  • 擴展JDBC採樣器:Commit,Rollback,AutoCommit
  • 錯誤41457 - 添加TCP Sampler選項以不重用鏈接
  • 錯誤41522 - 在示例結果中使用JUnit採樣器名稱
  • 錯誤42223 - FTP採樣器如今能夠上傳文件
  • 錯誤40804 - 更改計數器默認爲max = Long.MAX_VALUE
  • 使用屬性jmeter.home(若是存在)在啓動JMeter時覆蓋user.dir
  • 新的-j選項能夠輕鬆更改jmeter日誌文件
  • HTTP鏡像服務器工做臺元素
  • 錯誤41253 - 擴展XPathExtractor以使用非NodeList XPath表達式
  • 錯誤42088 - 爲布爾值添加XPath斷言
  • 添加了__V變量函數來解析嵌套變量名
  • 錯誤40369 - 等於響應斷言
  • 錯誤41704 - 容許爲CSV DataSet指定charset編碼
  • 錯誤41259 - 註釋字段添加到全部測試元素
  • 將標準誤差添加到摘要報告
  • 錯誤41873 - 爲AssertionResult添加名稱並在ViewResultsFullVisualizer中顯示AssertionResult
  • 錯誤36755 - 使用UTF-8編碼保存XML測試文件
  • 使用樹視圖偵聽器的ISO日期時間格式(以前的年份未顯示)
  • 改進CSV文件的加載:若是可能,使用標頭來肯定格式; 若是不是毫秒,則猜想時間戳格式
  • 錯誤41913 - TransactionController如今建立樣本做爲事務的子樣本
  • 錯誤42582 - 樹視圖偵聽器中的JSON漂亮打印
  • 錯誤40099 - 在ForEachController中啓用對象變量
  • 錯誤39693 - 查看結果表使用圖標而不是複選框
  • 錯誤39717 - 在結果樹中使用圖標
  • 錯誤42247 - 改善HCI
  • 容許用戶取消關閉對話框

非功能性改進:

  • Functor調用如今能夠進行單元測試
  • 用javax.net替換com.sun.net類
  • 將外部jar定義解壓縮到build.properties文件中
  • 在構建類路徑中使用特定的jar名稱,以便更快地檢測到錯誤
  • 整理ORO電話; 如今只有一個緩存,大小由oro.patterncache.size給出,默認爲1000
  • 錯誤42326 - .jmx文件中的元素順序發生變化

外部jar更新:

  • Htmlparser 2.0-20060923
  • xstream 1.2.1 / xpp3_min-1.1.3.4.O
  • 蠟染1.6
  • BSF 2.4.0
  • 公共收藏3.2
  • 公地的HttpClient-3.1-RC1
  • commons-jexl 1.1
  • commons-lang-2.3(已添加)
  • JUnit 3.8.2
  • 速度1.5
  • commons-io 1.3.1(已添加)

Bug修復:

  • 錯誤39773 - NTLM如今須要本地主機名 - 修復其餘呼叫
  • 錯誤40438 - 設置「httpclient.localaddress」無效
  • 錯誤40419 - 中文郵件翻譯修復
  • 錯誤39861 - 修復拼寫錯誤
  • 錯誤40562 - 重定向再也不調用RE後處理器
  • 錯誤40451 - 若是未由採樣器設置,則設置標籤
  • 在遠程模式下修復CounterConfig.java中的NPE
  • 錯誤40791 - 摘要報告使用的計算器
  • 錯誤40772 - 正確解析CSV日誌文件中缺乏的字段
  • 錯誤40773 - 未正確解析XML日誌文件時間戳
  • 錯誤41029 - JMeter -t沒法關閉輸入JMX文件
  • 錯誤40954 - 分佈式測試中的統計模式顯示錯誤的結果
  • 修復使用返回null的sampler時的ClassCast異常,例如TestAction
  • 錯誤41140 - 後處理器以相反的順序運行
  • 錯誤41277 - 將延遲和編碼添加到CSV輸出
  • 錯誤41414 - Mac OS X可能會向-jar類路徑添加額外項目
  • 在遠程測試中保存線程計數時修復NPE
  • 錯誤34261 - HtmlParser中的 NPE(容許缺乏屬性)
  • 錯誤40100 - 在調用close以前檢查FileServer類型
  • 錯誤39887 - jmeter.util.SSLManager:沒法加載密鑰庫錯誤消息
  • 錯誤41543 - 網絡服務器返回「500內部服務器錯誤」且內容長度爲0時的異常
  • 錯誤41416 - 不要在SOAP-RPC採樣器中使用分塊輸入進行文本框輸入
  • 錯誤39827 - 文件的SOAP Sampler內容長度
  • 修復Clear.java中的類強制轉換異常
  • 錯誤40383 - 若是已設置,請不要設置內容類型
  • 若是還沒有保存測試計劃,Mailer Visualiser測試按鈕如今可用
  • 錯誤36959 - 快捷方式「ctrl c」和「ctrl v」對樹元素不起做用
  • 錯誤40696 - 從STYLE URL()屬性中檢索嵌入的資源
  • 錯誤41568 - 使用「計數器」時遠程運行測試時出現問題
  • 修復了假定時間戳始終爲結束時間戳的各類類:
    • SamplingStatCalculator
    • JTLData
    • RunningSample
  • 錯誤40325 - 容許爲WebServiceSampler指定proxyuser和proxypassword
  • 將HttpClient代理定義更改成使用NTCredentials; 爲此添加了http.proxyDomain屬性
  • 錯誤40371 - 響應斷言「模式測試」滾動條問題
  • 錯誤40589 - 嵌入URL中的Unescape XML實體
  • 錯誤41902 - 當responseCode = -1時,HTTPSampler中的NPE
  • 錯誤41903 - ViewResultsFullVisualizer:複製和粘貼時狀態列看起來很糟糕
  • 錯誤41837 - 代理中的參數值損壞
  • 錯誤41905 - 沒法在Java 1.6中剪切/粘貼/選擇標題管理器字段
  • 錯誤41928 - 使HTTP請求採樣器發送的全部請求標頭出如今示例結果中
  • 錯誤41944 - ResultSaver未遞歸處理子結果
  • 錯誤42022 - HTTPSampler不容許多個同名的標頭
  • 錯誤42019 - 內容類型未存儲在具備子結果的重定向HTTP請求中
  • 錯誤42057 - 若是method爲null,則鏈接能夠爲null
  • 錯誤41518 - JMeter更改POST請求的HTTP標頭內容類型
  • 錯誤42156 - HTTPRequest HTTPClient錯誤地在POST中urlencodes參數值
  • 錯誤42184 - 添加子樣本時未添加到樣本的子樣本的字節數
  • 錯誤42185 - 若是HTTP採樣器遵循重定向,並設置爲下載圖像,則會屢次下載圖像
  • 錯誤39808 - 無效的重定向致使不正確的採樣時間
  • 錯誤42267 - 代理記錄中的併發GUI更新失敗
  • 錯誤30120 - 若是添加一個新的簡單控制器做爲子級,則重置簡單控制器的名稱
  • 錯誤41078 - 合併致使測試計劃的名稱更改
  • 錯誤40077 - 建立新元素從現有元素複製值
  • 錯誤42325 - 爲LogicControllers實現「清除」方法
  • 錯誤25441 - 有時檢測不到TestPlan更改(isDirty)
  • 錯誤39734 - 在複製/粘貼操做後共享監聽器
  • 錯誤40851 - 具備0次迭代的循環控制器,中止評估迭代字段
  • 錯誤24684 - 若是jmeter的路徑中有空格,則遠程啓動問題
  • 加載CSV數據文件時使用監聽器配置
  • 函數方法setParameters()須要同步
  • 將CLI長可選參數修復爲require「=」(對於短選項)
  • 修復SlowSocket與Httpclient(http和https)一塊兒正常工做
  • 錯誤41612 - 嵌套在若是控制器行爲不正常的循環
  • 錯誤42232 - 更改語言清除UDV內容
  • Jexl函數不容許變量

版本2.2

不兼容的變化:

時間戳如今設置爲採樣器開始時間(結束時)。要恢復到先前的行爲,請將屬性sampleresult.timestamp.start更改爲false(或對其進行註釋)

JMX輸出格式已簡化,文件不向後兼容

JMeter.BAT文件再也不將目錄更改成JMeter主目錄,而是從當前工做目錄運行。jmeter-n.bat和jmeter-t.bat文件將更改成包含輸入文件的目錄。

如今稍後啓動監聽器以容許使用變量名稱。這可能會致使一些問題; 若是是這樣,請在jmeter.properties中定義如下內容: 
jmeterengine.startlistenerslater = false

如今,GUI在加載測試計劃時默認會擴展樹。能夠經過設置JMeter屬性onload.expandtree = false來禁用此功能

已知問題:

  • 後處理器以相反的順序運行(參見 Bug 41140
  • 模塊控制器沒法在非GUI模式下工做
  • 隨着測試的進行,聚合報告和一些其餘偵聽器使用愈來愈多的內存
  • 並不老是正確處理非默認編碼
  • 安裝路徑中的空間會致使客戶端 - 服務器模式出現問題
  • 語言更改不會傳播到全部測試元素
  • SamplingStatCalculator保留全部樣本的列表以用於計算目的; 這可能會致使長時間運行測試中的內存耗盡
  • 若是服務器證書已過時或未在本地安裝,則沒法正確處理它們

新功能:

  • 報告功能
  • XPath Extractor後處理器。處理單個和多個匹配。
  • 更簡單的JMX文件格式(2.2)
  • BeanshellSampler代碼能夠直接更新ResponseData
  • 錯誤37490 - 容許UDV做爲持續時間斷言的延遲
  • HttpClient的慢速鏈接仿真
  • 加強的JUnitSampler,以便默認狀況下斷言錯誤和異常不會附加到錯誤消息中。用戶必須在採樣器中明確檢查追加
  • 加強了webservice採樣器的文檔,以解釋它如何與CSVDataSet一塊兒使用
  • 加強了javascript函數的文檔來解釋轉義逗號
  • 容許CSV數據集文件名是絕對的
  • 報告樹編譯器錯誤更好
  • 若是default爲空,請不要重置Regex Extractor變量
  • includecontroller.prefix屬性已添加
  • 正則表達式提取器設置組計數
  • 如今能夠將整個屏幕保存爲圖像,而不只僅是右側窗格
  • 錯誤38901 - 向SOAP Sampler添加可選的SOAPAction標頭
  • 新的BeanShell測試元素:Timer,PreProcessor,PostProcessor,Listener
  • __split()函數如今清除下一個變量,所以它能夠與ForEach Controller一塊兒使用
  • 錯誤38682 - 將CallableStatement功能添加到JDBC Sampler
  • 更容易更改RMI / Server端口
  • 添加屬性jmeter.save.saveservice.xml_pi以在JTL文件中提供可選的xml處理指令
  • 將字節和URL添加到能夠保存在示例日誌文件(XML和CSV)中的項目
  • 後處理器「保存對文件的響應」如今使用樣本保存生成的文件名,文件名能夠包含在樣本日誌文件中。
  • 更改jmeter.bat DOS腳本,使其適用於任何目錄
  • 用於從命令行定義nonProxyHosts的新-N選項
  • 新的-S選項,用於根據輸入文件定義系統屬性
  • 錯誤26136 - 容許配置本地地址
  • 加載測試計劃時默認展開樹 - 能夠經過設置屬性onload.expandtree = false來禁用
  • 錯誤11843 - URL重寫器如今能夠緩存會話ID
  • 計數器預處理器如今支持格式化數字
  • 添加對HEAD PUT OPTIONS TRACE和DELETE方法的支持
  • 容許更改默認HTTP實現
  • (可選)將活動線程計數(組和全部)保存到結果文件
  • 變量/函數如今能夠在Listener文件名中使用
  • 新的__time()函數; 定義START.MS/START.YMD/START.HMS屬性和變量
  • 將線程名稱添加到樹和表視圖
  • 添加調試功能:什麼類,調試,調試關閉
  • 非緩存計算器 - 由Table Visualiser用於減小內存佔用
  • 摘要報告 - 與聚合報告相似,但佔用的內存較少
  • 錯誤39580 - CSV數據集的回收選項
  • 錯誤37652 - 支持Ajp Tomcat協議
  • 錯誤39626 - 從文件加載SOAP / XML-RPC請求
  • 錯誤39652 - 容許截斷AxisGraph上的標籤
  • 容許使用htmlparser 1.6
  • 錯誤39656 - 若是提供,則始終使用SOAP操做
  • 自動包含user.properties文件中的屬性
  • 添加__jexl()函數 - 評估Commons JEXL表達式
  • (可選)從system.properties中的user.properties和系統屬性加載JMeter屬性。
  • 錯誤39707 - 容許正則表達式匹配URL
  • 向Table Visualiser添加開始時間
  • HTTP採樣器如今能夠爲任何所需的媒體類型提取嵌入式資源

Bug修復:

  • 在模塊控制器中未選擇模塊時修復NPE
  • 當沒有ResponseData存在時,在XStream中修復NPE
  • 使用Java 1.5和沒有x-jars運行時刪除?xml前綴
  • 錯誤37117 - setProperty()函數應返回「」; 添加了原始設置的可選返回
  • 修復CSV輸出時間格式
  • 錯誤37140 - 在RegexFunction中更好地處理編碼
  • 加載全部cookie,而不只僅是第一個; 修復類強制轉換異常
  • 修復默認Cookie路徑名(刪除頁面名稱)
  • 修復了resultcode屬性名稱
  • 錯誤36898 - 將編碼應用於RegexExtractor
  • 添加用於保存子結果,斷言,延遲,samplerData,responseHeaders,requestHeaders和encoding的屬性
  • 錯誤37705 - 同步計時器如今在運行中止後正常工做
  • 錯誤37716 - 代理請求如今正確處理文件發佈
  • HttpClient Sampler如今能夠節省延遲
  • 在測試計劃上使用JavaScript函數時修復NPE
  • 在htmlparser中修復Base Href解析
  • 錯誤38256 - 處理沒有路徑的cookie
  • 錯誤38391 - 累積定時器延遲時使用很長時間
  • 錯誤38554 - 隨機函數如今使用長數字
  • 錯誤35224 - 容許LDAP採樣器的重複屬性
  • 錯誤38693 - Webservice採樣器如今能夠使用https協議
  • 錯誤38646 - Regex Extractor如今清除匹配失敗時的舊變量
  • 錯誤38640 - 修復WebService Sampler池
  • 錯誤38474 - HTML Link Parser不遵循框架連接
  • 錯誤36430 - 計數器如今使用long而不是int來增長範圍
  • 錯誤38302 - 修復XPath功能
  • 錯誤38748 - JDBC DataSourceElement因遠程測試而失敗
  • 錯誤38902 - 有時-1彷佛沒必要要地返回響應代碼
  • 錯誤38840 - 使XML Assertion線程安全
  • 錯誤38681 - 包含控制器如今能夠在非GUI模式下工做
  • 將寫入(OS,IS)實現添加到TCPClientImpl
  • Sample Result轉換器將響應代碼保存爲「rc」。之前它保存爲「rs」但用「rc」讀取; 它如今也將以「rc」讀取。XSL樣式表如今也接受「rc」或「rs」
  • 修復計數器功能,使每一個計數器實例獨立(之前每一個用戶計數器在函數實例之間共享)
  • 修復TestBean示例以使它們正常工做
  • 修復JTidy解析器,使其不會跳過帶有背景圖像的body標籤
  • 修復HtmlParser解析器,以便捕獲全部背景圖像
  • 錯誤39252從XML數據設置SoapSampler樣本結果
  • 錯誤38694 - WebServiceSampler未正確設置數據編碼
  • 結果收集器如今關閉偵聽器讀取的輸入文件
  • 錯誤25505 - 第一次HTTP採樣失敗,「HTTPS主機名錯誤:應該是'localhost'」
  • 錯誤25236 - 從斷言結果偵聽器中刪除雙滾動條
  • 錯誤38234 - 圖形偵聽器除以零問題
  • 錯誤38824 - 闡明忽略狀態的行爲
  • 錯誤38250 - jmeter.properties「language」如今支持國家/地區後綴,zh_CN和zh_TW等
  • jmeter.properties文件如今在讀取後關閉
  • 錯誤39533 - StatCalculator添加了錯誤的項目
  • 錯誤39599 - ConcurrentModificationException
  • HTTPSampler2如今能夠正確處理Auto和Follow重定向
  • 錯誤29481 - 修復從新加載樣本結果,所以子結果不計算兩次
  • 錯誤30267 - 正確處理AutoRedirects
  • 錯誤39677 - 容許JMETER_BIN變量中的空格
  • 使用Commons HttpClient cookie解析和管理。修復cookie處理的各類問題。
  • 錯誤39773 - NTCredentials須要主機名

其餘變化

  • 更新到HTTPClient 3.0(從2.0)
  • 更新到Commons Collections 3.1
  • 改進樹視圖中的請求數據格式
  • 擴展的用戶文檔
  • 爲全部罐子添加了清單,通知和許可證
  • 將htmlparser接口解壓縮到單獨的jar文件中,以即可以替換解析器
  • 刪除了再也不須要的SQL配置GUI(或工做!)
  • HTTPSampler再也不記錄未找到頁面的警告(404)
  • StringFromFile如今能夠調用爲__StringFromFile(以及_StringFromFile)
  • 更新到Commons Logging 1.1

版本2.1.1

新功能:

  • 新的包含控制器容許測試計劃引用外部jmx文件
  • 添加了新的JUnitSampler以使用JUnit Test類
  • 新的Aggregate Graph監聽器可以繪製聚合統計信息
  • 能夠使用屬性user.classpath和Test Plan元素提供其餘類路徑條目

Bug修復:

  • 從2.0測試計劃正確填充AccessLog Sampler和JDBC測試元素
  • BSF Sampler如今從保存的測試計劃中填充文件名和參數
  • 錯誤36500 - 在WebServiceSampler中更優雅地處理丟失的數據
  • 錯誤35546 - 將合併添加到右鍵單擊菜單
  • 錯誤36642 - Summariser在2.1中中止工做
  • 錯誤36618 - CSV標題行與保存的數據不匹配
  • JMeter如今應該在JVM 1.3下運行(但不是用1.3構建)

版本2.1

新功能:

  • 新的測試腳本文件格式 - 更小,更緊湊,更易讀
  • 新的樣本結果文件格式 - 更小,更緊湊
  • XSchema斷言
  • XML樹顯示
  • CSV DataSet配置項
  • 新的JDBC鏈接池配置元素
  • 同步定時器
  • setProperty函數
  • 保存錯誤響應數據
  • Ant JMeter XSLT如今可選地顯示失敗的響應並具備內部連接
  • 容許省略JavaScript變量名稱
  • 更改了如下采樣器以從採樣器名稱設置樣品標籤
  • 全部測試元素均可以做爲圖形圖像保存到文件中
  • 錯誤35026 - 向代理添加RE模式匹配
  • 錯誤34739 - 加強常量吞吐量計時器
  • 錯誤25052 - 使用響應編碼在響應斷言中建立比較字符串
  • 新的可選圖標
  • 容許經過屬性文件定義圖標
  • 用於2.1格式XML測試輸出的新樣式表
  • 將採樣器,配置元素和偵聽器保存爲PNG
  • 加強了對WSDL處理的支持
  • 主題和隊列消息的新JMS採樣器
  • JMS採樣器的操做方法
  • 錯誤35525 - 添加了西班牙語本地化
  • 錯誤30379 - 容許覆蓋server.rmi.port
  • 加強了監聽器監聽器以保存計算的統計數據
  • 函數和變量如今能夠在測試計劃的頂層工做

Bug修復:

  • 錯誤34586 - XPath始終保持爲/
  • BeanShellInterpreter沒有正確處理null對象
  • 修復中文資源包名稱
  • 若是須要CSV文件,請保存字段名稱
  • 確保XML文件已關閉
  • 如今爲TestBean組件顯示正確的圖標
  • 容許在建立菜單時缺乏可選的jar
  • 更改採樣器以從採樣器名稱設置採樣標籤,就像HTTP的狀況同樣
  • 修復各類採樣器以免在提供不完整數據時使用NPE
  • 修復Cookie管理器使用秒; 添加調試
  • 錯誤35067 - 使用-t選項時設置文件名
  • 不要在Proxy中用UDV替換TestElement。*屬性
  • 錯誤35065 - 不要在文件保護程序中保存舊的擴展名
  • 錯誤25413 - 不要沒必要要地啓用「從新啓動」按鈕
  • 錯誤35059 - 運行時控制器中止工做
  • 清除LDAP擴展采樣器建立的任何剩餘鏈接
  • 錯誤23248 - 模塊控制器不記得保存和從新加載之間的東西
  • 修復中文語言環境
  • 錯誤29920 - 若有必要,更改默認語言環境以確保在選擇英語時選擇默認屬性。
  • Tomcat監視器標題的錯誤修復
  • 修復了webservice採樣器,使其與用戶定義的變量一塊兒使用
  • 修復了LDAP配置GUI元素的屏幕邊框
  • 錯誤31184 - 確保在JDBC採樣器中指定編碼
  • TCP採樣器 - 僅共享具備相同主機的套接字:端口詳細信息; 糾正手冊
  • 在JTidy和Html Parsers中提取嵌入標記的src屬性

版本2.0.3

新功能:

  • XPath斷言和XPath函數
  • 開關控制器
  • ForEach Controller如今能夠循環遍歷各組
  • 容許更改CSVRead分隔符(請參閱jmeter.properties)
  • 錯誤33920 - 容許其餘屬性文件
  • 錯誤33845 - 容許直接覆蓋Home目錄

Bug修復:

  • Regex Extractor嵌套常量沒有放在正確的位置 Bug 32395
  • 若有必要,將時間重置爲如今,以便延遲正常。
  • 假定調度程序中缺乏開始/結束時間,而不是1970年
  • 錯誤28661 - 304響應沒有出如今聽衆中
  • DOS腳本如今更好地處理不一樣的磁盤
  • 錯誤32345 - HTTP重寫器沒法使用HTTP請求默認值
  • 捕獲運行時異常,所以一個偵聽器中的錯誤不會影響其餘偵聽器
  • 錯誤33467 - __threadNum()錯誤地提取了數字
  • 錯誤29186,33299 - 在第二個參數中修復「 - 」的CLI解析
  • 修復CLI解析錯誤:-D arg1 = arg2。記錄更多啓動參數。
  • 修復JTidy和HTMLParser解析器以處理表單src =和link rel = stylesheet
  • JMeterThread如今將錯誤記錄到出如今控制檯上的jmeter.log中
  • 確保動態檢查WhileController條件
  • 錯誤32790確保每次從新評估控制器條件
  • 錯誤30266 - 記錄如何顯示代理記錄響應
  • 錯誤33921 - 合併不該更改文件名
  • 如今關閉文件能夠保存更改
  • 錯誤33559 - 修復了運行時控制器

其餘變化:

  • 爲了幫助進行變量評估,JMeterThread提早設置了「採樣開始」(參見jmeter.properties)
  • 錯誤33796 - 刪除具備null /空值的cookie
  • 更好地檢查JavaScript函數中的參數計數
  • 線程組如今默認爲1循環而不是永久循環
  • 全部Beanshell訪問如今都是經過一個類; 在運行時只須要BSH jar
  • 錯誤32464 - 在jmeter.bat中記錄Direct Draw設置
  • 錯誤33919 - 增長計數器字段大小
  • 錯誤32252 - ForEach沒有初始化計數器

版本2.0.2

新功能:

  • 而控制器
  • BeanShell初始化腳本
  • 結果保護程序能夠選擇僅保存失敗的結果
  • 顯示爲HTML能夠選擇不下載幀和圖像等
  • 如今能夠一次啓用/禁用/複製/粘貼多個樹元素
  • 添加了__split()函數
  • 錯誤28699容許斷言將不成功的響應 - 例如404 - 視爲成功
  • Bug 29075 Regex Extractor如今能夠從http響應頭和正文中提取數據
  • __log()函數如今能夠寫入stdout和stderr
  • URL修改器如今能夠選擇忽略查詢參數

Bug修復:

  • 若是控制器如今在第一個錯誤條件 Bug 31390以後工做
  • Regex GUI正在失去Header / Body複選框 錯誤29853的跟蹤
  • 顯示爲HTML如今能夠處理幀和相關圖像
  • 右鍵單擊打開,替換爲merge
  • 修復一些拖放問題
  • 修復了foreach演示示例,所以它能夠工做
  • 錯誤30741 SSL密碼提示如今再次起做用
  • StringFromFile如今在測試結束時關閉文件; 如今開始和結束可選
  • 錯誤31342 SOAP Sampler標頭的固定文本
  • 如今必須先中止代理才能將其刪除 Bug 25145
  • Link Parser如今支持BASE href Bug 25490
  • 錯誤30917 Classfinder忽略重複的名稱
  • 錯誤22820容許清除計數器值
  • 錯誤28230修復HTTP Sampler中的NPE,檢索嵌入的資源
  • 改善StopTest的處理; 捕獲並記錄更多錯誤
  • 若是未定義第一個變量,ForEach Controller將再也不運行任何樣本
  • 錯誤28663 NPE在遠程JDBC執行中
  • 錯誤30110 stopTest處理中的死鎖
  • 錯誤31696使用Scheduler時,持續時間沒法正常工做
  • JMeterContext如今使用ThreadLocal - 應該修復一些潛在的NPE錯誤

版本2.0.1

錯誤修復版本。TBA。

版本2.0

  • HTML解析獲得改進; 如今能夠選擇3個解析器,如今能夠檢測和下載大多數嵌入式元素。
  • 如今能夠經過定義JMeter屬性HTTPSamper.delegateRedirects = true(默認爲false)將重定向委託給URLConnection
  • 爲採樣器和斷言等添加中止線程和中止測試方法若是採樣器在處理完樣本後檢測到須要中止測試線程的錯誤,則能夠調用setStopThread(true)或setStopTest(true)
  • 線程組Gui如今有一個額外的窗格來指定採樣器錯誤後發生的事情:繼續(如如今),中止線程或中止測試。這須要在某個階段擴展到較低的水平。
  • 添加了關閉運行菜單。這與Stop相同,只是它讓線程正常完成(即在下一個樣本完成後)
  • 經過在運行服務器時定義屬性hold_samples = true,能夠將遠程樣本緩存到測試結束。須要作更多的工做才能從GUI控制它
  • 代理服務器能夠選擇跳過記錄瀏覽器標題
  • 代理重啓效果更好(中止等待守護進程完成)
  • 調度程序若是已經經過則忽略啓動
  • 調度程序如今具備延遲功能
  • 添加了Summariser測試元素(主要用於非GUI)測試。這會常常向System.out和/或日誌文件打印摘要統計信息(默認狀況下爲3分鐘)。能夠使用多個摘要; 樣本按彙總者名稱累計。
  • 額外代理服務器選項:建立禁用保持活動狀態的全部採樣器在樣本集之間添加分隔符標記將響應斷言添加到每一個集合中的第一個採樣器
  • 測試計劃有一個評論字段
  • 幫助頁面如今能夠推送到後臺
  • 單獨的功能幫助頁面
  • 新功能/修正功能
    • __property()和__P()函數
    • __log()和__logn() - 用於寫入日誌文件
    • _StringFromFile如今能夠處理一系列文件,例如dir / file01.txt,dir / file02.txt等
    • _StringFromFile()函數如今能夠使用變量或函數做爲文件名
  • 新的/修正的斷言
    • 響應斷言如今適用於URL,它能夠更好地處理空數據
    • 響應斷言如今也能夠匹配響應代碼和響應消息
    • HTML斷言使用JTidy檢查格式良好的HTML
  • 若是控制器(還沒有徹底正常運行)
  • 交易控制器(彙總其子女的時間)
  • 新的採樣器
    • 基本BSF採樣器(可選)
    • BeanShell Sampler(可選,須要從www.beanshell.org下載
    • 基本TCP採樣器
  • (可選)啓動BeanShell服務器(容許遠程訪問JMeter變量和方法)

版本1.9.1

TBA

版本1.9

  • 樣本結果日誌文件如今能夠是CSV或XML格式
  • 用於在測試計劃運行期間通知迭代事件的新事件模型
  • 用於執行任意javascript語句的新Javascript函數
  • 許多GUI改進
  • 新的預處理器和後處理器取代了修改器和基於響應的修改器。
  • 兼容jdk1.3
  • JMeter函數如今是徹底遞歸和通用的(能夠使用函數做爲函數的參數)
  • 集成的幫助窗口如今支持超文本連接
  • 新的隨機函數
  • 新的XML斷言
  • 新的LDAP採樣器(alpha代碼)
  • 運行JMeter的新Ant任務(在extras文件夾中)
  • 新的Java Sampler測試實現(以幫助開發人員)
  • 更有效地使用內存,加快.jmx文件的加載速度
  • 新的SOAP採樣器(alpha代碼)
  • Graph Results可視化工具中的新中位數計算
  • 爲開發人員收益添加了默認配置元素
  • 測試運行期間的各類性能加強
  • 新的簡單文件記錄器,用於在測試運行期間最小化GUI開
  • 新函數:StringFromFile - 從文件中獲取值
  • 新功能:CSVRead - 從文件中獲取多個值
  • 如今更長的函數須要編碼 - 若是特殊值是文字值,則應使用「\」進行轉義
  • 新剪切/複製/粘貼功能
  • SSL測試應該以較少的用戶捏造和非gui模式工做
  • Mailer Model在非gui模式下工做
  • 新的吞吐量控制器
  • 新模塊控制器
  • 如今能夠安排測試從特定時間到特定時間運行
  • 遠程JMeter服務器能夠從非gui客戶端啓動。此外,在gui模式下,只需單擊便可啓動全部遠程服務器
  • ThreadGroups如今能夠串行或並行運行(默認)
  • 用於覆蓋屬性的新命令行選項
  • 新尺寸斷言

版本1.8.1

  • 錯誤修復發佈。修復了許多錯誤。
  • 從測試樹中刪除了冗餘的「Root」節點。
  • 在測試樹中從新引入圖標。
  • 一些重組代碼以改進構建過程。
  • 查看結果樹添加了將結果做爲Web文檔查看的選項(此時仍有錯誤)。
  • 聚合偵聽器中的新總行(此時仍有錯誤)。
  • 改進JMeter的區域設置的能力的改進。
  • SSL Manager的改進。

版本1.8

  • 改進彙總報告的計算。
  • 簡化應用程序日誌記錄
  • 新的持續時間斷言。
  • 固定和改進的Mailer Visualizer。
  • HTTP Sampler恢復資源(套接字和文件句柄)的改進。
  • 改進JMeter對測試開始/中止的內部處理。
  • 修復和添加Interleave和隨機控制器行爲的選項。
  • 新的計數器配置元素。
  • 新用戶參數配置元素。
  • 提升了文件打開的性能。
  • 函數和其餘元素能夠訪問全局變量。
  • JMeter GUI中提供的幫助系統。
  • 能夠禁用測試元素。
  • 運行JMeter(主要是)時能夠更改語言/區域設置。
  • 查看結果樹能夠配置爲僅記錄錯誤。
  • 各類錯誤修復。

版本1.7.3

  • 新功能提供更多在測試運行期間動態更改請求的功能。
  • 日語和德語的新語言翻譯。
  • 刪除惱人的Log4J錯誤消息。
  • 改進了對加載JMeter 1.7版本測試計劃文件(.jmx文件)的支持。
  • JMeter如今支持須要用戶名/密碼身份驗證的代理服務器。
  • 表示測試中止的對話框不會使JMeter掛起中止測試的問題。
  • GUI能夠運行多個遠程JMeter服務器(修復了阻止此操做的GUI錯誤)。
  • 用於幫助在GUI中建立函數調用的對話框。
  • HTTP請求中的新保持活動開關表示JMeter應該或不該該使用Keep-Alive做爲套接字。
  • HTTP Post請求能夠在Path字段中具備GET樣式參數。代理如今正確記錄它們。
  • 新的用戶定義的測試範圍的靜態變量。
  • 查看結果樹如今顯示更多信息,包括請求名稱(與測試樹中的名稱匹配)以及完整請求和POST數據。
  • 刪除了過期的View Results Visualizer(改成使用View Results Tree)。
  • 性能加強。
  • 內存使用加強功能。
  • 圖形可視化GUI改進。
  • Mailer Visualizer的更新和修復。

版本1.7.2

  • JMeter如今在測試中止運行時通知用戶。
  • HTTP代理服務器在從新直接關閉的狀況下記錄HTTP請求。
  • 能夠指示HTTP請求遵循重定向或忽略它們。
  • 各類GUI改進。
  • 新的隨機控制器。
  • 新的SOAP / XML-RPC採樣器。

版本1.7.1

  • JMeter的體系結構進行了改進,以便在GUI代碼和測試引擎代碼之間實現更徹底的分離。
  • 使用Avalon代碼將測試計劃保存爲XML做爲配置對象
  • 全部偵聽器均可以將數據保存到文件並在之後加載相同的數據。

版本1.7Beta

  • 更好的XML支持特殊字符(Tushar Bhatia)
  • 非GUI功能和非GUI測試計劃執行(Tushar Bhatia)
  • 從基礎JMeter類中刪除Swing依賴性
  • 國際化(Takashi Okamoto)
  • AllTests bug修復(neth6@atozasia.com)
  • ClassFinder錯誤修復(neth6@atozasia.com)
  • 新的循環控制器
  • Proxy Server從瀏覽器記錄HTTP樣本(並在用戶手冊中記錄)
  • 多部分表格支持
  • 標頭自定義的HTTP標頭類
  • 從響應中提取HTTP頭信息(Jamie Davidson)
  • Mailer Visualizer從新添加到JMeter
  • JMeter如今url對參數名稱和值進行編碼
  • 若是他們的gui沒有被初始化,聽衆就再也不給出例​​外
  • HTTPS和受權協同工做
  • 新的Http採樣自動解析HTML響應以便下載圖像,幷包括在總時間內下載這些圖像以供請求(Neth neth6@atozasia.com)
  • 能夠解析來自服務器的HTTP響應以獲取連接和表單,而且能夠在運行時提取動態數據並將其添加到測試樣本中(記錄)
  • 新的升級功能(Jonathan O'Keefe)
  • 新的可視化器(Neth)
  • 功能測試的新斷言

版本1.6.1

  • 修復了測試腳本的保存和加載(再也不須要額外的行)
  • 能夠保存和加載特殊字符(例如「&」和「<」)。
  • 能夠保存和加載定時器和監聽器。
  • 針對cookie的小錯誤修復(若是你的cookie值包含「=」,那麼它就會破壞)。
  • URL能夠對80之外的端口進行採樣,而且能夠測試HTTPS,前提是您有必要的jar(JSSE)

版本1.6 Alpha

  • 新UI
  • GUI和邏輯代碼的分離
  • 新模塊的新插件框架
  • 加強性能
  • 分層測試邏輯以得到更大的靈活性
  • 添加了對保存測試元素的支持
  • 使用單個客戶端添加了對分佈式測試的支持

版本1.5.1

  • 修復了若是標題名稱不符合預期,致使cookie沒法讀取的錯誤。
  • 在發送到採樣器以前克隆條目 - 防止重定位從線程中弄亂信息
  • 修復方便對話框的小錯誤,用於向測試樣本添加參數。Bug阻止對話框中的條目出如今測試樣本中。
  • 添加了xerces.jar到發行版
  • 將junit.jar添加到發行版並建立了一些測試。
  • 開始研究新框架。cvs中的新文件,但還沒有影響程序。
  • 修復了根據所選計時器阻止HTTPJMeterThread延遲的錯誤。

 

版本1.5

  • 抽象出Sampler,SamplerController和TestSample的概念。Sampler表示理解協議的代碼(例如HTTP,或FTP,RMI,SMTP等)。它其實是與正在測試的任何東西創建鏈接的代碼。SamplerController表示瞭解如何組織和運行一組測試樣本的代碼。它是將採樣器及其測試樣本綁定在一塊兒並運行它們的緣由。TestSample表示瞭解如何從用戶收集有關特定測試的信息的代碼。對於網站,它將表示URL以及與URL一塊兒發送的任何信息。
  • UI已更新,以便更方便地輸入測試樣本。
  • 添加了線程組,容許用戶設置多個併發運行的測試,並容許在這些測試之間共享測試樣本。
  • 如今能夠保存和加載測試樣本。
  • ......還有許多小改動/改進......

 

Apache JMeter 1.4.1-dev

  • 在大量補丁以後清理了URLSampler代碼以提升可讀性。(SM)
  • Made JMeter發送一個特殊的「用戶代理」標識符。(SM)
  • 修復了重定向不發送cookie和身份驗證信息的問題,並經過jikes編譯刪除了警告。感謝Wesley Tanaka的補丁(SM)
  • 修復了URLSampler中的一個錯誤,該錯誤致使在測試URL列表和Cookie處理問題時跳過一個URL。感謝Graham Johnson的補丁(SM)
  • 修復了POST操做的問題。感謝Stephen Schaub的補丁(SM)

 

Apache JMeter 1.4 - 1999年7月11日

  • 修復了POST操做的問題。感謝Brendan Burns補丁(SM)
  • 爲那些不提供它的窗口管理器添加了關於「關於」框的關閉按鈕。感謝Jan-Henrik Haukeland指出它。(SM)
  • 添加了簡單的Spline樣本可視化工具(JPN)

 

Apache JMeter 1.3 - 1999年4月16日

  • 運行垃圾收集器並在開始採樣以前運行完成,以確保每次都保持相同的狀態(SM)
  • 修復了一些NullPointerExceptions(SM)
  • 添加了HTTP身份驗證功能(RL)
  • 添加了窗口樣本可視化器(SM)
  • 修復了命令行參數的愚蠢錯誤。感謝Jorge Bracer指出這一點(SM)

 

Apache JMeter 1.2 - 1999年3月17日

  • 使用JMeter(SM)集成cookie功能
  • 添加了Cookie管理器和Netscape文件解析器(SD)
  • 修復了JDK 1.1(SD)的編譯錯誤

 

Apache JMeter 1.1 - 1999年2月24日

  • 建立了從屬性文件建立URL別名的機會,以及將別名與URL序列而不是單個URL(SM)相關聯的能力感謝Simon Chatfield提供了很是好的建議和代碼示例。
  • 刪除了TextVisualizer並將其替換爲更有用的FileVisualizer(SM)
  • 添加了已知的錯誤列表(SM)
  • 刪除了Java Apache徽標(SM)
  • 修正了幾個拼寫錯誤(SM)
  • 添加了UNIX makefile(SD)

 

Apache JMeter 1.0.1 - 1999年1月25日

  • 刪除了待處理的問題文檔問題(SM)
  • 修復了unix腳本(SM)
  • 添加了使用Java 2(SM)「java -jar ApacheJMeter.jar」直接運行JAR的可能性
  • 一些小更新:修復了Java 2(tm)發佈後的Swing位置,許可證更新和小清理(SM)

 

Apache JMeter 1.0 - 1998年12月15日

    • 初始版本。(SM)
相關文章
相關標籤/搜索