当前位置: 首页 > news >正文

Ubuntu部署jmeter与ant

为了整合接口自动化的持续集成工具,我将jmeter与ant都部署在了Jenkins容器中,并配置了build.xml

一、ubuntu部署jdk

1:先下载jdk-8u74-linux-x64.tar.gz,上传到服务器,这里上传文件用到了ubuntu 下的 lrzsz。

ubuntu下直接执行 sudo apt-get install lrzsz 

lrzsz 拆分为两个命令,sz和rz

   sz命令发送文件到本地:

   # sz filename

   rz命令本地上传文件到服务器

   # rz

   我在/user/local 目录下新建java文件夹,在java文件夹下执行 rz 命令,直接从本地把jdk包传到服务器上

2:解压tar包。

   执行 tar -xvf jdk-8u74-linux-x64.tar.gz ,解压jdk包,生成 jdk1.8.0_74 目录

3:配置环境变量

 vi /etc/profile

   在最后面增加两行

      export JAVA_HOME=/usr/local/java/jdk1.8.0_74

        export PATH=$JAVA_HOME/bin:$PATH

   执行命令:source /etc/profile,配置的环境变量生效

4:查看是否安装成功,执行命令:java-version

二:安装jmeter

  1、将本地的Jmeter文件打包成zip文件:apache-jmeter-3.2.zip,再用rz命令上传到服务器

  2、在服务器解压缩,生成jmeter-3.0目录

  3、安装unzip:apt-get install unzip

  4、解压缩:unzip apache-jmeter-3.0_json.zip

  5、将jmeter-3.0目录 放到 /usr/local下

  6、配置Jmeter环境变量。vi /etc/profile,再添加如下变量

      export JMETER= /usr/local/apache-jmeter-3.2

   export PATH=$JMETER/bin:$PATH

  7、执行命令:source /etc/profile,配置的环境变量生效

  8、检查安装结果:jmeter -v

三、脚本试运行

    执行命令:# jmeter -n -t /tmp/apache-jmeter-3.2/bin/lsmsp.jmx -l log.jtl,查看结果

       参数说明:

      -n:以非GUI方式运行脚本

                     -t:后面接脚本名称

                     -l:后面接日志名称,保存运行结果

  通过 cat log.jtl 查看结果日志

四、ubuntu部署Ant

  1:将 apache-ant-1.9.9 安装到ubuntu上的/user/local目录下,方法同上面的jmeter部署

  2:配置Ant环境变量

    vi /etc/profile

    在末尾添加两句

    export Ant=/usr/local/apache-ant-1.9.9     export PATH=$Ant/bin:$PATH

    source /etc/profile 使配置的环境变量生效

    输入 ant -v查看ant版本

  3:将jmeter/extras文件夹下的ant-jmeter-1.1.3.jar文件拷贝到ant/lib路径下

五、配置build.xml文件

build.xml文件配置的目的就是让ant去取代码执行构建。这里有两种方式构建

1:脚本直接上传到jmeter的目录下,通过jenkins的ant插件直接去构建,文件内容如下

<?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="/usr/local/apache-jmeter-3.2" /><!-- jmeter生成报告的路径--><property name="jmeter.result.jtl.dir" value="/usr/local/apache-jmeter-3.2/bin/demo.jmx" /><!-- 生成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="/usr/local/apache-jmeter-3.2/bin/demo" includes="demo.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>

2:xml文件中配置gitlab取代码的路径。jenkins通过git插件将脚本从gitlab中取出来,保存到一个本地路径中,再去执行构建

<?xml version="1.0" encoding="UTF-8"?><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="/usr/local/apache-jmeter-3.2" /><!-- jmeter生成jtl、html格式的结果报告的路径--> <property name="jmeter.result.dir" value="/usr/local/apache-jmeter-3.2/resultLog/${env.BUILD_ID}" /><!-- 生成的报告的前缀-->  <property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl" /><property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" /><!-- GIT拉取到本地目录的路径 --><property name="githome" value="${env.WORKSPACE}" /><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}"><!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本,includes里的文件也可以用逗号,隔开--><testplans dir="${githome}" includes="demo.jmx" /><property name="jmeter.save.saveservice.output_format" value="xml"/></jmeter></target><path id="xslt.classpath"><fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/><fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/></path><target name="report"><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}"/></xslt><!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> <copy todir="${jmeter.result.dir}"><fileset dir="${jmeter.home}/extras"><include name="collapse.png" /><include name="expand.png" /></fileset></copy></target>
</project>

构建结果

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

相关文章:

Ubuntu部署jmeter与ant

为了整合接口自动化的持续集成工具&#xff0c;我将jmeter与ant都部署在了Jenkins容器中&#xff0c;并配置了build.xml 一、ubuntu部署jdk 1&#xff1a;先下载jdk-8u74-linux-x64.tar.gz&#xff0c;上传到服务器&#xff0c;这里上传文件用到了ubuntu 下的 lrzsz。 ubunt…...

如何使用 RestTemplate 进行 Spring Boot 微服务通信示例?

在 Spring Boot 微服务架构中&#xff0c;RestTemplate 是一个强大的工具&#xff0c;用于简化微服务之间的通信。下面是一个简单的示例&#xff0c;演示如何使用 RestTemplate 进行微服务之间的 HTTP 通信。 首先&#xff0c;确保你的 Spring Boot 项目中已经添加了 spring-b…...

新开普掌上校园服务管理平台service.action RCE漏洞复现 [附POC]

文章目录 新开普掌上校园服务管理平台service.action RCE漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 新开普掌上校园服务管理平台service.action RCE漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿…...

滤波器、卷积核与内核的关系

上来先总结举例子解释 上来先总结 内核&#xff08;kernel&#xff09;是一个二维矩阵&#xff0c;长*宽&#xff1b;滤波器&#xff08;filter&#xff09;也叫卷积核&#xff0c;过滤器。是一个三维立方体&#xff0c;长 宽 深度&#xff0c; 其中深度便是由多少张内核构成…...

沉默是金,寡言为贵

​ 佛说&#xff1a;“人受一句话&#xff0c;佛受一柱香。”佛教的十善&#xff0c;其中有关口德就占了四样&#xff1a;恶口、妄语、两舌、绮语&#xff0c;可见口德是很重要的。言为心声&#xff0c;能说出真心的话&#xff0c;必然好听&#xff1b;假如说话言不由衷&#x…...

【网络奇遇之旅】:那年我与计算机网络的初相遇

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; 计算机网络 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 一. 前言二. 计算机网络的定义三. 计算机网络的功能3.1 资源共享3.2 通信功能3.3 其他功能 四. 计算机网络…...

量化误差的测量

因为转换的精度有限&#xff0c;所以将模拟值数字化时会不可避免地出现量化误差。量化误差由转换器及其误差、噪声和非线性度决定。当输入信号和计数器时基有区别时就会产生量化误差。根据输入信号的相位和计数器时基的匹配程度&#xff0c;计数器有下列三种可能性&#xff1a;…...

8年测试工程师分享,我是怎么开展性能测试的(基础篇)

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…...

微服务API网关Spring Cloud Gateway实战

概述 微服务网关是为了给不同的微服务提供统一的前置功能&#xff1b;网关服务可以配置集群&#xff0c;以承载更多的流量&#xff1b;负载均衡与网关互相成就&#xff0c;一般使用负载均衡&#xff08;例如 nginx&#xff09;作为总入口&#xff0c;然后将流量分发到多个网关…...

uniapp打包ios有时间 uniapp打包次数

我们经常用的解决方案有,分包,将图片上传到服务器上,减少插件引入。但是还有一个方案好多刚入门uniapp的人都给忽略了,就是在源码视图中配置,开启分包优化。 1.分包 目前微信小程序可以分8个包,每个包的最大存储是2M,也就是说你文件总体的大小不能超过16M,每个包的大…...

【笔记+代码】JDK动态代理理解

代码地址 https://github.com/cmdch2017/JDKproxy.git/ 我的理解 我的理解是本身service-serviceImpl结构&#xff0c;新增一个代理对象proxy&#xff0c;代理对象去直接访问serviceImpl&#xff0c;在proxy进行事务的增强操作&#xff0c;所以代理对象实现了接口。如何实现…...

Java八股文面试全套真题【含答案】-Vue篇

以下是一些关于Vue的经典面试题以及它们的答案&#xff1a; 什么是Vue.js&#xff1f;它有什么特点&#xff1f; 答案&#xff1a;Vue.js是一个用于构建用户界面的渐进式框架。它的特点包括双向数据绑定、组件化、虚拟DOM等。什么是Vue.js&#xff1f;它有什么特点&#xff1f…...

介绍比特币上的 sCrypt 开发平台

最强大的基础设施和工具套件&#xff0c;可轻松构建和扩展您的 dApp 杀手级应用在哪里&#xff1f; 尽管比特币在小额支付、国际汇款和供应链管理等广泛用例中具有颠覆性潜力&#xff0c;但在推出 14 年后&#xff0c;我们还没有看到一款非常受欢迎并被主流采用的杀手级应用。 …...

什么是路由抖动?该如何控制

路由器在实现不间断的网络通信和连接方面发挥着重要作用&#xff0c;具有所需功能的持续可用的路由器可确保其相关子网的良好性能&#xff0c;由于网络严重依赖路由器的性能&#xff0c;因此确保您的路由器不会遇到任何问题非常重要。路由器遇到的一个严重的网络问题是路由抖动…...

2023SICTF-web-白猫-RCE

001 分析题目 题目名称&#xff1a; RCE 题目简介&#xff1a; 请bypass我&#xff01; 题目环境&#xff1a; http://210.44.151.51:10088/ 函数理解&#xff1a; #PHP str_replace() 函数 <!DOCTYPE html> <html> <body><?php echo str_replace("…...

1.用数组输出0-9

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 四、举一反三一、题目描述 二、题目分析 三、解题 程序运行代码 总结 前言 本系列为数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 用数组输出0-9 二、题目分析 数组下标从0开始 用数组…...

Selenium 元素不能定位总结

目录 元素不能定位总结: 1、定位语法错误&#xff1a; 定位语法错误&#xff0c;如无效的xpath&#xff0c;css selector,dom路径错误&#xff0c;动态dom 定位语法错误&#xff0c;动态路径&#xff08;动态变化&#xff09; 定位策略错误&#xff0c;如dom没有id用id定位…...

1-2 非阻塞延时实现LED闪烁功能(累计定时中断次数)--多路软件定时器的功能实现

单路 #include <reg51.h> #include "delay.h"#define LED_SHINE_TIME 1000//1sunsigned int g_u16_timer_cnt;//在定时器的基础上进行计数 unsigned char g_u8_time_flag;//时间到的标志 unsigned char g_u8_timer_soft_enable;//定时器的软件开关sbit LED0P1…...

数据类型及强制转换

数据类型范围&#xff08;基本&#xff09; 数据类型占内存字节数表示范围数量级char&#xff08;signed char&#xff09;1-128~1272unsigned char10~2552short int&#xff08;signed short int&#xff09;2-32,768~32,7674unsigned short int20~65,5354int&#xff08;sig…...

Python----高阶函数

高阶函数&#xff1a;把函数作为参数传入&#xff0c;这样的函数称为高阶函数&#xff0c;高阶函数是函数式编程的体现。函数式编程就是指这种高度抽象的编程范式。 高阶函数的由来 在Python中&#xff0c;abs()函数可以完成对数字求绝对值计算。 ① 正数的绝对值是它本身 ②…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...