Ubuntu部署jmeter与ant

news2024/9/28 15:32:19

为了整合接口自动化的持续集成工具,我将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>

构建结果

正在做测试的朋友可以进来交流,群里给大家整理了大量学习资料和面试题项目简历等等....

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

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

相关文章

WordPress 备份插件 BackUpWordPress

WordPress备份是一件必不可少的事情&#xff0c;毕竟自己辛辛苦苦花了很多时间精力写得博客&#xff0c;经验总结&#xff0c;必须保留传承。WordPress备份可以在发生灾难性情况&#xff08;比如劫持或意外锁定&#xff09;下迅速恢复&#xff0c;确保了网站安全。 BackUpWord…

揭示不断增长的预切蔬菜市场:深入研究行业驱动因素和挑战

随着现代社会的快节奏和人们生活压力的增加&#xff0c;越来越多的人选择预制菜作为饮食解决方案&#xff0c;预制菜已经成为餐饮行业的新兴赛道。预制菜的优点包括方便快捷、卫生安全、节省时间、质量可靠&#xff0c;以及丰富的菜品选择和灵活的烹饪和食用方式&#xff0c;满…

基于SpringCloud微服务流动资金贷款业务系统设计与实现

一、引言 由于传统的贷款业务系统并不能够顺应时代的变化,同时在一定程度上对业务发展进行了限制,所以为了适应时代的发展,信息贷款业务应该能够被产品化、丰富化,同时还需要制定一套特定的流程来满足新时代用户的需求。流程化的规范管理是当今银行业务发展的必然趋势,研究并开…

基于Stable Diffusion的2D游戏关卡生成【实战】

接下来的几篇文章将与常规主题有所不同&#xff08;这是在从事通用机器人技术的职业中吸取的教训&#xff09;。 相反&#xff0c;我决定利用我的一些新空闲时间 1 边做边学&#xff0c;并使用所有酷孩子都在谈论的一些很酷的新 ML。 推荐&#xff1a;用 NSDT设计器 快速搭建可…

分割回文串-ii

分割回文串-ii 题目链接&#xff1a;分割回文串-ii 思路&#xff1a;分割字符串s&#xff0c;使得子串都是回文串&#xff0c;最后获得最小分割次数。那么我们可以不断把字符串缩短&#xff0c;判断子串是否可以被分割成回文串&#xff0c;并且最小分割次数。这就是子问题分割…

贝叶斯算法人生

哈喽大家好&#xff0c;我是咸鱼 之前看到过耗子叔写的一篇文章《程序算法与人生选择》&#xff0c;这篇文章中耗子叔结合计算机中的经典算法&#xff08;排序、动态规划等等&#xff09;&#xff0c;让大家在人生道路的选择上获得了一些启发 我最近看了一些关于贝叶斯思想的…

StringBuilder和StringBuffer

StringBuilder和StringBuffer 目录 StringBuilder和StringBuffer特点常见方法练习&#xff1a;测试字符串连接StringBuilder和StringBuffer的区别 特点 封装了char[]数组 是可变的字符序列 提供了一组可以对字符内容修改的方法 常用append()来代替字符串做字符串连接”” 内部…

智慧文旅VR全景展示,深度VR沉浸式体验

导语&#xff1a; 智慧文旅VR全景展示为我们带来了一种独特的旅行体验&#xff0c;让我们可以穿越时空、身临其境地感受历史、艺术和自然的魅力。 在这个数字化时代&#xff0c;智慧文旅VR全景展示成为了旅游界的新宠&#xff0c;它让我们能够以一种前所未有的方式探索世界&am…

看完这篇 教你玩转渗透测试靶机vulnhub—Corrosion:2

Vulnhub靶机Corrosion:2渗透测试详解 Vulnhub靶机介绍&#xff1a;Vulnhub靶机下载&#xff1a;Vulnhub靶机安装&#xff1a;Vulnhub靶机漏洞详解&#xff1a;①&#xff1a;信息收集&#xff1a;②&#xff1a;Tomcat msf 上传漏洞拿到shell&#xff1a;③&#xff1a;look越权…

何时使用Kafka而不是RabbitMQ

Kafka 和 RabbitMQ 都是流行的开源消息系统&#xff0c;它们可以在分布式系统中实现数据的可靠传输和处理。Kafka 和 RabbitMQ 有各自的优势和特点&#xff0c;它们适用于不同的场景和需求。本文将比较 Kafka 和 RabbitMQ 的主要区别&#xff0c;并分析何时使用 Kafka 而不是 R…

独立商城系统开发功能注意事项有哪些?

电商行业的不断发展&#xff0c;越来越多的企业开始构建自己的独立商城系统&#xff0c;以满足消费者日益增长的需求。然而&#xff0c;在开发独立商城系统时&#xff0c;需要注意什么样的功能才能使其成为一个成功的电商平台呢&#xff1f;下面我们就来谈一谈独立商城系统开发…

【C++ 程序设计】第 8 章:文件操作

目录 一、文件基本概念和文件流类 &#xff08;1&#xff09;文件的概念 &#xff08;2&#xff09;C 文件流类 二、打开和关闭文件 &#xff08;1&#xff09;打开文件 &#xff08;2&#xff09;关闭文件 三、文件读写操作 &#xff08;1&#xff09;读写文本文件…

软件测试工程师的那些经验分享

前几天&#xff0c;一个朋友去面软件测试工程师的职位了&#xff0c;回来还信心满满的跟我诉说自己的面试经历。然而&#xff0c;最后这个面试扑街了。其实我早就料到了…… 在面试这个环节&#xff0c;很多细节如果处理不好&#xff0c;最后就会凉凉&#xff0c;无论你软件测…

《名侦探柯南》所有主题曲名字

《名侦探柯南》所有主题曲名字列表&#xff1a; 1.第1-30集&#xff1a;心中动荡不安 2.第21-52集&#xff1a;Feel Your Heart 3.第53-96集&#xff1a;谜 4.第97-123集&#xff1a;转动命运之轮 5.第124-142集&#xff1a;真相究明 6.第143-167集&#xff1a;情义之印 7.第16…

IDEA导入Web项目的三种方式

文章目录 前言一、第一种方式二、第二种方式三、第三种方式 前言 无论那种方式&#xff0c;它们都有相同的前提&#xff0c;那就是首先将你想要导入的Web项目放置在你想要导入的工程目录下 例如&#xff08;举例子&#xff09;&#xff1a;笔者要将一个名为mavenWeb1的Web项目&…

设计模式-05.02-行为型-策略职责链

策略模式【常用】 策略模式。在实际的项目开发中&#xff0c;这个模式也比较常用。最常见的应用场景是&#xff0c;利用它来避免冗长的 if-else 或 switch 分支判断。不过&#xff0c;它的作用还不止如此。它也可以像模板模式那样&#xff0c;提供框架的扩展点等等。 策略模式…

日均调度 10W+ 任务实例,DolphinScheduler 在蔚来汽车一站式数据治理开发平台的应用改造

大家好我是张金明&#xff0c;在蔚来汽车担任大数据平台研发工程师。这次和大家分享的是 Apache DolphinScheduler 在蔚来汽车一站式数据治理开发平台的应用和改造&#xff0c;接下来我将从背景、应用现状和技术改造三个方面去分享一下。 背景 业务痛点 在蔚来汽车构建一个统…

机器人工匠阿杰ROS快速入门笔记记录

ROS 快速入门教程–机器人工匠阿杰 11. 年轻人的第一个node节点 cd ~/catkin_ws/src ; // 进入工作空间 catkin_create_p kg ssr_pkg rospy roscpp std_msgs ; // 创建一个名为ssr_pkg的工程&#xff0c;依赖包是&#xff1a;rospy roscpp std_msgs // 此时&#xff0c;利用c…

html 高频面试题

文章目录 1. html 元素的类型2. <!DOCTYPE html>3. HTML、XML 和 XHTML 有什么区别&#xff1f;解释关系区别 4. 超链接和锚点的区别&#xff1f;5. iframe6. title和h17. html58. html5语义化是什么&#xff1f;9.DataList10.SVG是什么&#xff1f;11.src和href的区别12…

为何大伙都不愿意去外包,离职出来都说自己都废了呢....

先说一下自己的情况。大专生&#xff0c;17年通过校招进入湖南某软件公司&#xff0c;干了接近2年的点点点&#xff0c;今年年上旬&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个0舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了五年的功能测…