linux环境搭建jmeter、ant、git、Jenkins、jdk、Tomcat

news2024/12/24 22:15:11

我在搭建环境时,将jmeter、ant、jdk、Tomcat都放在陆opt文件夹下

 

1.下载jmeter、ant、Jenkins(Jenkins.war包)、jdk、Tomcat

Linux环境下安装Jenkins,需要jdk版本大于11

2.环境配置

 

jdk配置

vim /etc/profile

添加配置信息:

export JAVA_HOME=/opt/jdk-17.0.1
(export JAVA_HOME=/opt/jdk-17.0.1)
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
配置完成按esc--》:wq!退出,执行source /etc/profile

输入java -version验证是否配置成功

 

jmeter配置

export JMETER_HOME=/opt/apache-jmeter-5.4.1
export CLASSPATH=$JMETER_HOME/lib/ext/AacheJMeter_core.jar:$JMETER_HOME/libjorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin

配置完成按esc--》:wq!退出,执行source /etc/profile

输入jmeter -v 验证是否配置成功

 

ant配置

export ANT_HOME=/opt/apache-ant-1.9.16
export PATH=$ANT_HOME/bin:$PATH

配置完成按esc--》:wq!退出,执行source /etc/profile

输入ant -version验证是否配置成功

安装Tomcat:

 1.tomcat是需要有jdk环境才可以正常运行。

2. /opt/apache-tomcat-8.5.88/bin

进入bin目录后  ./startup.sh  运行(若报错: -bash: ./startup.sh: Permission denied 说明权限不够,如果你是root账号,直接执行指令: chmod u+x *.sh  赋予权限即可)

3.tomcat默认端可是8080

4.关闭 ./shutdown.sh  关闭后即不可访问,先关闭,等配置好Jenkins后再重启

Tomcat配置Jenkins

1. 将Jenkins.war 复制到tomcat的webapp目录下后启动tomcat :

cd /opt

cp jenkins.war apache-tomcat-8.5.88/webapps/

cd /opt/apache-tomcat-8.5.88/bin

./startup.sh运行

2. 浏览器输入: http://ip:8080/jenkins 打开jenkins页面

cat /root/.jenkins/secrets/initialAdminPassword    获取验证密码

接下来就是推荐安装程序,创建账号密码。

Admin默认密码就是 :cat /root/.jenkins/secrets/initialAdminPassword

Ant配置Jmeter
1. 为了方便管理,在Jmeter主目录下创建一个report文件夹

cd /opt/apache-jmeter-5.2.1

mkdir report

2. 进入report目录创建       cd report/

3. 创建3个文件夹 分别为jtl、html(存放测试报告目录)、run(存放测试脚本目录)

mkdir jtl html run
 

4. 把jmeter目录下的extras目录下的ant-jmeter-1.1.1.jar文件复制到ant目录下的lib文件夹中

cp /opt/apache-jmeter-5.2.1/extras/ant-jmeter-1.1.1.jar /opt/apache-ant-1.10.7/lib

 

5. 配置ant的编译文件 build.xml

将编译好的build.xml放置Jmeter目录的report目录下

代码如下:请看备注进行修改
 

<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter" default="all" basedir=".">
    <property name="jmeterPath" value="/opt/apache-jmeter-5.4.1"/>
    <property name="mail_host" value="smtp.163.com"/>
    <property name="mail_port" value="25"/>  <!--邮箱端口 -->
    <property name="username" value="xxxxx@163.com"/>  
    <property name="password" value="xxxxxxxxxx"/>  <!--邮箱授权码 -->
    <property name="mail_from" value="xxxxx@163.com"/>  <!--发送邮箱-->
    <property name="mail_to" value="xxxx@163.com,xxxxxx@qq.com"/> <!--收件邮箱-->
    <property name="mailsubject" value="接口自动化测试报告"/>
    <property name="message" value="接口自动化测试报告"/>
    
    <tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp>
    
    <!-- jmeter环境配置 -->
    <property name="jmeter.home" value="${jmeterPath}"/>
    <!-- jtl测试结果存放路径 -->
    <property name="jmeter.result.jtl.dir" value="/opt/apache-jmeter-5.4.1/report/jtl"/>
    <!-- html测试结果存放路径 -->
    <property name="jmeter.result.html.dir" value="/opt/apache-jmeter-5.4.1/report/html"/>
    <property name="htmlReportNameSummary" value="TestReport"/>
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}${time}.jtl"/>
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html"/>

    <target name="all">
        <antcall target="test"/>
        <antcall target="report"/>
        <antcall target="sendEmail"/>
    </target>
       
    <!-- 执行接口测试 -->
    <target name="test">
        <echo>执行接口自动化测试用例</echo>
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!--testplans dir="/opt/apache-jmeter-5.4.1/report/run" includes="*.jmx" /--> <!--测试脚本  run文件夹存放测试脚本-->
             <testplans dir="/root/.jenkins/workspace/ApiTest" includes="*.jmx" /> <!--切换为gitee或gitlab拉取代码存放路径(拉取的代码存放在Jenkins中的workspace下)-->
             <property name="jmeter.save.saveservice.output_format" value="xml" />
        </jmeter>
    </target>
    
    <!-- 解决报告中NAN字段显示问题-->
    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar" />
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar" />    
    </path>
    
    <target name="report">
        <echo>生成接口自动化测试报告</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-detail-report_21.xsl"  >
                  <param name="titleReport" expression="${mailsubject}${time}"/> 
                  <param name="dateReport" expression="${report.datestamp}"/>
            </xslt>   
                  
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->  
            <copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.html.dir}/expand.png" />
            <copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.html.dir}/collapse.png" />
            
    </target>
    
    <!--将控制台输出到文本中-->
    <record name="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.txt" loglevel="info" append="no" action="start"/>
    
    <target name="sendEmail">
    <!--读取输出的控制台日志文件并写入邮件正文-->
    <loadfile property="email_content" srcFile="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.txt" encoding="UTF-8"/>
    <loadfile property="output" srcFile="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html" encoding="UTF-8"/>
        <echo>发送测试报告</echo>
            <mail mailhost="${mail_host}" 
                  ssl="false"                        
                  user="${username}"
                  password="${password}"
                  mailport="${mail_port}"
                  subject="${mailsubject}"
                  messagemimetype="text/html"
                  tolist="${mail_to}"  >
            <from address="${mail_from}" />
            
                <attachments>
                    <fileset dir="${jmeter.result.html.dir}">
                        <include name="${htmlReportNameSummary}${time}.html" />
                        <include name="collapse.png" />
                        <include name="expand.png" />
                    </fileset>
                </attachments>
                
                <message>
                 ${output}
                </message>
            </mail>
    </target>
</project>


 

配置jmeter.properties文件
vi /opt/apache-jmeter-5.4.1/bin/jmeter.properties

/csv 找到这个位置(改jmeter.save.saveservice.output_format=csv 

为jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#)

配置jar包支持发送email

1、在 jmeter 的 /opt/apache-jmeter-5.4.1\Extras 目录下找到 ant-jmeter-1.1.1.jar 文件,将它复制到 ant 的 \lib 目录下

2、下载commons-email.jar包,然后放在 ant 的 \lib 目录下

3、下载activation-1.1.1.jar包,然后放在 ant 的 \lib 目录下

4、javax.mail.jar包,然后放在 ant 的 \lib 目录下

运行ant

Ant是可以运行多个脚本,不需要单个脚本一个个运行。

1. 把已经写好的脚本放进report/run的目录下

2. cd /opt/apache-jmeter-5.4.1/report 后直接ant即可

Jenkins配置jdk、ant路径

Manage Jenkins->Tools

jdk配置

Git配置

ant配置

 

新建Jenkins任务并执行

 

 如果需要配置gitee/gitlab

构建触发

 Build Steps设置

ant version 选择ant,不要选default

 

 完成保存,点击build now

 

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

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

相关文章

飞书接入ChatGPT - 将ChatGPT集成到飞书机器人,直接拉满效率 【飞书ChatGPT机器人】

文章目录 前言环境列表视频教程1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话,在下面操作步骤中,使…

LBS找外贸客户 外贸怎么找客户

随着全球贸易的不断发展&#xff0c;越来越多的企业开始寻找更多的客户和销售机会。而随着移动互联网的普及&#xff0c;LBS已经成为了人们生活和工作中不可或缺的一部分。在商业领域中&#xff0c;LBS被广泛应用于定位、导航、营销等方面&#xff0c;为企业提供了更加便捷、精…

如何在Mac VM Fusion上安装和使用Plan 9

我在 Mac 上使用 VM Fusion 安装 Plan 9 的时候遇到了很多问题&#xff0c;官方文档和有些前两年的国外的一些博客并没有写清楚&#xff0c;甚至出现了“误导”的情况&#xff08;有些情况变了&#xff09;。所以来写本文帮助其他也遇到的问题的人。 如果你能看到这篇博客&…

上传ChatGPT相关资源,瓜分¥5000元奖金池

一、活动时间 资源类型时间上传地址上传【ChatGPT的原理分析】资源4月17日-4月30日https://upload.csdn.net/creation/uploadResources?taskId643925fde212675bb64a3984&utm_sourceblog上传【Chatgpt的多种使用方法】资源4月15日-4月30日https://upload.csdn.net/creatio…

介绍NPOI 的颜色卡、名称以及索引

文章目录 前言 遍历NPOI颜色 前言 使用NPOI的颜色时&#xff0c;一些颜色类的名称很难想象出具体对应的颜色&#xff0c;所以有了下面的对照表&#xff0c;方便使用。 NPOI 颜色的索引范围是 8~64,超出范围无效。 色彩类名索引Index名称#000000HSSFColor.Black8黑色#ffffffH…

【C++ 一】C++ 入门、数据类型、运算符

C 入门、数据类型、运算符 文章目录 C 入门、数据类型、运算符前言1 C 初识1.1 第一个C程序1.1.1 创建项目1.1.2 创建文件1.1.3 编写代码1.1.4 运行程序 1.2 注释1.3 变量1.4 常量1.5 关键字1.6 标识符命名规则 2 数据类型2.1 整型2.2 sizeof 关键字2.3 实型&#xff08;浮点型…

【最详细最完整】windows 安装 Oracle Java环境

windows 安装Oracle Java环境 一、安装教程二、验证Java环境 前言&#xff1a;公司有个app的项目&#xff0c;我是打算使用uniapp来实现&#xff0c;那么调试是需要使用到java环境&#xff0c;所以我本地就得安装java环境&#xff0c;接着我找了好多文章发现没有相对完整的&…

在头部大厂做了13年云计算后,这次他想系统地聊聊FinOps!

随着企业上云战略的深入普及&#xff0c;越来越多的企业开始关注云成本优化。伴随着企业对IT资源的投入不断增加&#xff0c;企业迫切需要解决成本与效率&#xff0c;以及如何将云成本优化落到实处的问题。 FinOps是将财务和业务整合到一起的变革&#xff0c;可以帮助企业更好…

抖音数字人主播app

抖音数字人主播app是指一款利用计算机生成的虚拟数字人&#xff0c;在抖音平台上进行实时音视频传输和互动的应用程序。该软件可以让用户创建自己的虚拟数字人&#xff0c;并在抖音平台上进行实时互动和交流。 抖音数字人主播app通常需要包含以下功能&#xff1a; 3D建…

本地JAR打镜像,并启动

1.准备好jar&#xff0c;和Dokerfile文件。 2.使用命令打镜像 docker build -t wstest . 3. 查看镜像 4. 由于服务是两个端口。使用以下命令 5.优化怎么随着docker的开启而启动 docker run --restartalways -p 8089:8089 -p 8069:8069 wsserver docker run --restartalways -…

C++基础入门——语法详解篇(下)

文章目录 一、缺省参数 1、1 缺省参数的概念 1、2 缺省参数的分类 1、2、1 全部缺省 1、2、2 半缺省参数 二、引用 2、1 引用的概念 2、2 引用特征 2、3 引用的使用场景 2、3、1 引用做参数 2、3、2 常引用 2、3、3 引用做返回值 2、4 引用总结 三、内联函数 3、1 内联函数的引…

谷歌浏览器的跨域设置、配置、新老版本Chrome

文章目录 1、个人开发中的使用习惯2、老版本Chrome浏览器(版本号49之前)3、新版本Chrome浏览器(版本号49之后) 1、个人开发中的使用习惯 下载好谷歌浏览器以后&#xff0c;快捷方式一份放在桌面上&#xff0c;一份放在开始菜单栏&#xff0c;桌面的重命名为dev(可以随意命名)&a…

【09 cookie and session】

cookie and session 一、cookie1. 会话技术2. 什么是cookie3. cookie的属性4. cookie方法5. cookie添加和获取6. 需求案例7. cookie的细节 二、session1. HttpSession介绍2. HttpSession常用方法3. HttpSession获取4. HttpSession使用5. HttpSession使用细节 一、cookie cooki…

【MongoDB】什么是MongoDB?MongoDB有什么特点?MongoDB的适用场景?

什么是MongoDB数据库&#xff1f; MongoDB是一个开源、高性能、支持海里数据存储的文档型数据库。 MongoDB是一个高效的非关系型数据库&#xff08;不支持表关系&#xff1a;只能操作单表&#xff09; MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系…

postman安装

目录 下载、安装 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 Postman原是Chrome浏览器的插件&#xff0c;可以模拟浏览器向后端服务器发起任何形式(如:get、post)的HTTP请求 使用Postman还可以在发起请求时&#xff0c;携带一些请求参数、请求头等信息…

debezium docker订阅oracle 11g

debezium 依赖于kafka&#xff0c;kafka依赖于zookeeper。 zookeeper实现了kafka消息的一致性&#xff0c;debezium 把订阅的数据推送到kafka dockerFile FROM debezium/connect:1.6 ENV KAFKA_CONNECT_JDBC_DIR$KAFKA_CONNECT_PLUGINS_DIR/kafka-connect-jdbc ENV INSTANT_C…

登陆拼多多获取整站实时商品详情数据,商品列表,商品优惠券,包括数据采集,清洗,分析,封装等过程,作为爬虫的课程。

前言 拼多多平台是一个众所周知的一个电商平台&#xff0c;基本上什么都能找到&#xff0c;而且价格比较优惠。 想业余做电商赚点小钱或买点东西&#xff0c;就需要对比平台上各个卖家的商品信息&#xff0c;所谓货比三家&#xff0c;为商品定一个合理的价位或淘一个合理&…

[Python基础] 学生管理系统(存储读取学生信息)

学生管理系统&#xff1a;应该算是语言语法学习过程中一个比较适合测试语法熟练度的代码案例了。 文章目录 思路main&#xff08;入口函数&#xff09;menu&#xff08;菜单&#xff09;Add&#xff08;新增学生&#xff09;Display()&#xff08;显示学生&#xff09;Find()&a…

::before和::after伪元素的用法案例

CSS3中伪类采用单冒号写法&#xff0c;伪元素采用双冒号写法。 伪类举例——:hover,:link,:active,:target。 伪元素举例——::before,::after,::first-letter,::first-line,::selection。 一、介绍 今天写网页时遇到一个问题&#xff0c;视口的背景中插入一个小图标的话&a…

Python进阶项目--只因博客(bootstrap+flask+mysql)

前言 1.全民制作人们大家好&#xff0c;我是练习时长两年半的个人练习生只因坤坤&#xff0c;喜欢唱&#xff0c;跳&#xff0c;rap&#xff0c;篮球&#xff0c;music......在今后的节目中&#xff0c;我还准备了很多我自己作词、作曲、编舞的原创作品&#xff0c;期待的话&am…