如何让你的 Jmeter+Ant 测试报告更具吸引力?
引言
想象一下,你辛苦搭建了一个复杂的网站,投入了大量的时间和精力进行开发和测试。当你终于完成了测试并准备生成测试报告时,你可能会发现这个过程相当乏味,而对于其他人来说,它可能也不那么吸引人。
但是,不要放弃!因为在本文中,我们将分享如何使用 Jmeter+Ant 生成测试报告,并让它更具吸引力。
JMeter生成测试报告使用的是Ant(Maven)构建工具来生成HTML的测试报告。
一、安装apache-Ant
1、解压apache-ant安装包
ant是Java语言的构建工具 Apache Ant - Binary Distributions

2、配置环境
①:复制ant中bin目录的路径放到Path变量中(注意以英文的分号和前面的隔开)
E:\workplace\Ant\apache-ant-1.9.14\bin
3、验证ant否安装成功
控制台指令:ant -v
二、Jmeter准备
1、jmeter目录下新建tests文件夹(tests文件夹里面存储测试脚本和测试报告),在tests文件夹下新建report和script文件夹,再在report文件夹下新建html和jtl文件夹
2、把jmeter保存的测试脚本保存到script下
目录结构如下图所示:

把jmeter下的extras文件下的ant-jmeter-1.1.1.jar复制,粘贴到ant下的lib文件中编写build.xml文件,把build.xml放在jmeter的tests的文件下在jmeter的bin目录下找到jmeter.properties用记事本打开,CTRL+F找到#jmeter.save.saveservice.output_format=csv,然后把井号取消,等号后面改为xmlactivation.jar, commons-email-1.2.jar, mail.jar,这三个文件放在ant的lib目录下完善build.xml文件:
build.xml文件定义了
A、执行哪个测试脚本
B、实现自动发送脚本(邮箱)
C、自动生成测试报告定义jmeter地址 加上接受报告的qq邮箱 要执行的测试脚本的名字 自动生成测试报告在控制台进入到tests,输入ant,这时在report下的html中,会有测试报告
把build.xml放在jmeter的tests的文件下:

3、生成测试报告

ant执行的条件是需要有build.xml的文件的,build.xml文件里面主要编写三个内容:
1、定义了被执行的测试脚本
2、定义了测试报告的目录
3、定义了自动发送邮件
HTTP COOKIE管理器(SESSION会话对象--》代码级别):
1、所有请求之间的COOKIE是共享的
2、所有请求之间的COOKIE共享的同时底层的TCP连接只建立一次连接
11表示匹配到的第1个值赋给引用名称。

4、JMeter动态参数处理逻辑是什么?
以登录为案例,登录成功后返回的TOKEN每次都是不一样的,这个值就是动态参数,那么在登录成功后的接口中(如首页)需要调用到这个TOKEN:
1、在登录的接口中添加后置处理器中的JSON提取器,定义一个变量获取登录成功后返回的token的值
2、在下个接口(如首页)中通过${}来调用这个变量
3、执行线程组中的任务,就能够实现参数的上下关联
常用的组件:
1、HTTP信息头管理器
2、COOKIE管理器
3、查看结果树
4、JSON提取器/正则表达式提取器
5、JSON断言以及响应断言
6、HTTP请求默认值
7、用户定义的变量(分离的是公共的数据)
5、JMeter是怎么做API自动化测试的?
1、首先在JMeter里面创建测试计划,在测试计划里面创建线程组2、在线程组里面添加HTTP的请求,以及添加API的测试用例
3、编写测试用例结束后,结合Ant构建工具,编写build.xml文件(执行脚本,测试报告目录,自动发送邮件)
4、在build.xml文件的目录下执行ant,就会自动执行
5、最后整合到Jenkins持续集成的平台,那么在下个版本中,只需要点击构建就能够自动化的执行
针对一个服务,你怎么测试?
1、正常功能
2、异常功能
A、请求参数是必须填写,但是没有带,后台有没有做判断
B、请求参数的数据类型是否做了判断
C、特定参数需要特定的值
D、请求参数超过长度的限制
3、安全测试,主要指的是服务是否做了认证授权
4、性能测试(这个服务同时多少个人可以访问)
5、稳定性测试(指的是验证一个服务的稳定性)
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

相关文章:
如何让你的 Jmeter+Ant 测试报告更具吸引力?
引言 想象一下,你辛苦搭建了一个复杂的网站,投入了大量的时间和精力进行开发和测试。当你终于完成了测试并准备生成测试报告时,你可能会发现这个过程相当乏味,而对于其他人来说,它可能也不那么吸引人。 但是…...
游戏APP接入哪些广告类型
当谈到游戏应用程序(APP)接入广告时,选择适合用户体验和盈利的广告类型至关重要。游戏开发者通常考虑以下几种广告类型: admaoyan猫眼聚合 横幅广告: 这些广告以横幅形式显示在游戏界面的顶部或底部。它们不会打断游戏…...
Echarts地图registerMap使用的GeoJson数据获取
https://datav.aliyun.com/portal/school/atlas/area_selector 可以选择省,市,区。 也可以直接在地图上点击对应区域。 我的应用场景 我这里用到这个还是一个特别老的大屏项目,用的jq写的。显示中国地图边界区域 我们在上面的这个地区选择…...
【JavaEE】Java中的多线程 (Thread类)
作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…...
python中具名元组的使用
collections.namedtuple是一个工厂函数,它可以用来构建一个带字段名的元组和一个有名字的类。 from collections import namedtuple City namedtuple(City2, name country population coordinates) tokyo City(Tokyo, JP, 36.933, (35.689722, 139.691667)) pr…...
【开题报告】基于SpringBoot的婚纱店试妆预约平台的设计与实现
1.选题背景 婚礼是人生中的重要时刻,而试妆是婚礼准备过程中不可或缺的一环。传统的婚纱店试妆预约方式通常需要亲自到店或通过电话预约,这样的方式可能存在一些问题。首先,用户需要花费时间和精力到店进行预约,对于忙碌的现代人…...
Qt 布局讲解及举例
Qt布局是一个用于管理窗口部件位置和大小的机制,它使得开发人员能够轻松地创建可伸缩、可调整大小的界面。在Qt中,布局管理器是一种用于自动调整窗口部件大小的机制,它可以根据窗口大小的变化自动调整部件的位置和大小。 Qt布局管理器通过使…...
【微服务】java 规则引擎使用详解
目录 一、什么是规则引擎 1.1 规则引擎概述 1.2 规则引擎执行过程 二、为什么要使用规则引擎 2.1 使用规则引擎的好处 2.1.1 易于维护和更新 2.1.2 增强应用程序的准确性和效率 2.1.3 加快应用程序的开发和部署 2.1.4 支持可视化和可管理性 2.2 规则引擎使用场景 三、…...
HCIA-Datacom跟官方路线学习
通过两次更换策略。最后找到最终的学习方案,华为ICT官网有对这个路线的学习,hcia基础有这个学习路线,hcip也有目录路线。所以,最后制定学习路线,是根据这个认证的路线进行学习了: 官网课程:课程…...
MySQL三大日志详细总结(redo log undo log binlog)
MySQL日志 包括事务日志(redolog undolog)慢查询日志,通用查询日志,二进制日志(binlog) 最为重要的就是binlog(归档日志)事务日志redolog(重做日志)undolog…...
XXL-Job详解(二):安装部署
目录 前言环境下载项目调度中心部署执行器部署 前言 看该文章之前,最好看一下之前的文章,比较方便我们理解 XXL-Job详解(一):组件架构 环境 Maven3 Jdk1.8 Mysql5.7 下载项目 源码仓库地址链接: https://github.…...
支持Arm CCA的TF-A威胁模型
目录 一、简介 二、评估目标 2.1 假定 2.2 数据流图 三、威胁分析 3.1 威胁评估 3.1.1 针对所有固件镜像的一般威胁 3.1.2 引导固件可以缓解的威胁...
【Web端CAD/CAE文字标注】webgl+canvas 2d实现文字标注功能
一、需求背景 在CAD/CAE领域经常会遇到显示节点编号这种需求,效果如下图: 本文介绍如何在WebGL中实现文字的显示,对于如何在OpenGL中实现请绕路。 二、实现原理 Canvas是HTML5提供的元素,用于在网页上绘制图形,其支…...
对话框、内部控件位置
一、了解下几个函数 1、movewindow 了解下:MoveWindow 自己塞进去的是屏幕坐标 CrvtFaultRodDlg* dlg new CrvtFaultRodDlg();if (dlg ! NULL){BOOL ret dlg->Create(IDD_DlgCrvtFaultRod, NULL);if (ret) //Create failed.{RECT rect;{RECT rect1;dlg->…...
【GraphQL 】将GraphQL API添加到Postgres数据库的六种简单方法,比较Hasura、Prisma和其他
PostgreSQL是世界上最流行的开源SQL数据库之一,GraphQL是一种日益流行的API规范。 将经过验证和众所周知的PostgreSQL与GraphQL带来的API创建新方式集成在一起不是很好吗? 在本文中,我们讨论了六个不同的项目,它们试图将SQL与Gr…...
每日一题(LeetCode)----哈希表--有效的字母异位词
每日一题(LeetCode)----哈希表–有效的字母异位词 1.题目(242. 有效的字母异位词) 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互…...
【设计模式】行为型模式-第 3 章第 6 讲【中介者模式】
目录 定义 场景描叙 目的 主要解决 实现 基本类图 案例代码...
Django 通过 Trunc(kind) 和 Extract(lookup_name) 参数进行潜在 SQL 注入 (CVE-2022-34265)
漏洞描述 Django 于 2022 年6月4 日发布了一个安全更新,修复了 Trunc() 和 Extract() 数据库函数中的 SQL 注入漏洞。 参考链接: Django security releases issued: 4.0.6 and 3.2.14 | Weblog | Djang…...
Vue3-toRef 和 toRefs 函数
Vue3-toRef 和 toRefs 函数 功能:可以简化语法调用。toRef 函数执行时会生成一个对象 ObjectRefImpl ,是一个引用对象,具有value属性(getter 和 setter 属性)语法格式:toRef(对象名, 对象中的属性名) toRe…...
STM32---时钟树
写在前面:一个 MCU 越复杂,时钟系统也会相应地变得复杂,如 STM32F1 的时钟系统比较复杂,不像简单的 51 单片机一个系统时钟就 可以解决一切。对于 STM32F1 系列的芯片,其有多个时钟源,构成了一个庞大的是时…...
Flutter 鸿蒙(OpenHarmony)化适配实战:从零实现「点击按钮退出应用」插件
一、引言 随着鸿蒙生态的持续发展,Flutter 作为跨平台开发的主流框架,对鸿蒙系统的支持也越来越完善。很多 Flutter 开发者在迁移鸿蒙应用时,都会遇到「应用退出」的基础需求:点击按钮直接关闭应用,回到系统桌面。 本…...
从SRCNN到WDSR:图像超分辨率核心演进路径与关键技术剖析
1. 图像超分辨率技术的基础认知 当你用手机拍下一张照片却发现放大后模糊不清时,图像超分辨率技术就能派上用场。这项技术就像给图像装上"显微镜",能将低分辨率图片转化为清晰的高分辨率版本。不同于简单的插值放大,它通过深度学习…...
Beyond ChatGPT: Building Physical World AI with PaLM-E and VoxPoser (Hands-on Guide)
从语言模型到物理世界操作:PaLM-E与VoxPoser实战指南 当ChatGPT在对话中展现出惊人的语言理解能力时,一个更激动人心的问题浮现:如何让AI系统突破虚拟界限,在物理世界中执行复杂任务?这正是PaLM-E与VoxPoser这类多模态…...
如祺出行2025年营收53亿:网约车贡献97%收入 净亏2.9亿
雷递网 乐天 4月1日如祺出行科技有限公司(股份代号:9680)日前发布截至2025年12月31日的财报。财报显示,如祺出行2025年营收为52.86亿元,较上年同期的24.63亿元增长114.6%。如祺出行收入主要来自网约车服务,…...
SSD用久了为啥会变慢?深入NAND Flash的‘写放大’与‘磨损均衡’,教你看懂SMART数据避坑
SSD性能下降的真相:从写放大到磨损均衡的深度解析 你是否遇到过这样的困扰——新买的SSD速度飞快,但用了一段时间后,系统响应明显变慢,开机时间延长,文件传输速度大不如前?这种现象并非偶然,而是…...
AG-UI协议实战:构建智能体驱动的动态前端交互系统
1. AG-UI协议:智能体与前端交互的新范式 第一次听说AG-UI协议时,我正在为一个电商项目头疼——后台AI生成的商品推荐总需要手动同步到前端,代码里到处是setState和事件监听。直到发现这个协议,才明白原来智能体和前端可以像两个老…...
泰金新能科创板上市:市值79亿 预计第一季净利降幅超45%
雷递网 雷建平 3月31日西安泰金新能科技股份有限公司(简称:“泰金新能”,股票代码:“688813”)今日在上交所上市。泰金新能发行价为26.28元/股,发行4000万股,募资总额为10.51亿元。泰金新能开盘…...
新手福音:用快马平台生成wsl安装ubuntu图文教程,轻松入门linux开发
最近在学Linux开发,发现Windows Subsystem for Linux(WSL)真是个神器,特别是搭配Ubuntu使用,既保留了Windows的便利性,又能体验原汁原味的Linux环境。不过刚开始安装配置时踩了不少坑,后来用Ins…...
小白也能玩转AI翻译:translategemma图文翻译快速入门指南
小白也能玩转AI翻译:translategemma图文翻译快速入门指南 1. 认识translategemma:你的私人翻译助手 translategemma-12b-it是Google基于Gemma 3模型开发的开源翻译模型,它能同时处理文本和图片中的文字翻译。想象一下,你正在国外…...
提升效率:用快马AI一键生成windows18-hd19风格的CSS组件库
提升效率:用快马AI一键生成windows18-hd19风格的CSS组件库 最近在做一个需要windows18-hd19设计风格的项目,这种风格的界面元素特别多,手动编写样式简直让人头大。光是调色板、阴影效果这些基础样式就要折腾半天,更别说那些复杂的…...
