Jenkins+Ant+Jmeter接口自动化集成测试

news2024/11/26 4:57:17
一、Jenkins安装配置

1、安装配置JDK1.6+环境变量;

2、下载jenkins.war,放入C:\jenkins目录下,目录位置随意;

         Jenkins启动方法:

         cmd进入Jenkins目录下,执行java -jar jenkins.war

         浏览器输入:localhost:8080可以访问Jenkins表示配置成功;

二、Ant安装配置

1、下载apache-ant-1.9.6;放入E盘,如E:\apache-ant-1.9.6,目录位置随意

2、配置环境变量:

ANT_HOME    E:\apache-ant-1.9.6

path          E:\apache-ant-1.9.6

classpath      E:\apache-ant-1.9.6

3、验证Ant配置是否成功;

cmd下输入Ant提示如下表示配置成功:

Buildfile: build.xml does not exist!

Build failed

三、配置xml文件

1、Jmeter目录位置:D:\tools\apache-jmeter-2.11,在jmeter中建立demo文件夹,demo中创建build.xml文件,需要配置Jmeter目录、生成报告的路径,报告的格式和脚本目录,内容如下:

<?xml version="1.0" encoding="UTF8"?>

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

    <tstamp>

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

    </tstamp>

    <property environment="env"/>

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

    <!-- 本地的 Jmeter 目录-->

    <property name="jmeter.home" value="D:\tools\apache-jmeter-2.11" />

    <!-- jmeter生成报告的路径-->

    <property name="jmeter.result.dir" value="${env.WORKSPACE}/results/${env.BUILD_ID}" />

    <!-- 生成jtl、html格式的报告,以构建ID命名--> 

    <property name="jmeter.result.jtlName" value="${env.WORKSPACE}/results/${env.BUILD_ID}/${env.BUILD_ID}.jtl" />

    <property name="jmeter.result.htmlName" value="${env.WORKSPACE}/results/${env.BUILD_ID}/${env.BUILD_ID}.html" />

    <target name="run">

        <echo message="start..."/>

        <antcall target="clean" />                       

        <antcall target="test" />

        <antcall target="report" />

    </target>

    <target name="clean">

        <mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />

    </target>

    <target name="test">

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

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

            <!-- 声明要运行的脚本和此目录下的jmeter脚本-->

            <testplans dir="D:\tools\apache-jmeter-2.11\demo" includes="login.jmx" />

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

        </jmeter>

    </target>

    <target name="report">

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

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

              style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />

    </target>

</project>

其中${env.WORKSPACE}/results/${env.BUILD_ID}/${env.BUILD_ID}.jtl和

${env.WORKSPACE}/results/${env.BUILD_ID}/${env.BUILD_ID}.html生成的报告位置在:

C:\Users\Administrator\.jenkins\jobs\test\workspace\results目录下,每次进行Jenkins构建的时候,都会生成一个新的构建编号目录和结果报告;

2、将jmeter测试脚本放入demo目录下,当然放入其他位置也可以,build.xml中需要配置jmeter脚本存放路径的对应位置。

四、构建Jenkins项目

1、启动Jenkins,浏览器输入localhost:8080进入管理界面,点击新建;

2、输入项目名称:Test_demo,选择构建一个自由风格的软件项目,点击OK;

 

3、勾选丢弃旧的构建,配置如下:

 

4、构建,增加构建步骤选择Invoke Ant,Targets输入run,点击高级,Build File输入build.xml文件路径,保存;

 

5、返回主页可以看到新建的项目,点击构建即可启动测试;

 

6、左侧可以看到启动状态及构建编号;

 

7、进入构建编号目录C:\Users\Administrator\.jenkins\jobs\Test_demo\workspace\results\60下即可查看jmeter脚本运行的报告;

五、使用Tomcat查看测试结果:

1、修改build.xml文件html报告生成的路径,report文件在demo路径下,修改如下:

<property name="jmeter.result.htmlName" value="report/report.html" />

2、配置为tomcat的虚拟目录

         a、配置server.xml

    打开Tomcat目录下的/conf/server.xml文件,在Host标签之间加入下面内容。

 <Context path="/test/report" docBase="/test/report " reloadable="true" debug="0"/>

    path:工程名称+文件路径,当访问path目录下的文件时,实则访问docBase目录下的文件。

    docBase:文件的真实路径。注意这里如果有文件长传,则将上传的文件路径设置为docBase,而不是path。

         b、修改tomcat端口

         Tomcat端口8080已经被Jenkins占用,则需要修改端口,打开Tomcat目录下的/conf/server.xml文件,将connector port修改成8088

<Connector port="8088" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" /

         c、配置web.xml

  打开Tomcat目录下的/conf/web.xml,将listings的属性设置为True。

<servlet>

        <init-param>

            <param-name>listings</param-name>

            <param-value>true</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

访问localhost:8088/report即可访问结果报告。

当然Jenkins的功能远不止这些,还有很多强大的地方等着你去发现。

Python接口自动化测试零基础入门到精通(2023最新版)

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

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

相关文章

Server Name Indication(SNI),HTTP/TLS握手过程解析

Server Name Indication&#xff08;SNI&#xff09;是一种TLS扩展&#xff0c;用于在TLS握手过程中传递服务器的域名信息。在未使用SNI之前&#xff0c;客户端在建立TLS连接时只能发送单个IP地址&#xff0c;并且服务器无法知道客户端请求的具体域名。这导致服务器需要使用默认…

Spring中动态代理设计模式

目录 一、什么是动态代理 二、动态代理开发步骤 2.1 搭建开发环境 2.2 具体过程 三、动态字节码技术 四、动态代理开发简化代理开发 一、什么是动态代理 其实不管是静态代理还是动态代理其本质都是一样的&#xff0c;都是通过代理类为目标类增加额外功能&#xff0c;从而方便目…

Day7力扣打卡

打卡记录 合法分组的最少组数&#xff08;贪心&#xff09; 链接 举例说明&#xff0c;假设 c n t [ x ] 32 cnt[x]32 cnt[x]32&#xff0c; k 10 k10 k10&#xff0c;那么 32 10 10 10 2 321010102 321010102&#xff0c;多出的 2 2 2 可以分成两个 1 1 1&#xf…

Verilog基础:$fopen和$fclose系统函数、任务的使用

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 $fopen和$fclose是两个用于打开和关闭文件的系统函数、任务。最初&#xff0c;在Verilog-1995标准中&#xff0c;最多只能同时打开32个文件&#xff0c;其所使用的…

Flink部署模式及核心概念

一.部署模式 1.1会话模式&#xff08;Session Mode&#xff09; 需要先启动一个 Flink 集群&#xff0c;保持一个会话&#xff0c;所有提交的作业都会运行在此集群上&#xff0c;且启动时所需的资源以确定&#xff0c;无法更改&#xff0c;所以所有已提交的作业都会竞争集群中…

2023/10/22总结

项目上 登录注册忘记密码已经全部完善——连接数据库&#xff0c;发送验证码等 把ER图和项目功能点也给做完了&#xff08;可能后期还需要修改 &#xff0c;因为问题会在实践的时候出现&#xff09; 功能点图 刷题记录 接下来的任务是争取早日完成这个项目。

图论04-【无权无向】-图的广度优先遍历BFS

文章目录 1. 代码仓库2. 广度优先遍历图解3.主要代码4. 完整代码 1. 代码仓库 https://github.com/Chufeng-Jiang/Graph-Theory 2. 广度优先遍历图解 3.主要代码 原点入队列原点出队列的同时&#xff0c;将与其相邻的顶点全部入队列下一个顶点出队列出队列的同时&#xff0c;将…

Python基础入门例程4-NP4 读入整数数字

描述 在学会读入字符串以后&#xff0c;小白还想要读入整数&#xff0c;请你帮他使用input函数读入数字并输出数字与变量类型。 输入描述&#xff1a; 输入只有整数。 输出描述&#xff1a; 将输入的数字输出&#xff0c;同时换行输出变量类型。 示例1 输入&#xff1a; …

《算法通关村第二关黄金挑战一一K个一组反转》

《算法通关村第二关黄金挑战一一K个一组反转》 描述 每 k 个节点一组进行翻转&#xff0c;请你返回翻转后的链表。k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 解法 头插法 理解…

【超级基础版】十进制与二进制的转换

目录 一、为什么是二进制&#xff1f; 二、二进制的加法和乘法 三、二进制向十进制转换 四、十进制整数向二进制转换 五、十进制小数向二进制小数的转换 六、八进制和十六进制的引入 一、为什么是二进制&#xff1f; 我们知道电脑的数据本质上是0和1&#xff0c;就是我们…

已更新!c++第四章知识点合集(自定义函数的格式和使用方法详解, #include,函数的嵌套 递归,局部变量与全局变量的区别等等)

c知识点合集已经完成欢迎前往主页查看&#xff0c;点点赞点点关注不迷路哦 点我进入c第一章知识点合集 MYSQL知识点持续更新中 MYSQL第一章节DDL数据定义语言的操作----点我进入 MYSQL第二章节DDL-数据库操作语言 DQL-数据查询语言----点我进入 MYSQL-第三章节DCL-管理用户&…

库函数qsort的使用

在排序时&#xff0c;我们通常写的函数只能排一种固定的类型&#xff0c;那有没有一种方法可以用来对所有的数据类型&#xff0c;进行排序呢&#xff1f;库函数中的qsort函数就可以实现这种排序。 首先qsort的函数参数有四个&#xff0c;第一个是数组的起始地址(即数组名)&…

【ML】cheatsheet

LR 原理与面试题目DT, Adaboost, GBDT, xgboost 原理 细节 与 例子 https://www.cnblogs.com/createMoMo/p/12635709.html xgboost挺详细的算法原理与例子 https://zhuanlan.zhihu.com/p/660468945 着重lightgbm就xgboost的改善方向 https://zhuanlan.zhihu.com/p/366952043机器…

什么是卷积神经网络?解决了什么问题?

什么是卷积神经网络&#xff1f; 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;是一种深度神经网络模型&#xff0c;主要用于图像识别、语音识别和自然语言处理等任务。它通过卷积层、池化层和全连接层来实现特征提取和分类。 解决了什么问…

pycharm使用Git拉取最新代码(配置了远程服务器)

首先分享一下如何在pycharm设置代理&#xff08;毕竟pull代码往往是从GitHub上&#xff09;。因为即便本地开启了代理&#xff0c;PyCharm并不会自动使用它。需要在PyCharm的设置中手动配置代理。 下面是在PyCharm中设置代理的步骤&#xff1a; 主菜单中选择File > Settin…

Node学习笔记之MySQL基本使用

使用 SQL 管理数据库 其实写接口简单来说就是操作数据库数据&#xff0c;所以我们需要学会数据库的增、删、查、改等基本操作 1. 什么是 SQL SQL&#xff08;英文全称&#xff1a;Structured Query Language&#xff09;是结构化查询语言&#xff0c;专门用来访问和处理数据…

Kubernetes技术与架构-网络 1

基于OSI网络模型&#xff0c;Kubernetes集群的网络策略包括7层负载均衡的网关路由策略&#xff0c;以及4层3层的网络IP地址策略&#xff0c;这些网络策略是保证Kubernetes集群内Pod之间的网络访问的互联互通&#xff0c;本文主要描述Kubernetes集群的网络策略的基本使用方式。 …

基于nodejs+vue旅行社网站系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Linux笔记之diff和vimdiff

Linux笔记之diff和vimdiff code review! 文章目录 Linux笔记之diff和vimdiff一.diff1.1.使用diff比较文件夹1.2.使用diff比较文件1.4.colordiff——带颜色输出差异 二.vimdiff2.1.vimdiff颜色差异2.2.vimfiff调整栏宽2.3.修改颜色变谈&#xff0c;使代码可以看清楚2.4.vimdif…

[AUTOSAR][诊断管理][ECU][$14] 清除诊断相关信息

文章目录 一、简介(1)应用场景(2)清除DTC原理(3) 请求格式二、示例代码(1) 14_cls_dtc_info.c三、 常见bug大揭秘一、简介 根据ISO14119-1标准中所述,诊断服务14主要用于Client向Server(ECU)请求清除诊断相关信息。 (1)应用场景 一般而言,14诊断服务,主要应用场景…