运行 Jmeter 文件生成 HTML 测试报告,我选择 ANT 工具

概述

ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于 Java 环境中的软件开发。
在与 Jmeter 生成的 jmx 文件配合使用中,ant 会完成jmx计划的执行和生成jtl文件,并将jtl文件转化为html页面进行查看。
还可与 Jenkins 配合使用。
优点:跨平台、操作简单、维护简单、集成方便。

依赖

在使用 ant 时请确保已经安装了 java jdk,因为ant的使用需要依赖java环境。
并且需要配置java环境变量。

安装

进入apache-ant 官网并下载 zip 包。https://ant.apache.org/bindownload.cgi
在这里插入图片描述将下载好的 zip 解压。

解压后的 bin 目录是 ant 的程序运行入口,如果没用对 ant 进行环境变量的配置,在 bin 目录中运行bat程序,同样可以达到 build 任务目的。
  在这里插入图片描述

ANT环境变量配置

为了使用起来方便,对 ant 进行环境变量配置。
  在我的电脑 –> 右键属性 –> 高级系统配置 -> 环境变量->系统变量中添加 ant 路径。
  新建系统变量 ANT_HOME = C:\apache-ant-1.9.9
  在这里插入图片描述

  在环境变量PATH的最后面添加一下内容:

;%ANT_HOME%\bin 注意前面的分号。

在这里插入图片描述

校验安装成功

使用 ant -version 对配置进行验证
  在这里插入图片描述
使用
设置

jmeter默认保存的是.csv格式的文件,所以需要设置 bin/jmeter.properties 文件内容,将 jmeter.save.saveservice.output_format=csv 取消注释,并且将csv修改为xml;  在这里插入图片描述
  将apache-jmeter-5.1.1\extras\ant-jmeter-1.1.1.jar拷贝到apache-ant-1.9.9\lib目录下;

这样ant运行时才能找到 “org.programmerplanet.ant.taskdefs.jmeter.JMeterTask” 这个类,从而成功触发JMeter脚本。

新建 build.xml

在存放Jmeter导出的 jmx 目录下,新建build.xml文件,并且编辑内容如下:
在ant运行时会在当前目录下寻找build.xml文件,所以在运行时要确保 build.xml 在当前目录下。

<?xml version="1.0" encoding="utf-8"?>
<project name="Ant-Jmeter-Test" default="all" basedir="."><tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp><!-- 需要改成自己本地的 Jmeter 目录--><property name="jmeter.home" value="F:\yang\apache-jmeter-5.1.1" /><!-- jmeter生成jtl格式的结果报告的路径--><property name="jmeter.result.jtl.dir" value="F:\yang\apache-jmeter-5.1.1\report" /><!-- jmeter生成html格式的结果报告的路径--><property name="jmeter.result.html.dir" value="F:\yang\apache-jmeter-5.1.1\report" /><!-- 生成的报告的前缀 --><property name="ReportName" value="TestReport" /><property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /><property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" /><target name="all"><antcall target="test" /><antcall target="report" /></target><target name="test"><taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /><jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"><!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 --><testplans dir="F:\yang\apache-jmeter-5.1.1\case" includes="*.jmx" /></jmeter></target><target name="report"><xslt 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></project>

如果使用上面 build.xml 内容则需要修改四个地方

修改内容如下图

在这里插入图片描述

  还可以修改报告的名称,如下图标记的地方为测试报告的名称
  在这里插入图片描述
ant 运行 

进入build.xml 所在的目录,在命令行中使用 ant 命令进行运行q
在这里插入图片描述 进入report的 html 目录下查看生成结果
 在这里插入图片描述
  打开 html 报告
  在这里插入图片描述 

但是时间显示为NaN

需要从Jmeter 的 lib 中将 xalan-2.7.2.jar 和 serializer-2.7.2.jar 两个包 copy到 Ant 的 lib 目录下
  重新运行 ant 命令生成报告,结果如下
  在这里插入图片描述

HTML 报告强化
  下载 jmeter.results.shanhe.me.xsl 文件

下载地址: https://pan.baidu.com/s/1MJb3ctyEHS3eWwP_AVZbzg

下载后将文件放在…\apache-jmeter-5.1.1\extras 目录下

修改 build.xml 中 对应 style 的值,替换成下载的文件名,如下图
  在这里插入图片描述
  重新运行 ant 命令生成报告,结果如下
  在这里插入图片描述

比起上个报告,多了好多参数。

是不是很赞

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


             【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

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

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

相关文章

Django架构图

1. Django 简介 基本介绍 Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架 使用 Django&#xff0c;只要很少的代码&#xff0c;Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容&#xff0c;并进一步开发出全功能的 Web 服务 Django 本身…

【车道线】TwinLiteNet 复现过程全纪录

码字不易&#xff0c;喜欢的请点赞收藏&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 论文全文翻译&#xff1a;【freespace】TwinLiteNet: An Efficient and Lightweight Model for Driveable Area and Lane Segmentation_莫克_Cheney的博客-CSDN博客 目录…

安装Jenkins

一、什么是Jenkins Jenkins是一个开源软件项目&#xff0c;是基于Java开发的。我们可以利用Jenkins来实现持续集成的功能。 因为Jenkins是基于Java开发的&#xff0c;所以在安装Jenkins之前首先需要安装Java的JDK。 二、安装Jenkins 在Windows平台上面安装Jenkins共有两种方式…

Python爬虫——解析_jsonpath

jsonpath的安装 pip install jsonpathjsonpath的使用&#xff1a; obj json.load(open(json文件, r, encodingutf-8)) ret jsonpath.jsonpath(obj, jsonpath语法)json文件&#xff1a; { "store": {"book": [{ "category": "末世"…

pgsql查询某表所有字段

查询某表所有字段 查询某表所有字段 select * from information_schema.columns where table_schema模式名称 and table_name表名;模式 查询某表字段个数 select count(*) from information_schema.columns where table_schema模式名称 and table_name表名;

RISC-V基础之浮点指令(包含实例)

RISC-V体系结构定义了可选的浮点扩展&#xff0c;分别称为RVF、RVD和RVQ&#xff0c;用于操作单精度、双精度和四倍精度的浮点数。RVF/D/Q定义了32个浮点寄存器&#xff0c;f0到f31&#xff0c;它们的宽度分别为32位、64位或128位。当一个处理器实现了多个浮点扩展时&#xff0…

逻辑卷扩容

背景 服务器有3个逻辑卷&#xff0c;1个是1T&#xff0c;另外两个是500G&#xff0c;需要将500G的合并扩容为1T 操作 df -Th lsblk -f 查看磁盘大小卸载 /approot umount /approot vim /etc/fstab #注释掉/approot mount -a检查是否卸载完成 vgdisplay -v 找到approot所在…

开窗积累之学习更新版

1. 开窗使用1之 count range between current row and current row 将相同排序字段的值进行函数计算 selectsku_id,substr(create_date,1,7) date_month,order_id,create_date,sku_num*price,sum(sku_num*price) over (partition by sku_id order by substr(create_date,1,7)…

Spring Boot多级缓存实现方案

1.背景 缓存&#xff0c;就是让数据更接近使用者&#xff0c;让访问速度加快&#xff0c;从而提升系统性能。工作机制大概是先从缓存中加载数据&#xff0c;如果没有&#xff0c;再从慢速设备(eg:数据库)中加载数据并同步到缓存中。 所谓多级缓存&#xff0c;是指在整个系统架…

Kotlin重点理解安全性

目录 一 Kotlin安全性1.1 可空类型1.2 安全调用运算符1.3 Elvis 运算符1.4 非空断言运算符1.5 安全类型转换1.6 延迟初始化 一 Kotlin安全性 Kotlin 在设计时采用了一系列策略&#xff0c;旨在尽可能地减少空指针异常&#xff08;NullPointerException&#xff09;的出现。空指…

通用视觉大模型

ViT: Google Swin-Transformer: Microsoft V-MOE: Google SAM&#xff1a; Meta 盘古CV&#xff1a; 华为 文心UFO&#xff1a; 百度 … 预训练大模型 # 导入必要的库和模块 import argparse import json import pathlib# 定义 Stanford Alpaca 使用的 prompt 格式 PROMPT_D…

纯函数 和 函数柯里化 05 (待补充)

加油&#xff0c;今天周二啦&#xff01;&#x1f60d; 文章目录 前言一、js 的纯函数二、副作用三、纯函数的优势四、JavaScript 柯里化五、柯里化作用 - 让函数的职责单一六、柯里化作用 - 逻辑的复用七、自动柯里化函数&#xff08;我没理解&#xff0c;等我理解了再更&…

如何在洛谷自己出的题中出数据

首先&#xff0c;假如你要加1个数据&#xff1a; 打开Dev-c&#xff08;其他也行&#xff09; 填入输入数据&#xff1a; &#xff08;这个数据只是我编的&#xff09; 将这个东东保存为in文件&#xff08;第一个数据就名为001&#xff0c;第二个002&#xff09;&#xff1a…

2022 robocom 世界机器人开发者大赛-本科组(国赛)

RC-u1 智能红绿灯 题目描述&#xff1a; RC-u1 智能红绿灯 为了最大化通行效率同时照顾老年人穿行马路&#xff0c;在某养老社区前&#xff0c;某科技公司设置了一个智能红绿灯。 这个红绿灯是这样设计的&#xff1a; 路的两旁设置了一个按钮&#xff0c;老年人希望通行马路时会…

没有进度管理的项目,都是在做无用功

在项目管理过程中&#xff0c;最大的挑战之一是确保项目实施与计划保持一致。 项目实施过程是一个相对漫长的过程&#xff0c;其中受到许多因素的影响。如果项目实施没有按照原始项目计划进行&#xff0c;很容易导致项目偏离计划&#xff0c;最终可能导致项目停滞或失败。 当…

Maven出现报错 ; Unable to import maven project: See logs for details错误的多种解决方法

问题现象; IDEA版本&#xff1a; Maven 版本 &#xff1a; 3.3.9 0.检查 maven 的设置 &#xff1a;F:\softeware\maven\apache-maven-3.9.3\conf 检查setting.xml 配置 本地仓库<localRepository>F:\softeware\maven\local\repository</localRepository>镜像…

使用 Python 和 Flask 构建简单的 Restful API 第 1 部分

一、说明 我将把这个系列分成 3 或 4 篇文章。在本系列的最后&#xff0c;您将了解使用flask构建 restful API 是多么容易。在本文中&#xff0c;我们将设置环境并创建将显示“Hello World”的终结点。 我假设你的电脑上安装了python 2.7和pip。我已经在python 2.7上测试了本文…

Netty的只读ByteBuf

说明 通过io.netty.buffer.ByteBuf的asReadOnly()函数&#xff0c;可以返回一个只读的ByteBuf&#xff1b;通过isReadOnly()函数&#xff0c;可以判断该ByteBuf是否是只读的。 示例 package com.thb;import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled;publi…

基于java+Apriori算法的网络书城设计与实现

摘要 网络技术的发展市场的销售模式发生了巨大的改变&#xff0c;现在销售网站引用电子商务网站网站设计的基本流程&#xff0c;引用网站网站的开发生命周期法和结构化方法&#xff0c;使用JSP语言来设计并实现了书籍网上销售网站。本书籍销售网站分为前台、后台两个模块。前台…

汽车基础软件新「战争」:群雄混战,谁在抢跑?

中国车用基础软件迎来了发展的黄金窗口期。 当前&#xff0c;汽车电子电气架构正在加速向“跨域融合”的时代演进&#xff0c;汽车软件架构也在加速向SOA架构升级&#xff0c;软硬件分层解耦成为了实现“软件定义汽车”新开发模式的前提。 过去&#xff0c;汽车的所有功能开发…