《基于Jmeter的性能測試框架搭建》改進一

?

《基于Jmeter的性能測試框架搭建》文末筆者提到了不少待改進之處,如下所示。

  • Grafana性能圖表實時展現,測試過程中需實時截圖形成測試報告,不夠人性化。
    解決方案:自動生成測試報告并郵件通知。

  • Grafana性能圖表需測試人員實時監控,人力成本較高。
    解決方案:自動生成測試報告并郵件通知。

  • 多腳本構建的話,無法區分Grafana展現的性能圖表對應哪個腳本。
    解決方案:傳參區分腳本,并生成每個接口對應的測試報告。

  • 如果考慮持續監控,可加入預警功能。
    解決方案:依賴Grafana的預警功能。

  • 未能自動生成測試報告。
    解決方案:自動生成測試報告并郵件通知。

  • 需登錄jenkins停止腳本構建,操作不夠便利。
    解決方案:前端增加停止構建操作。

  • 每次只能提交一個腳本進行構建。
    解決方案:支持批量構建。

結合筆者所在項目組現狀,優先解決了以下幾個問題。

本期改進

1、多腳本構建的話,無法區分Grafana展現的性能圖表對應哪個腳本。

最終解決方案將腳本名稱寫入influxdb庫,然后再通過Grafana配置讀取。

  • 創建influxdb數據庫interfaceName并插入數據(腳本名稱)

<!-- 依賴關系 --><dependency>      <groupId>org.influxdb</groupId>      <artifactId>influxdb-java</artifactId>      <version>2.5</version></dependency>
//創建數據庫,并寫入對應腳本的名稱    public static void influxdb(String interfaceName) throws Exception {        Map<String,String> configMap = new HashMap<String, String>();        configMap = getProperties("config\\config.properties");        InfluxDBUtil svr = new InfluxDBUtil(configMap.get("Influxdb"))  //對應測試機地址                .setDatabase("interfaceName", "autogen")  //數據庫名                .setAuthentication("admin", "admin")      //grafana datasource配置的用戶名和密碼                .setRetentionPolicy("30m", 1)                .build();
        for (int i = 0; i < 5; i++) {            Map<String, String> tags = new HashMap<String ,String>();            tags.put("system", configMap.get("InfluxdbSystem"));  //對應的應用
            Map<String, Object> fields = new HashMap<String, Object>();            fields.put("interfaceName", interfaceName);           //面板展現的腳本名稱
            svr.insert("interface", tags, fields);            System.out.println(i);        }    }
  • 配置Grafana的datasource。

DataSource配置

  • 配置Grafana面板配置。


    面板配置

  • 執行壓測小工具提交腳本,展現性能數據(注意圖二展現了腳本名稱)。


壓測小工具


性能圖表

2、需登錄jenkins停止腳本構建,操作不夠便利。

最終解決方案:無需解決,測試人員需登錄jenkins查看構建日志,分析構建結果。

構建日志

3、每次只能提交一個腳本進行構建。

最終解決方案多腳本提交時,jenkins按腳本提交的先后順序排隊構建。
同一套壓測環境,為了保證單個接口壓測的準確性,筆者并不建議并行構建多個接口,可以通過壓測小工具提交腳本串行構建。


????

jenkins構建

觸發Jenkins構建擴展

除了《基于Jmeter的性能測試框架搭建》提及的webhook,Poll SCM觸發jenkins構建,也可以通過curl或jenkins-cli觸發構建。

curl命令構建
curl  -i -u 'jenkinsUserName:jenkinsPassword' -X POST -H "$CRUMB" "http://jenkinsurl/jenkins/job/jobName/build?delay=0sec"
jenkins-cli構建
  • 下載jenkins-cli.jar
    通過jenkinsUrl/cli下載對應版本的jenkins-cli.jar。


jenkins-cli.jar下載

  • 通過build命令觸發構建

    //觸發jenkins構建 configMap = getProperties("config\\config.properties");String jenkinsCliUrl = "lib\\lib\\jenkins-cli.jar";String jenkinsUrl = configMap.get("JenkinsUrl");String jobName = configMap.get("JenkinsJobName");String userName = configMap.get("JenkinsUserName");String password = configMap.get("JenkinsPassword");String commandStr = "java -jar " + jenkinsCliUrl + " -s " + jenkinsUrl + " build " + jobName + " --username " + userName + " --password " + password;Runtime.getRuntime().exec(commandStr); //觸發jenkins構建

需要注意的是,通過jenkins-cli方式觸發構建,需設置jenkins的全局安全配置為“任何用戶可以做任何事(沒有任何限制)”或勾選“Allow anonymous read access”,否者會報錯。


全局安全配置

  • 更多的命令可通過help或在jenkinsUrl/cli查看

    java -jar jenkins-cli.jar -s http://jenkinsUrl/jenkins/ help


?

可用命令

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14734.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14734.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14734.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Big Demo Day第十三期活動即將啟幕,Web3創新項目精彩紛呈,PEPE大獎等你抽取

5月28號在香港數碼港 Big Demo Day第十三期 活動即將拉開帷幕&#xff0c;活動將匯集眾多Web3領域的創新項目&#xff0c;為參會者帶來一場科技與智慧交融的盛宴。在這里&#xff0c;你不僅能深入了解區塊鏈、AI等前沿技術的最新應用&#xff0c;還能有機會贏取豐厚的PEPE大獎。…

免費wordpress中文主題

免費大圖wordpress主題 首頁是一張大圖的免費wordpress主題模板。簡潔實用&#xff0c;易上手。 https://www.jianzhanpress.com/?p5857 免費WP模板下載 頂部左側導航條的免費WP模板&#xff0c;后臺簡潔&#xff0c;新手也可以下載使用。 https://www.jianzhanpress.com/…

sizeof的了解

32位編譯器 qDebug() << "int:" << sizeof(int);qDebug() << "char:" << sizeof(char);qDebug() << "char*:" << sizeof(char*); 字節數&#xff1a; int: 4 char: 1 char*: 4 64位編譯器 字節數&#…

全棧:用戶登錄驗證,用戶注冊【數據庫】

前端用戶登錄界面 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</tit…

電腦版網易云音樂聽歌識曲

文章目錄 流程 流程 電腦網易云音樂的搜索框旁邊就是聽歌識曲功能

文件上傳鞏固及流量分析

1.[GXYCTF2019]BabyUpload 1&#xff09;打開題目也是沒有任何提示&#xff0c; 2&#xff09;進入環境&#xff0c;看到下面頁面猜測是文件上傳漏洞&#xff0c;下面開始傳文件 3&#xff09;首先上傳一句話木馬 a.php&#xff0c;代碼如下&#xff1a; 下面這個代碼中并沒有…

Amesim示例篇-案例1:空間中的鋁塊散熱

前言 本文將通過一個案例繼續對Thermal庫的元件進一步講解。 案例1&#xff1a;一個300mm*300mm*1000mm&#xff08;長*寬*高&#xff09;的鋁板初始溫度為45℃&#xff0c;豎直在環境為25℃的空間內靜置60min。對流換熱系數設置為5W/m2K。本文將通過兩種建模方法對鋁塊的溫度…

微軟語音使用小計

簡介 使用微軟語音可以實現語音轉文字和文字轉語音。測試了下&#xff0c;使用還是挺方便的。 使用微軟語音有兩種方式。一種是使用命令行的形式&#xff0c;另一種是調用SDK的方式。 適合使用語音 CLI 的情況&#xff1a; 想在極少設置且無需編寫代碼的情況下試驗語音服務…

最簡單的方式解決android studio 模擬器無法聯網的問題

最簡單的方式解決android studio 模擬器無法聯網的問題 看了網上很多解決android studio內置模擬器無法聯網的問題&#xff0c;基本上都是在模擬器手機上配置dns&#xff0c;個人試了多種辦法也連不上網&#xff0c;現在給出一種&#xff0c;僅需要在命令行操作的解決安卓模擬…

輕松拿捏C語言——二分查找

&#x1f970;歡迎關注 輕松拿捏C語言系列&#xff0c;來和 小哇 一起進步&#xff01;? &#x1f308;感謝大家的閱讀、點贊、收藏和關注&#x1f495; 目錄&#x1f389; 一、介紹&#x1f308; 二、步驟&#x1f319; 三、代碼?? 一、介紹 二分查找是一種在有序數組中…

【Linux-驅動開發】

Linux-驅動開發 ■ Linux-應用程序對驅動程序的調用流程■ Linux-file_operations 結構體■ Linux-驅動模塊的加載和卸載■ 1. 驅動編譯進 Linux 內核中■ 2. 驅動編譯成模塊(Linux 下模塊擴展名為.ko) ■ Linux-■ Linux-■ Linux-設備號■ Linux-設備號-分配■ 靜態分配設備號…

React Native 之 主題偏好(十一)

如果你的 React Native 版本較新&#xff0c;它提供一個主題API useColorScheme&#xff0c;你可以直接使用它。如果不是&#xff0c;需安裝額外的庫&#xff0c;如react-native-appearance。 下面是一個使用 react-native-appearance&#xff08;或 useColorScheme&#xff0…

家電維修上門維修小程序怎么搭建制作?

?在家庭生活中&#xff0c;家電的維修問題一直是人們關注的焦點。隨著微信小程序的普及&#xff0c;家電維修服務行業也迎來了線上轉型的機遇。一款便捷、高效的家電維修上門維修小程序&#xff0c;不僅能為維修服務商帶來新的客戶&#xff0c;也能為用戶帶來更便捷的服務體驗…

[Algorithm][動態規劃][路徑問題][下降路徑最小和][最小路徑和][地下城游戲]詳細講解

目錄 1.下降路徑最小和1.題目鏈接2.算法原理詳解3.代碼實現 2.最小路徑和1.題目鏈接2.算法原理詳解3.代碼實現 3.地下城游戲1.題目鏈接2.算法原理詳解3.代碼實現 1.下降路徑最小和 1.題目鏈接 下降路徑最小和 2.算法原理詳解 思路&#xff1a; 確定狀態表示 -> dp[i][j]的…

用WPS將多張圖片生成一個pdf文檔,注意參數設置

目錄 1 新建一個docx格式的文檔 2 向文檔中插入圖片 3 設置頁邊距 4 設置圖片大小 5 導出為pdf格式 需要把十幾張圖片合并為一個pdf文件&#xff0c;本以為很簡單&#xff0c;迅速從網上找到兩個號稱免費的在線工具&#xff0c;結果浪費了好幾分鐘時間&#xff0c;發現需要…

面試-軟件工程與設計模式相關,Spring簡介

面試-軟件工程與設計模式相關&#xff0c;Spring簡介 1.編程思想1.1 面向過程編程1.2 面向對象編程1.2.1 面向對象編程三大特征 1.3 面向切面編程1.3.1 原理1.3.2 大白話&#xff1f;1.3.3 名詞解釋1.3.4 實現 2. 耦合與內聚2.1 耦合性2.2 內聚性 3. 設計模式3.1 設計模型七大原…

【Nodejs-多進程之Cluster】

cluster 模塊是 Node.js 提供的一個用于多進程的模塊&#xff0c;它可以輕松地創建一組共享同一個服務器端口的子進程&#xff08;worker進程&#xff09;。通過使用 cluster 模塊&#xff0c;可以充分利用多核系統&#xff0c;提高應用程序的性能和可靠性。 基本原理 cluste…

#php把pdf文件轉成圖片#

本地環境 系統&#xff1a;win11 64位 環境&#xff1a;phpStudy PHP版本&#xff1a;8.0.2 礦建&#xff1a;laravel 配置擴展 一、安裝imageMagick 下載地址&#xff1a;https://imagemagick.org/script/download.php 安裝版本&#xff1a;ImageMagick-最新版本-Q16-HDRI-x64…

Docker: exec命令淺析

簡介 Docker exec命令是Docker提供的一個強大工具&#xff0c;用于在正在運行的容器中執行命令。在此將介紹Docker exec命令的用法和示例&#xff0c;幫助大家更好地理解和使用這個命令。 Docker是一種流行的容器化平臺&#xff0c;允許用戶在容器中運行應用程序。有時候&#…

React開發環境配置詳細講解-04

React環境 前端隨著規范化&#xff0c;可以說規范和環境插件配置滿天飛&#xff0c;筆者最早接觸的是jquery&#xff0c;那個開發非常簡單&#xff0c;只要引入jquery就可以了&#xff0c;當時還寫了一套UI框架&#xff0c;至今在做小型項目中還在使用&#xff0c;show一張效果…