JMeter性能测试实战

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

jmeter+ant接口自动化测试与性能测试实战

首先需要安装和配置jmeter和ant 环境

jmeter与ant整合

在ant的lib目录下把ant-jmeter-1.1.1.jar 复制到jmeter的extras目录下。

邮件的插件activation.jar ,commons-email-1.2.jar ,mail.jar 放到jmeter的lib目录下

测试脚本

 在jmeter文件下边新建一个tests文件夹 ,report存放html测试报告和jtl文件信息

script存放的是要测试的接口脚本

 build.xml文件信息

<?xml version="1.0" encoding="UTF8"?><project name="ant-jmeter-test" default="run" basedir="."><property name="jmeterPath" value="E:\apache-jmeter-5.4.1"/>
<property name="mailhost" value="smtp.qq.com"/>
<property name="username" value="xxxx@qq.com"/>
<property name="password" value="sszhgagfkdynbbeaa"/>
<property name="mailfrom" value="xxxx@qq.com"/>
<property name="mail_to" value="xxxx@qq.com,"/>
<property name="mailsubject" value="API测试报告"/>
<property name="mail_port" value="587"/>
<property name="message" value="Hi!请查收下,API测试报告,如有任何疑问,请联系我,谢谢!"/><tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp><property name="jmeter.home" value="${jmeterPath}" /><property name="jmeter.result.jtl.dir" value="${jmeterPath}\tests\report\jtl" /><property name="jmeter.result.html.dir" value="${jmeterPath}\tests\report\html" /><property name="htmlReportNameSummary" value="testReport" /><property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}${time}.jtl" /><property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html" /><target name="run"><antcall target="test" /><antcall target="report" /><antcall target="sendEmail" /></target><!--执行接口测试--><target name="test"><echo>执行接口自动化测试</echo><taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /><jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"><!--要执行的测试脚本--><testplans dir="${jmeterPath}\tests\script" includes="ApiPerformance.jmx" /><property name="jmeter.save.saveservice.output_format" value="xml"/></jmeter></target><!--解决报告中NAN字段显示问题--><path id="xslt.classpath"><fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/><fileset dir="${jmeter.home}/lib" includes="serializer-2.7.2.jar"/></path><!--生成HTML测试报告--><target name="report"><echo>生成接口自动测试报告</echo><xslt classpathref="xslt.classpath"force="true"in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}"style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"  /><!--复制图片--><copy todir="${jmeter.result.html.dir}"><fileset dir="${jmeter.home}/extras"><include name="collapse.png" /><include name="expand.png" /></fileset></copy></target><!--自动发送邮件--><target name="sendEmail"><echo>发送自动化测试报告</echo><mail mailhost="${mailhost}"user="${username}" password="${password}" mailport="${mail_port}"subject="${mailsubject}" messagemimetype="text/html" tolist="${mail_to}"><from address="${mailfrom}" /><attachments><fileset dir="${jmeter.result.html.dir}"><include name="${htmlReportNameSummary}${time}.html"/><include name="collapse.png" /><include name="expand.png" /></fileset></attachments><message>${message}</message></mail></target></project>

 在build.xml文件路径下,执行ant

生成的测试报告内容

性能报告

  

 把bin目录下的jmeter.properties文件添加jmeter.save.saveservice.output_format=csv

在tests目录下新建一个performanceReport文件夹。

执行命令:

jmeter -n -t script/ApiPerformance.jmx  -l api.jtl -e -o performanceReport/

执行成功后会生成性能测试报告:

 

 测试报告:

 jmeter+influxdb+grafana实时监控

Influx安装

执行命令:wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate

解压安装:执行命令:rpm -ivh influxdb-1.7.0.x86_64.rpm

修改默认的配置文件 /etc/influxdb/influxdb.conf

执行命令:vim /etc/influxdb/influxdb.conf,将最终修改的配置如下:

[[graphite]]
# Determines whether the graphite endpoint is enabled.
enabled = true
database = "jmeter"    # 数据库名称
retention-policy = ""
bind-address = ":2003"    # 端口
protocol = "tcp"
consistency-level = "one"

修改以下信息
[meta]
dir = "/usr/local/influxdb/meta"    #存放最终存储的数据,文件以.tsm结尾
[data]
dir = "/usr/local/influxdb/data"    #存放数据库元数据 wal
wal-dir = "/usr/local/influxdb/wal"    #存放预写日志文件

修改HTTP端口信息
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true

# The bind address used by the HTTP service.
bind-address = ":8086"
修改完成后执行:wq保存退出

上边设置了存放数据的目录为/usr/local/influxdb,需要手动创建并授权

mkdir -pv /usr/local/influxdb/
chown -R influxdb:influxdb /usr/local/influxdb/
启动与开机自启

systemctl restart influxdb
systemctl enable influxdb
创建数据库及用户

执行命令如下:

JMeter配置

 

然后发送请求后,在服务器上查看influxdb是否有接收数据成功 

 

Grafana安装

安装比较简单详细步骤参考:https://www.cnblogs.com/wx170119/p/13330638.html

然后执行jmeter

 

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/655009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言——O / 动态内存管理

一、为什么要有动态内存分配 我们已经掌握的内存开辟⽅式有&#xff1a; int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 但是上述的开辟空间的⽅式有两个特点&#xff1a; • 空间开辟⼤⼩是固定的。 • 数组在申明的时候&am…

Flutter Web持久化存储SharedPreferences原理

前言 在Flutter中&#xff0c;类似于Android&#xff0c;SharedPreferences 是一种用于持久化存储键值对数据的机制 实现原理 对于移动平台&#xff08;如Android和iOS&#xff09;&#xff0c;SharedPreferences 利用了各自平台的持久化存储能力。在Android上&#xff0c;它…

前端经典面试题js去重方法都有哪些

使用 Set&#xff1a; Set 是 ES6 中引入的一种数据结构&#xff0c;它只允许存储唯一的值&#xff0c;可以利用这一特性来实现数组去重。 const array [1, 2, 2, 3, 4, 4, 5]; const uniqueArray [...new Set(array)]; 使用 indexOf 或 includes 方法&#xff1a; 遍历原数…

RabbitMQ之死信交换机

前言 消息队列是分布式系统中常用的组件&#xff0c;用于异步通信、解耦和提高系统可靠性。然而&#xff0c;在实际应用中&#xff0c;难免会遇到一些异常情况&#xff0c;例如消息处理失败、超时等。为了更好地处理这些异常情况&#xff0c;死信交换机&#xff08;Dead Lette…

数据双向绑定v-modal

v-model v-model就实现了双向数据绑定&#xff0c;实际上它就是通过Vue提供的事件机制。即在子组件通过$emit()触发一个事件&#xff0c;在父组件使用v-on来监听对应的事件并修改相应的数据。 input的v-model就是通过<input :value"value" input"input"…

AS自治系统中的路由协议---RIP、OSPF、BGP

一、AS --- 自治系统 将网络分块管理 --- 由单一的机构或组织所管理 的一系列IP网络及其设备的集合 AS的管理&#xff1a;为了方便对AS进行管理&#xff0c;我们给AS设计了一个编号称为AS 号 --- 16位二进制构成 --- 0 - 65535 ---- 目前也存在拓展版的AS 号 --- 32位二进制构…

C++-类和对象(1)

目录 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 关于C中struct和class的区别&#xff1a; 4.2 封装 1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&…

【论文阅读|半监督小苹果检测方法S3AD】

论文题目 &#xff1a; : Semi-supervised Small Apple Detection in Orchard Environments 项目链接&#xff1a;https://www.inf.uni-hamburg.de/en/inst/ab/cv/people/wilms/mad.html 摘要&#xff08;Abstract&#xff09; 农作物检测是自动估产或水果采摘等精准农业应用不…

【算法】传纸条(动态规划)

题目 小渊和小轩是好朋友也是同班同学&#xff0c;他们在一起总有谈不完的话题。 一次素质拓展活动中&#xff0c;班上同学安排坐成一个 m 行 n 列的矩阵&#xff0c;而小渊和小轩被安排在矩阵对角线的两端&#xff0c;因此&#xff0c;他们就无法直接交谈了。 幸运的是&…

代码迁移,合并双仓库

文章目录 前言一、如何对两个仓库进行合并二、具体操作步骤A仓库新分支第一步 移除controller以及接口第二步 移除service以及实现类impl第三步 移除dao层&#xff08;mapper以及xml&#xff09;第四步 移除pojo、cache、config、enum以及util等&#xff0c;并复查service第五步…

el-tree树形组件 一次性折叠所有子节点

场景: 在dialog中有一个树形数据可以点击选择&#xff0c;展开找到自己想选择的项后通常我们不会再关闭树形选择&#xff0c;导致下一次打开的时候树形组件还是复用了&#xff0c;所以并不会重置&#xff0c;这时候可以在点击取消的时候把所有的节点关闭。 思路: 可以遍历tr…

python 基础知识点(蓝桥杯python科目个人复习计划27)

今日复习内容&#xff1a;基础算法中的递归 1.介绍 递归&#xff1a;通过自我调用来解决问题的函数递归通常把一个复杂的大问题层层转化为一个与原问题相似的规模较小的问题来解决 递归要注意&#xff1a;&#xff08;1&#xff09;递归出口&#xff1b;&#xff08;2&#x…

一招搞定msvcr120.dll丢失怎样修复的问题,快速修复msvcr120.dll文件

msvcr120.dll丢失的问题时电脑中常见的几种问题&#xff0c;关于msvcr120.dll丢失的问题都有什么办法可以有效的解决文件丢失的问题&#xff0c;今天我们就来聊聊关于msvcr120.dll丢失怎样修复的方法都有哪些&#xff1f; 一.一招搞定msvcr120.dll丢失问题 为了解决msvcr120.d…

05 SB3之Spring Initializr+运行方式+自动配置原理(TBD)

1. 使用IDEA内置Spring Initializr 生成SB项目 最上方Server URL可以选择借助哪个平台生成, 可选阿里云 作为对比 , 官方可选版本最旧为3.1.18 ; 阿里云可选最新版本为3.0.2 本次选择3.1.8版本, 并且添加Spring Web依赖(包括RESTful / Spring MVC/)和Lombok依赖 生成后端项目…

野火霸道V2学习笔记

STM32F103学习笔记 STM32F103学习笔记说明基础配置配置KeilMDK配置串口下载程序美化Keil界面配置VScode 理论知识STM32命名方式例子 置位与清零GPIOGPIO简介GPIO和引脚的区别引脚的分类 GPIO 框图讲解保护二极管推挽输出推挽输出的含义推挽输出的原理推挽输出的特点推挽输出的应…

TCO AF488,AF488 反式环辛烯,可以用于各种生物实验中,如免疫荧光染色、细胞追踪、核酸检测等

AF488 TCO&#xff0c;Alexa Fluor TCO&#xff0c;TCO AF488&#xff0c;AF488 反式环辛烯&#xff0c;可以用于各种生物实验中&#xff0c;如免疫荧光染色、细胞追踪、核酸检测等 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;AF488 TCO&#xff0c;Alexa Fluo…

如何使用Docker部署火狐浏览器并实现无公网ip远程访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器&#xff0c;由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

vulnhub靶场之EMPIRE:BREAKOUT

一.环境搭建 1.靶场描述 Description Back to the Top Difficulty: Easy This box was created to be an Easy box, but it can be Medium if you get lost. For hints discord Server ( https://discord.gg/7asvAhCEhe ) 2.靶场地址 https://www.vulnhub.com/entry/empire-…

Qt程序设计-延时函数

本文讲解Qt延时函数的实现。 实现延时函数有几种办法,分为阻塞型和非阻塞 阻塞型:在延时期间,本线程的事件循环得不到执行。 1、阻塞型 QThread类的sleep() 除了sleep(n)还有msleep(n)、usleep(n)。 缺点:GUI会在延时的时间段内失去响应,界面卡死,所以,这三个函数…

备战蓝桥杯---数据结构与STL应用(入门1)

话不多说&#xff0c;直接看题&#xff1a; 下面为分析&#xff1a;显然&#xff0c;我们要先合并最小的两堆&#xff08;因为他们在后边也得被计算&#xff0c;换句话&#xff0c;我们独立的看&#xff0c;某一堆的体力值为他自己重量*从现在到最后的次数&#xff09; 因此&a…