Jmeter+Maven+jenkins+eclipse搭建自动化测试平台
背景:
首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知,这样一来性能测试的job配置完成。接着,把性能测试的job配置成开发job的下游job,一旦开发有了新的代码提交运行开发自己的job后,就会自动触发我们性能测试的job。这样我们就实现了接口性能测试的全自动化,我们只需要关注测试失败的邮件!
1 环境搭建
- 下载安装 jdk &eclipse。
- 下载安装jenkins。
- 下载maven 并进行解压。
- 下载jmeter并解压。
2 准备性能测试的脚本
- 启动 jmeter (双击 jmeter解压目录下的bin\jmeter.bat)。
- 用jmeter书写test cases,并导出(推荐)。
或者你可以用jmeter录制脚本,确保运行通过后,导出。
当然你可以选择用badboy录制脚本,确保运行通过后,导出。(badboy支持ie浏览器的录制)
也可以使用chrome插件(BlazeMeter)下载链接:https://www.chromefor.com/blazemeter-the-continuous-testing-platform_v3-2-0/ 注意:如果导出不了脚本,是版本原因,下载最新的版文本即可
3 为性能测试脚本创建maven project
- 打开eclipse,并创建一个 maven project。
- 在src/test/目录下创建jmeter文件夹把准备好的性能测试的脚本复制到这个文件夹下。
在src/test/目录下创建resource文件夹,并把测试模板(E:\apache-jmeter-3.2\apache-jmeter-3.2\extras的如下文件)复制到这个resource文件下。
并把如下文件从apache-jmeter-3.2\bin目录下复制到src/test/jmeter文件里。
- 在maven脚本里(即pom.xml)添加jmeter-maven-plugin相关依赖如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.performance.test</groupId><artifactId>PushNotificationPerformanceTest</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>PushNotificationPerformanceTest</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><jmeter.result.jtl.dir>${project.build.directory}\jmeter\results</jmeter.result.jtl.dir><jmeter.result.html.dir>${project.build.directory}\jmeter\html</jmeter.result.html.dir><jmeter.result.html.dir1>${project.build.directory}\jmeter\html1</jmeter.result.html.dir1><ReportName>TestReport</ReportName></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>com.lazerycode.jmeter</groupId><artifactId>jmeter-maven-plugin</artifactId><version>2.3.0</version><executions><execution><id>jmeter-tests</id><goals><goal>jmeter</goal></goals></execution></executions></plugin><plugin><groupId>org.codehaus.mojo</groupId><artifactId>xml-maven-plugin</artifactId><version>1.0-beta-3</version><executions><execution><phase>verify</phase><goals><goal>transform</goal></goals></execution></executions><configuration><transformationSets><transformationSet><dir>${jmeter.result.jtl.dir}</dir><stylesheet>src\test\resources\jmeter-results-detail-report_21.xsl</stylesheet><outputDir>${jmeter.result.html.dir}</outputDir><fileMappers><fileMapperimplementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper"><targetExtension>html</targetExtension></fileMapper></fileMappers></transformationSet><transformationSet><dir>${jmeter.result.jtl.dir}</dir><stylesheet>src\test\resources\jmeter-results-report_21.xsl</stylesheet><outputDir>${jmeter.result.html.dir1}</outputDir><fileMappers><fileMapperimplementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper"><targetExtension>html</targetExtension></fileMapper></fileMappers></transformationSet></transformationSets></configuration><!-- using XSLT 2.0 --><dependencies><dependency><groupId>net.sf.saxon</groupId><artifactId>saxon</artifactId><version>8.7</version></dependency></dependencies></plugin></plugins></build>
</project>
4 在eclipse运行性能测试脚本
选中性能测试的project 右击,然后在下拉框中选择run as -》maven build ,然后在弹出的对话框的Goals 写上verify,最hou点击run(如下图)。
运行后会有测试结果文件如下图
5 在jenkins 运行性能测试脚本并配置测试结果
在jenkins上安装如下插件:
Maven Integration plugin Maven,用于jenkins可以创建maven job ;
Git plugin ,用于从github下载性能测试的代码;
Performance plugin ,用于显示测试报告;
HTML Publisher plugin ,用于显示相关接口测试结果的报告。
1、jenkins环境准备(全局工具配置)
目录:系统管理-->全局工具配置
1)配置jdk地址
maven配置:
2、配置maven工程
1) 在jenkins创建maven job
2)在jenkins上配置运行脚本
首先在工程里点击配置选项
3)在jenkins上配置测试结果报告
5)配置完了,点击buid now,开始运行,结果如下:
下面的报告是更换了报告的模板,具体实现百度
ps:
关于显示测试结果:
1. 如在jenkins使用html publisher查看报告时,发现显示不美观,不全的现象,很多东西显示不了,
解决这个问题可以在jenkins系统管理中输入以下脚本运行,就可以解决这个问题了
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
更多解决方法:https://zhuanlan.zhihu.com/p/280809752.html结果好多为空,请把jmeter.property的相应的false改为true。
#测试报告信息展示
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=true
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
相关文章:

Jmeter+Maven+jenkins+eclipse搭建自动化测试平台
背景: 首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知,…...

springboot+jsp+java人才招聘网站4f21r
本基于springboot的人才招聘网站主要满足3种类型用户的需求,这3种类型用户分别为求职者、企业和管理员,他们分别实现的功能如下。 (1)求职者进入网站后可查看职位信息、企业信息以及职位新闻等,注册登录后可实现申请职…...

WordPress:构建强大的网站和博客的完美选择
WordPress:构建强大的网站和博客的完美选择 一、WordPress 简介1.1 WordPress 介绍1.2 WordPress 优势 二、部署LNMP环境2.1 前提条件2.2 关闭防火墙和SELinux2.3 安装Nginx2.4 安装MySQL2.5 安装PHP2.6 配置Nginx2.7 配置MySQL2.8 配置PHP2.9 测试访问LNMP平台 三、…...

2021年8月18日 Go生态洞察:整合Go的网络体验
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

【算法】缓存淘汰算法
目录 1.概述2.代码实现2.1.FIFO2.2.LRU2.3.LFU2.4.Clock2.5.Random 3.应用 1.概述 缓存淘汰策略是指在缓存容量有限的情况下,当缓存空间不足时决定哪些缓存项应当被移除的策略。缓存淘汰策略的目标是尽可能地保持缓存命中率高,同时合理地利用有限的缓存…...

接手项目要做的事项
总结:在接手别人的项目时,至少应该自己整理并绘画四个图 1、产品脑图:帮助你理解产品的功能; 2、UML时序图:帮助你源代码的核心技术实现; 3、整体业务泳道图:帮助你从整体上熟悉业务的流程&a…...

【Web】攻防世界Web_php_wrong_nginx_config
这题考察了绕过登录、目录浏览、后门利用 进来先是一个登录框,随便怎么输前端都直接弹窗 禁用js后再输入后登录 查看源码,好家伙,不管输什么都进不去 直接扫目录 访问/robots.txt 访问/hint.php 访问/Hack.php 抓包看一下 cookie里isLogin0…...

Flume采集Kafka并把数据sink到OSS
安装环境 Java环境, 略 (Flume依赖Java)Flume下载, 略Scala环境, 略 (Kafka依赖Scala)Kafak下载, 略Hadoop下载, 略 (不需要启动, 写OSS依赖) 配置Hadoop 下载JindoSDK(连接OSS依赖), 下载地址Github 解压后配置环境变量 export JINDOSDK_HOME/usr/lib/jindosdk-x.x.x expo…...

flutter,uni-app开发调试ios
一、申请ios开发者账号 二、ios开发者配置 ios 开发者需要配置的地方 https://developer.apple.com/account/resources/certificates/list Certificates(证书): 作用: 证书用于对应用程序和开发者进行身份验证,确保安全性和可…...

MybatisBatchUtils功能介绍
MybatisBatchUtils 是一个 MyBatis 框架的工具类,主要用于简化 MyBatis 中批量操作的代码编写。该工具类封装了 MyBatis 中的批量操作方法,可以方便地进行批量插入、更新和删除等操作。 一般来说,使用 MyBatis 进行批量操作需要先设置 JDBC 驱…...

Flutter使用flutter_gen管理资源文件
pub地址: https://pub.dev/packages/flutter_gen 1.添加依赖 在你的pubspec.yaml文件中添加flutter_gen作为开发依赖 dependencies:build_runner:flutter_gen_runner: 2.配置pubspec.yaml 在pubspec.yaml文件中,配置flutter_gen的参数。指定输出路…...

vue3 setup语法糖,常用的几个:defineProps、defineEmits、defineExpose、
vue3和vue2组件之间传参的不同 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。 <script setup> 中的代码会在每次组件实例被创建的时候执行。 任何在 <script setup> 声明的顶层的绑定 (包括变量,函数声明࿰…...

JC/T 2087-2011建筑装饰用仿自然面艺术石检测
建筑装饰用仿自然面艺术石是指以硅酸盐水泥、轻质骨料为主要原料经浇筑成型的饰面装饰材料。 JC/T 2087-2011建筑装饰用仿自然面艺术石测试: 测试项目 测试方法 外观质量 GB/T 18601 尺寸偏差 GB/T 18601 体积密度 GB/T 9966.3 吸水率 GB/T 9966.3 压缩强…...

C语言——写一个简单函数,找两个数中最大者
#include <stdio.h>int max( int a, int b ) { return a>b ? a:b; }int main() { int a, b;printf("输入两个数:\n");scanf("%d %d", &a, &b);printf("max %d\n", max(a, b));return 0; }输出结果:...

机器学习中的混淆矩阵
混淆矩阵是用于评估分类模型性能的表格,它展示了模型在不同类别上的预测情况。对于二分类问题,混淆矩阵的构成如下: 假设有两个类别:正例(Positive)和负例(Negative)。 真正例&…...

QT基础实践之简易计算器
文章目录 简易计算器源码分享演示图第一步 界面设计第二步 设置槽第三步 计算功能实现 简易计算器 源码分享 链接:https://pan.baidu.com/s/1Jn5fJLYOZUq77eNJ916Kig 提取码:qwer 演示图 第一步 界面设计 这里直接用了ui界面,如果想要自己…...

南大通用 GBase 8s数据库级别权限
对于所有有权使用指定数据库的用户都必须赋予其数据库级别的用户权限。在GBase 8s 中,数据库级别的用户权限有三种,按权限从低到高排列依次为:CONNECT、RESOURCE、DBA。 1. CONNECT 这是级别最低的一种数据库级别用户权限。拥有该权限的用户…...

对话式数据需求激增,景联文科技提供高质量多轮对话数据定制采集标注服务
大模型的快速发展使得数据服务需求激增,产品整体处于供不应求状态。对话式数据集成为当下需求热点,人们对于更复杂、更真实的多轮对话数据需求不断增加,定制化服务占据市场需求主流。 通过对多轮对话数据的训练,模型可以更好地理解…...

python第1天之常识及环境安装
前言: 当谈到编程语言的流行度时,Python绝对是其中之一。Python是一种高级编程语言,其语法简单易懂,适用于各种不同的应用领域,包括Web开发、数据分析、人工智能等。在本文中,我们将探讨一些关于Pyth…...

中国高纯石英砂行业市场研究与投资前景报告(2024版)
内容简介: 高纯石英砂纯度高、品质好,生产的石英制品具有耐高温、耐腐蚀、低热膨胀性、高度绝缘性和透光性等优异的物理化学属性,被广泛用于光伏、电子、高端电光源、薄膜材料、国防科技等领域,是高端制造行业不可替代的原辅材料…...

遭到美国做空机构“灰熊”做空后,人工智能公司商汤科技股价暴跌
来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,在遭到美国做空机构Grizzly Research(灰熊)指控夸大收入后,商汤科技的股价在周二一度下跌了9.7%。 Grizzly Research在周二发布的一份报告中称,商汤…...

异常数据检测 | Python实现孤立森林(IsolationForest)异常检测
孤立森林(IsolationForest)异常检测 IsolationForest[6]算法它是一种集成算法(类似于随机森林)主要用于挖掘异常(Anomaly)数据,或者说离群点挖掘,总之是在一大堆数据中,找出与其它数据的规律不太符合的数据。该算法不采样任何基于聚类或距离的方法,因此他和那些基于距离的的…...

营销互动类小游戏策划与开发
制定并开发一款营销互动小游戏需要经过一系列策划和实施步骤。以下是一个基本的流程,你可以根据自己的具体情况进行调整: 明确目标:确定小游戏的目标,是提高品牌知名度、增加销售、促进用户互动还是其他目标。 了解目标受众&…...

主机的容器化技术介绍
☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、什么是容器 容器是一个标准化的单元,是一种轻量级、可移植的软件打包技术,容器将软件代码及其相关依赖打包,使应用程序可以在任何计算介质运行。例如开发人员在自己的…...

网络基础『发展 ‖ 协议 ‖ 传输 ‖ 地址』
🔭个人主页: 北 海 🛜所属专栏: 神奇的网络世界 💻操作环境: CentOS 7.6 阿里云远程服务器 文章目录 🌤️前言🌦️正文1.网络发展1.1.背景1.2.类型 2.网络协议2.1.什么是协议2.2.协议…...

Aapche Dubbo 不安全的 Java 反序列化 (CVE-2019-17564)
漏洞描述 Apache Dubbo 是一个高性能的、基于 Java 的开源 RPC 框架。 Apache Dubbo 支持不同的协议,它的 HTTP 协议处理程序是 Spring Framework 的 .org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter Spring Framework 的安全警告显示&am…...

B/S软件开发架构
1.简述 1. B/S框架,意思是前端(Browser 浏览器, 小程序,APP,自己写)和服务器端(Server)组成的系统的框架结构。 2. B/S架构也可理解为web架构,包含前端、后端、数据库三大组成部分。 2.前端 前端开发技…...

【docker系列】docker实战之部署SpringBoot项目
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【数据结构】时间和空间复杂度
马上就要进入到数据结构的学习了 ,我们先来了解一下时间和空间复杂度,这也可以判断我们的算法是否好坏; 如何衡量一个算法的好坏? 就是看它的算法效率 算法效率 算法效率分析分为两种:第一种是时间效率,第…...

【Web】[GKCTF 2021]easycms
直接点击登录按钮没有反应 扫目录扫出来/admin.php 访问 弱口令admin 12345直接登录成功 点开设计--主题--自定义 编辑页头,类型选择php源代码 点保存显示权限不够 设计--组件--素材库 先随便上传一个文件,之后改文件名称为../../../../../system/tmp…...