《基于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.mzph.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/…

电脑版网易云音乐听歌识曲

文章目录 流程 流程 电脑网易云音乐的搜索框旁边就是听歌识曲功能

文件上传巩固及流量分析

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。本文将通过两种建模方法对铝块的温度…

最简单的方式解决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-设备号-分配■ 静态分配设备号…

家电维修上门维修小程序怎么搭建制作?

​在家庭生活中&#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…

React开发环境配置详细讲解-04

React环境 前端随着规范化&#xff0c;可以说规范和环境插件配置满天飞&#xff0c;笔者最早接触的是jquery&#xff0c;那个开发非常简单&#xff0c;只要引入jquery就可以了&#xff0c;当时还写了一套UI框架&#xff0c;至今在做小型项目中还在使用&#xff0c;show一张效果…

一款颜值颇高的虚拟列表!差点就被埋没了,终于还是被我挖出来了

大家好&#xff0c;我是晓衡&#xff01; 今天&#xff0c;推荐一款颇有颜值的虚拟列表组件&#xff0c;不然真的被埋没就可惜了&#xff01; 我们先来看下效果&#xff1a; 感觉怎么样&#xff1f;还不错吧&#xff01; 为什么说这个资源差点被埋没呢&#xff1f;因为个朋友找…

用数据,简单点!奇点云2024 StartDT Day数智科技大会,直播见

在充满挑战的2024&#xff0c;企业如何以最小化的资源投入和试错成本&#xff0c;挖掘新的增长机会&#xff0c;实现确定性发展&#xff1f; “简单点”是当前商业环境的应对策略&#xff0c;也是奇点云2024 StartDT Day的核心理念。 5月28日&#xff0c;由奇点云主办的2024 S…

Linux —— 信号量

Linux —— 信号量 什么是信号量P操作&#xff08;Wait操作&#xff09;V操作&#xff08;Signal操作&#xff09;信号量的类型 一些接口POSIX 信号量接口&#xff1a;其他相关命令&#xff1a; 基于循环队列的生产者和消费者模型同步关系 多生产多消费 我们今天接着来学习信号…

【译】组复制和 Percona XtraDB 集群: 常见操作概述

原文地址&#xff1a;Group Replication and Percona XtraDB Cluster: Overview of Common Operations 在这篇博文中&#xff0c;我将概述使用 MySQL Group Replication 8.0.19&#xff08;又称 GR&#xff09;和 Percona XtraDB Cluster 8 (PXC)&#xff08;基于 Galera&…

Jetbrains插件AI Assistant,终于用上了

ai assistant激活成功后&#xff0c;如图 ai assistant获取&#xff1a;https://web.52shizhan.cn/activity/ai-assistant 主要功能如下

计算机毕业设计hadoop+spark微博舆情大数据分析 微博爬虫可视化 微博数据分析 微博采集分析平台 机器学习(大屏+LSTM情感分析+爬虫)

电商数据建模 一、分析背景与目的 1.1 背景介绍 电商平台数据分析是最为典型的一个数据分析赛道&#xff0c;且电商数据分析有着比较成熟的数据分析模型&#xff0c;比如&#xff1a;人货场模型。此文中我将通过分析国内最大的电商平台——淘宝的用户行为&#xff0c;来巩固数…