JMeter+Ant+Jenkins构建接口报告(无人驾驶版)

 展示结果:

uc浏览器打开测试报告,绿色显示脚本结果

搭建操作步骤如下

1.jemter写好脚本

2.下载并配置ant环境变量:加上activation.jar、commons-lang3-3.8.1.jar、mail.jar 这3个包

mail.jar需要引用到jmeter

3.下载安装Jenkins 并进行构建

一:下载地址 Apache Ant - Binary Distributions,下载后解压到指定位置即可,

Ant的意义是:配置Jmeter:用ant构建命令来调动执行jmeter接口测试,并生成测试报告

二:jmeter extras目录下的ant-jmeter-1.1.1.jar文件拷贝到ant安装目录下的lib文件夹中

1.安装ant的目录下的lib中缺少jar包(activation.jar、commons-lang3-3.8.1.jar、mail.jar

在这里插入图片描述

2.下载完成并放在jmeter的lib中 

重点:进入apache-jmeter-5.4.3\apache-jmeter-5.4.3\extras的build文件中修改

build文件直接复制成如下,改下邮箱号码就可以用了,铁子,还有文件路径得改成你的对应的

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter" default="run" basedir=".">

<property name="jmeterPath" value="C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3" />  

<!-- 邮箱相关 -->

<property name="mailhost" value="smtp.qq.com" />  

<property name="mailsubject" value="接口自动化测试报告" />  

<property name="mail_port" value="465" />

<property name="username" value="xx@qq.com" />

<property name="password" value="qq邮箱密钥" />

<property name="mailfrom" value="xx@qq.com" />

<property name="mail_to" value="xx@meprestamo.mx"/>

<property name="message" value="HI!,详情请看附件(建议用UC/Edge浏览器打开),请查收~~" />

<tstamp>

    <format property="time" pattern="_yyyy_MMdd_HHmmss" />

</tstamp>

<property name="basedirectory" value="C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3" />  

<!-- 需要改成自己本地的jmeter目录 -->

<property name="jmeter.home" value="${jmeterPath}" />  

<!-- 报告标题名称 -->

<property name="report.title" value="接口报告" />  

<!-- jmeter生成jtl格式的结果报告的路径-->  

<property name="jmeter.result.jtl.dir" value="${basedirectory}\report" />  

<!-- jmeter生成html格式的结果报告的路径-->

<property name="jmeter.result.html.dir" value="${basedirectory}\report" />  

<!-- 生成的报告的前缀-->    

<property name="ReportName" value="APIreport" />  

<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" />



<!-- jmeter生成jtl/html格式的结果报告的路径

<property name="jmeter.result.dir" value="C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3\result" />  -->

<!-- 生成的报告的前缀

<property name="ReportName" value="完件接口" />

<property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl"/>

<property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" />-->



<target name="run">

  <antcall target="test"/>  

  <antcall target="report"/>  

  <antcall target="sendEmail"/>

</target>



<target name="test">

    <echo>API_TEST</echo>

  <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>  

  <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">

  <!-- 要执行的测试脚本,"*.jmx"指包含此目录下的所有jmeter脚本-->

    <testplans dir="C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3\bin" includes="*.jmx"/>  

    <property name="jmeter.save.saveservice.output_format" value="xml"/>

  </jmeter>

</target>

<!--html报告中时间显示为NAN,原因是ant中确实了两个lib库,xalan-2.7.2.jar和serializer-2.7.2.jar,将这两个库拷贝到ant的lib目录下-->

<path id="xslt.classpath">

  <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  

  <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>

</path>

<!--生成HTML测试报告-->

<target name="report">

    <echo>API_TEST</echo>

    <tstamp>

        <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/>

    </tstamp>  

    <xslt

        classpathref="xslt.classpath"

        force="true"

        in="${jmeter.result.jtlName}"

            out="${jmeter.result.htmlName}"

            style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl"> <!-- 报告模板路径 -->

        <param name="dateReport" expression="${report.datestamp}"/>

        <param name="titleReport" expression="${report.title}:${report.datestamp}"/>

    </xslt>

    <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->

    <copy todir="${jmeter.result.html.dir}">

        <fileset dir="${jmeter.home}/extras">

            <include name="collapse.png" />

            <include name="expand.png" />

        </fileset>

    </copy>

</target>

<path id="lib_classpath">

    <fileset dir="${basedir}/">

        <include name="mail*.jar" />

        <include name="activation*.jar" />

        <include name="commons-email*.jar" />

        <include name="ant-contrib*.jar" />

    </fileset>

 </path>

 <!--自动发送邮件-->

<target name="sendEmail">

    <echo>发送自动化测试报告</echo>

    <mail

        mailhost="${mailhost}"

        mailport="${mail_port}"

        charset="UTF-8"

        ssl="true"

        subject="${mailsubject}"

        messagemimetype="text/html"

        user="${username}"

        password="${password}"  

        tolist="${mail_to}">

        <from address="${mailfrom}" />

            <attachments>

                <fileset dir="${jmeter.result.html.dir}">

                    <include name="${ReportName}${time}.html" />

                    <include name="collapse.png" />

                    <include name="expand.png" />

                    <!-- -->

                </fileset>

            </attachments>

            <message>${message}</message>

    </mail>

</target>

</project>

修改jmeter.properties文件,与此保持一致

修改完成后,进入C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3\extras

 输入命令  ant run

二、联合使用(ant+jmeter+jenkins)搭建自动化接口测试框架

1、进入jenkins设置jdk / ant的全局变量;兄弟们一定要设置啊,不然完犊子了

 

 

新建一个项目--构建设置如下

就跑起来了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CKA 基础操作教程(六)

Kubernetes Deployments 理论学习 在 Kubernetes 中&#xff0c;Deployments 是一种资源对象&#xff0c;用于定义和管理容器化应用程序的部署过程&#xff0c; 容器化应用的声明式定义&#xff1a;使用 Deployments &#xff0c;可以声明性地定义应用程序的部署配置&#x…

Vue使用高德地图

1.在高德平台注册账号 2.我的 > 管理管理中添加Key 3.安装依赖 npm i amap/amap-jsapi-loader --save 或 yarn add amap/amap-jsapi-loader --save 4.导入 AMapLoade import AMapLoader from amap/amap-jsapi-loader; 5.直接上代码&#xff0c;做好了注释&#xff08;初始化…

初识ES(ES的基本概念、倒排索引、索引和文档的CRUD)

1、ES是什么&#xff1f; 一个开源的分布式搜索引擎&#xff0c;可以用来实现搜索、日志统计、分析、系统监控等功能。ES的底层是基于Lucene实现的。 Lucene是一个Java语言的搜索引擎类库。 什么是elastic stack&#xff08;ELK&#xff09;&#xff1f; elasticsearch。存储、…

实验室用进口高纯聚四氟乙烯材质PFA方盘抗酸碱耐高温PFA托盘

PFA方盘又称托盘&#xff1a;耐高温、耐腐蚀。 进口透明可溶性聚四氟乙烯方盘。可应用于成膜实验&#xff0c;样品液体脱漏等。能放在电热板上直接加热使用&#xff0c;也可以用于烘箱烘干&#xff0c;实验室腐蚀性样品的转移和搬运&#xff0c;防止腐蚀性液体洒落。 产品特性…

Python常用算法--解决数据结构问题【附源码】

一、约瑟夫环问题 解释:约瑟夫环(Josephus Problem)是一个著名的数学问题,它描述了一个关于围坐一圈的人进行游戏的场景。游戏规则是从一个人开始,顺序报数,每报到特定数目的人将会被排除出圈子,然后从被排除的下一人开始继续报数,游戏继续进行直到最后剩下一个人。 …

ETL工具-nifi干货系列 第九讲 处理器EvaluateJsonPath,根据JsonPath提取字段

1、其实这一节课本来按照计划一起学习RouteOnAttribute处理器&#xff08;相当于java中的ifelse&#xff0c;switch case 控制语句&#xff09;&#xff0c;但是在学习的过程中遇到了一些问题。RouteOnAttribute 需要依赖处理器EvaluateJsonPath&#xff0c;所以本节课我们一起…

如何确定螺栓的载荷和扭矩——SunTorque智能扭矩系统

智能扭矩系统-智能拧紧系统-扭矩自动控制系统-SunTorque 螺栓作为一种常见的紧固件&#xff0c;广泛应用于各种机械和设备中。正确确定螺栓的载荷及其扭矩对于确保设备的安全运行和延长其使用寿命至关重要。本文将探讨如何确定螺栓的载荷及其扭矩&#xff0c;帮助读者更好地理…

将excel,csv中合并块中某条记录的值应用到整个块(使用多行的值,来填充新列数据)。

背景描述 在excel中使用其它列的值&#xff0c;根据某种计算规则来填充另一列&#xff08;或新列&#xff09;很容易实现。但是如果需要根据合并块中的多行来填充列时&#xff0c;就不容易实现&#xff0c;由于对excel不是太常用&#xff0c;因此这里使用的命令行工具实现的。…

K8s学习三(Pod与探针)

深入学习Pod Pod配置文件 写一个自己的配置文件,nginx-po.yaml apiVersion: v1 #api文档版本 kind: Pod #资源类型对象&#xff0c;也可以配置为像Development&#xff0c;StatefulSet这一类的对象 metadata: # Pod相关的元数据&#xff0c;用于描述Pod的数据name: nginx-po…

4月7号总结

java学习 一.正则表达式 定义&#xff1a;正则表达式是一种用于描述字符串模式的表达式&#xff0c;通常被用于文本搜索、匹配和替换。它是一种强大的工具&#xff0c;可以在文本处理和文本分析中进行复杂的匹配和操作。 通过字符串引用里面的方法matches&#xff0c;然后执行…

【Web】纯萌新的CISCN刷题记录(1)

目录 [CISCN 2019华东南]Web11 [CISCN 2019华北Day2]Web1 [CISCN 2019初赛]Love Math [CISCN 2022 初赛]ezpop [CISCN 2019华东南]Double Secret [CISCN 2023 华北]ez_date [CISCN 2019华北Day1]Web1 [CISCN 2019华东南]Web4 [CISCN 2019华北Day1]Web2 [CISCN 2023 …

【Django开发】前后端分离美多商城项目第6篇:用户部分,1. 业务说明【附代码文档】

美多商城项目4.0文档完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;美多商城&#xff0c;项目准备1.B2B--企业对企业,2.C2C--个人对个人,3.B2C--企业对个人,4.C2B--个人对企业,5.O2O--线上到线下,6.F2C--工厂到个人。项目准备&#xff0c;配置1. 修改set…

微服务学习2

目录 一.网关路由 1.1.认识网关 1.2网关快速入门 1.2.1.创建项目 1.2.2.引入依赖 1.2.3.启动类 1.2.4.配置路由 1.3.路由过滤 二.网关登录校验 2.1网关请求处理流程 2.2网关过滤器 2.2.2网关过滤器 2.3自定义GlobalFilter 2.4.登录校验 2.4.1.JWT工具 2.4.2.登…

网络安全之代码签名证书申请

代码签名&#xff0c;作为一种数字安全机制&#xff0c;对于软件开发、分发及用户使用环节具有至关重要的意义。以下从六大方面阐述代码签名必不可少的重要性&#xff1a; 确保代码来源可信&#xff1a; 代码签名如同软件的“身份证”&#xff0c;通过数字证书对开发者身份进…

【每日刷题】Day4

【每日刷题】Day4 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; 目录 1. 83. 删除排序链表中的重复元素 - 力扣&#xff08;LeetCode&#xff09; 2. 88. 合并两个有序数组 - 力扣&#xff08;LeetCode&…

(Git) gitignore基础使用

文章目录 前言.gitignore 模式匹配注释 #转义 \直接匹配任意字符匹配 *单个字符匹配 ?目录分割 /多级目录 **范围匹配 []取消匹配 ! 检查是否生效父子文件END 前言 Git - gitignore Documentation (git-scm.com) 在使用git管理的项目中&#xff0c;可以通过.gitignore文件管理…

蓝桥杯考前复习三

1.约数个数 由乘法原理可以得出&#xff1a; import java.util.*; public class Main{static int mod (int)1e9 7;public static void main(String[] args){Map<Integer,Integer> map new HashMap<>(); //创建一个哈希表Scanner scan new Scanner(System.in);i…

FJSP:美洲狮优化算法(Puma Optimizar Algorithm ,POA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题&#xff08;Flexible Job Shop Scheduling Problem&#xff0c;FJSP&#xff09;&#xff0c;是一种经典的组合优化问题。在FJSP问题中&#xff0c;有多个作业需要在多个机器上进行加工&#xff0c;每个作业由一系列工序组成&a…

LangChain-12 Routing By Semantic Similarity 让GPT根据不明确的问题 自动选择工具集 根据语义自动路由

问题背景 平常我们设计程序的时候&#xff0c;会这么写&#xff1a; // 随便举例 String type paramDTO.getType(); if (type.equals("吃饭")) {// do } else if (type.equals("喝水")) {// do } else {// do }此时如果type传入的不是数字&#xff0c;那…

C++:MySQL的事务概念与使用(四)

1、事务的概念 定义&#xff1a;事务是构成单一逻辑工作单元的操作集合&#xff0c;要么完整的执行&#xff0c;要么完全不执行。无论发生何种情况&#xff0c;DBS必须保证事务能正确、完整的执行。 性质&#xff1a;事务的四大ACID性质。 原子性(Atomicity)&#xff1a;一个事…