中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jmeter集群下腳本日志和報告處理

發布時間:2020-06-05 04:42:43 來源:網絡 閱讀:577 作者:嘉為科技 欄目:軟件技術

jmeter支持分布式測試,在分布式模式下,由一臺調度機調度所有的執行機(集群節點),執行腳本時可以自由的選擇單節點執行或者分發集群中指定或全部的機器執行。在使用調度機客戶端分發腳本時,無論是在GUI模式還是non-GUI模式,腳本日志的收集及報告的生成都無任何問題,但是如果是使用jmeter SDK在代碼中調用客戶端大并發分發腳本到執行機執行,則會存在日志無法實時獲取的問題(超大jmx腳本執行時產生的超大日志通過網絡傳輸需要時間)。


jmeter集群下腳本日志和報告處理


通過分析jmeter SDK的源代碼,發現日志的收集是異步執行的,而在SDK中并未提供日志收集完成的通知能力,導致根據日志生成報告時經常出錯(實際的腳本都是正常執行完的)。分析上述問題,提供的解決方案如下:

  • 腳本執行完后,當前線程睡眠一定時間

  • 暴力反射嘗試獲得日志的傳輸狀態

  • 修改jmeter SDK的源代碼,在其中增加監聽機制

  • 當前線程只負責執行腳本到結束狀態,定時收集日志并生成報告


針對以上的4種方案,分析其優缺點:

  • 日志大小無法確定,睡眠時間無法確定,而且睡眠會導致線程等待,可能會產生ThreadInterruptException

  • jmeter SDK注釋寫的很差(基本無注釋),分析源代碼需要強大的技術能力和一定的時間,目前的時間排期不允許

  • 同樣由于注釋的原因,也需要強大的技術能力和一定的時間,不過難度比第二種方式要低,也是可以產生最優結果的解決方案

  • 技術要求最低,實現容易,但是日志和報告的生成會延遲(基于定時器的周期)

在當前產品的需求上,其實日志和報告并不是極其敏感和實時性要求高的數據,所以最終選擇第4種方案,代碼如下:


jmeter集群下腳本日志和報告處理


每個十分鐘拉取距今14400秒(任務執行超時時間,可配置啟動參數)還未獲取日志的任務并嘗試獲取日志。


jmeter集群下腳本日志和報告處理


因為是異步的拉取日志,所以在拉取日志之前加載一次jmeter的配置。


jmeter集群下腳本日志和報告處理


考慮到每一次停機維護的時間可能會很長(超過當前設置的任務超時時間),因此還需要提供一個啟動應用時掃描任務的能力。


jmeter集群下腳本日志和報告處理


CommandLineRunner接口標識應用啟動完成時執行該接口的實現類,因此需要使用@Component將類的對象加入到IOC容器中。

日志拉取完成后,再處理報告,同樣的原理每個十分鐘拉取距今14400秒(任務執行超時時間,可配置啟動參數)還未獲取日志的任務并嘗試根據日志生成報告。


jmeter集群下腳本日志和報告處理


同樣因為是異步生成報告,因此需要在生成報告時,加載一次jmeter的配置管理。此處也要考慮停機維護的問題,使用CommandLineRunner。


jmeter集群下腳本日志和報告處理


到此,jmeter日志和執行生成的問題完美解決,每一次執行完的任務可能會有10左右的延遲時間用來獲取日志和報告。


jmeter集群下腳本日志和報告處理

▲上圖顯示任務執行時和執行成功后,日志和報告正在生成中


作者:陳潔


其他技術文章

企業應用運維自動化應該如何設計?

域內計算機本地管理員密碼管理

騰訊PaaS平臺 | 主機名設置錯誤怎么辦?

Redis持久化介紹

4大步驟節省30%浪費,優化企業上云成本從了解云開始!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赞皇县| 湖北省| 汾阳市| 镇远县| 泌阳县| 靖安县| 固原市| 自治县| 兰州市| 赣州市| 潢川县| 玉门市| 绍兴县| 红安县| 县级市| 宁武县| 界首市| 吉安市| 肇州县| 邵武市| 抚远县| 根河市| 台湾省| 庆城县| 灵川县| 万荣县| 湟中县| 靖西县| 绥滨县| 宝兴县| 高淳县| 个旧市| 巨野县| 华阴市| 桦甸市| 噶尔县| 九台市| 镇远县| 正蓝旗| 通榆县| 平武县|