边开发就能边测试?一招教你在linux服务器配置jenkins持续集成神器(代码片段)

软件测试君 软件测试君     2023-01-12     570

关键词:

01、配置插件

先在开发的项目pom文件中添加依赖,配置插件,两个project

  • 一个是springboot开发接口项目Chapter114
  • 一个是测试接口项目Chapter15

在Chapter114项目包的pom.xml中写入:

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.course.Application</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
                <compilerArguments>
                    <extdirs>$project.basedir/lib</extdirs>
                </compilerArguments>
            </configuration>
        </plugin>

    </plugins>
</build>

在Chapter15项目包的pom.xml中写入:

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.7.1</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>
                        ./src/main/resources/TestJenkins.xml                        
                    </suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>

进入Chapter15和Chapter114目录下,输入构建打包命令:

mvn clean package

D:\\Springboot\\AutoTest\\Chapter15>mvn clean package
D:\\Springboot\\AutoTest\\Chapter114>mvn clean package

构建成功:

进入Chapter15\\target和Chapter114\\target 目录下,输入dir命令,查看tar包名称,后面会用到:

02、环境配置步骤

一、安装VMware

安装参考地址:

https://blog.csdn.net/qq_40950957/article/details/80467513

密钥参考地址:

https://blog.csdn.net/felix__h/article/details/82853501

二、配置linux环境

参考地址:

https://blog.csdn.net/qq_40950957/article/details/80468030

三、在linux环境中安装jdk

因为debian linux系统默认会装jdk,输入命令java -version会看到是openjdk的版本。但是这个版本不能正常使用,需要安装sun公司的jdk,所以要先卸载。

因为用的是debian(unbantu)的系统,卸载命令要用apt。

输入以下命令卸载所有的openjdk:

sudo apt-get remove openjdk*

apt list                          能查出来所有的软件包以及包名
apt list | grep openjdk    能查出来openjdk开头的软件包

当使用"apt autoremove openjdk的包名"命令卸载jdk时会提示要先卸载再安装jdk,所以使用"sudo apt-get remove openjdk* "一次性全部卸载,再重新安装jdk。虚拟机安装好后会自动连网,所以可以打开浏览器,进百度搜索jdk下载jdk:

下载tar.gz包:

可以查看包下载的路径,我的虚拟机默认是在/下载目录中。

注:也可以通过远程传输文件的方式从本机下载然后传到虚拟机,可自行上网查找步骤。

在usr目录下创建java文件夹并解压安装

:# mkdir /usr/java
:# mv /home/thinkit/Downloads/jdk…tar.gz /usr/java/
//给解压后的包名重命名未jdk1.8
:  # mv 解压后的包名 jdk1.8
:# cd /usr/java/
:# tar -zxvf jdk…tar.gz

在profile中配置环境变量 ,在最后加入代码,配置JAVA_HOME,PATH,CLASS_PATH
:# vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8

export JRE_HOME=/usr/java/jdk1.8/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export MAVEN_HOME=/maven/apache-maven-3.3.9export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin

此图中有maven的环境变量的配置,可以先不配置,下一章节安装完maven后再配置。

保存后在命令行输入

source /etc/profile    使配置生效
:#java -version

屏幕输出 java version”1.8.0_191 “…安装完毕

四、在linux环境中安装maven

参考地址:

https://www.cnblogs.com/zf29506564/p/6007906.html

五、xshell或者secureCRT连接虚拟机服务器

直接连接会报连接失败,需要修改以下配置:

1、先修改本机网络设置:

2、进入虚拟机安装

sudo apt-get install openssh-client

安装过程中会自动安装openssh-server,所以不用单独再安装

安装成功,启动服务:sudo /etc/init.d/ssh restart

执行命令:netstat -tlp

看到这一行输出说明ssh-server已经在运行了。

tcp6 0 0 *:ssh: LISTEN -

再次连接虚拟机服务器提示密码错误,还需要修改虚拟机中一个配置:

3、进入目录

cd /etc/ssh/
vim sshd_config

找到PermitRootLogin without-password 或者是prohibit-password

将without-password或者是prohibit-password修改为yes

重启ssh服务:service ssh restart

再用securecrt就能成功登录

03、在linux环境中安装tomcat

进入tomcat官网,选择tomcat9

在linux 根目录下输入:

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.zip

下载tomcat成功:

解压包:

unzip apache-tomcat-9.0.14.zip

解压成功:

进入解压后的tomcat包中,给包中所有的文件赋予可执行权限

cd apache-tomcat-9.0.14/
chmod a+x -R *

修改tomcat的端口号,进入配置文件中:vim conf/server.xml

启动tomcat:bin/startup.sh

查看tomcat进程是否启动:ps -ef | grep tomcat

在浏览器中输入http://192.168.44.129:8090/

04、安装Jenkins

在根目录下安装jenkins

pwd 查看当前目录

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

输入命令下载jenkins包

输入命令,指定jenkins端口号:

java -jar jenkins.war -httpPort=8080

指定完成在浏览器中输入:192.168.44.129:8080

进入jenkins启动页面

提示要到文件中查找密码并复制到输入框中。

先回到SecureCRT中按 ctrl+c 退出jenkins服务,进入目录,查看密码,并复制:

再输入命令启动jenkins服务,该命令输入完后jenkins服务在后台运行,可以在nohup.out中看日志信息:

nohup java -jar jenkins.war --httpPort=8080 &

再进入浏览器,输入密码,点击下一步:

选择自定义插件:

勾选插件,勾选github,如果公司用的是gitlab也可以勾选gitlab

勾选这两个插件后,点击安装

插件安装完成:

点击下一步,创建用户:

进入到Build中输入执行shell的命令:

. /etc/profile
cd Chapter114cd targetpwdsystemctl restart test
BUILD_ID=dontkillMecd ..pwdmvn clean package

命令解释:

. /etc/profile:在执行shell前先初始化一下profile配置文件

cd Chapter114、cd target:执行shell时当前目录是在/root/.jenkins/workspace/deploy/,要进入Chapter114/target目录下启动springboot项目的tar

pwd:查看当前目录

systemctl restart test:启动springboot项目的tar包,把命令封装成系统服务去启动。

BUILD_ID=dontkillMe:不要杀死当前进程,为了后面的测试环境构建打包

cd … : 回到Chapter114目录下

pwd:再看一下当前的目录

mvn clean package:执行打包

开发环境任务创建成功:

再建一个test任务:

执行shell命令为:

cd Chapter15

mvn clean package
result=$(curl -s http://192.168.44.129:8080/job/test/lastBuild/buildNumber --user admin001:123456 )mkdir /root/apache-tomcat-9.0.14/webapps/ROOT/$resultcp /root/.jenkins/workspace/test/Chapter15/test-output/index.html /root/apache-tomcat-9.0.14/webapps/ROOT/$result/index.html

命令解释:

cd Chapter15:执行shell时当前目录是在/root/.jenkins/workspace/test/,进入该目录下构建项目打包

mvn clean package:打包

result:在tomcat安装目录下创建以构建号命名的目录

cp /root/.jenkins/workspace/test/Chapter15/test-output/index.html /root/apache-tomcat-9.0.14/webapps/ROOT/$result/index.html:

把测试报告复制到tomcat目录下新建的目录,构建成功后在浏览器中输入http://192.168.44.129:8090/28/index.html就能看到报错

如果想修改上面的配置信息,可以选择任务名称,旁边会有一个小三角,然后选择Configure

执行任务:

执行deploy的任务,构建成功后会自动执行test的任务。

可以通过看日志看构建过程。

把测试报告放到tomcat服务器中去查看。

从liunx服务器中下载文件到本地

下载filezilla,安装后输入IP、用户名、密码、端口号22,本地就能连上服务器

05、本地建数据库允许别的电脑连接

配置mysql数据库中的usr表的host,改为%

配置成功一定要刷新权限

配置防火墙的3306端口

linux环境访问本地的数据库:
先打开cmd命令,查到本地的ip
再到linux中输入命令:
mysql -h 数据库服务器ip地址 -P 3306 -u root -p
就能连上数据库了。

注:jenkins中的shell会根据不同的项目而有变化。

06、总结补充

每次进入打开jenkins之前先要做以下几步:

查看5.1修改本地网络允许运行其他网络

开启虚拟机

启动ssh服务:sudo /etc/init.d/ssh restart

启动jenkins服务:nohup java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war --httpPort=8080 &

进入tomcat目录启动tomcat服务:bin/startup.sh

访问jenkins地址:http://192.168.44.129:8080

访问tomcat地址:http://192.168.44.129:8090

构建成功后访问测试报告地址:http://192.168.44.129:8090/28/index.html,28是构建号

补充:

jenkins部署时选择不同的分支:

  • 添加一个参数化构建过程:

git参数设置一个branch参数,选择分支图片

  • 源码管理中branches to build 指定分支 $branch

  • 构建时选择的不同的分支去构建

  • 参数化构建过程点击高级,勾选快速过滤,构建时可以输入分支过滤

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

一招教你摘下月亮送给ta!信不信,我用ppt就能做到

最近抖音有首歌很火,“想摘下星星给你,摘下月亮给你……”,是不是也想摘下超美的月亮送给你的男/女朋友呢? 今天就来教大家画一个这样的超美弯弯月亮,不难,用PPT就可以做到哦,快get起来,你也可以摘下月亮送... 查看详情

火山引擎dataleap一招教你避坑“数据开发”中的资源隔离问题

...平台微信公众号,回复【1】进入官方交流群在离线数仓开发过程中,研发人员需要根据业务变化,在开发/生产环境中不断切换、解析、调试。以往,企业一般通过人工方式核验,但由于数据量大且类型不同,导致研发人员资源... 查看详情

crm运行慢?一招教你轻松解决

北方某有线电视广播集团,集团核心CRM系统管理着客服中心、故障处理、派工、及订户自助和其他服务。CRM系统每天上午特定的时段都会出现运行缓慢的问题,而这个时段正是集团客服解决客户问题,签约新客户及安排技术人员... 查看详情

一招教你如何高效批量导入与更新数据(代码片段)

...要错过GaussDB(DWS)的MERGEINTO功能。本文分享自华为云社区《一招教你如何高效批量导入与更新数据》,作者:acydy。当前GaussDB(DWS)提供了MERGEINTO功能。本篇文章介绍MERGEINTO功能与基本用法。前言如果 查看详情

一招教你数据仓库如何高效批量导入与更新数据(代码片段)

...据仓库是一项非常重要的技术。本文分享自华为云社区《一招教你如何高效批量导入与更新数据》,原文作者:acydy。前言如果有一张表,我们既想对它更新,又想对它插入应该如何操作?可以使用UPDATE和INSE 查看详情

一招教你win10文件丢失怎么恢复

  被删除的文件怎么恢复?由于之前微软推出了win10免费升级的机会,很多小伙伴纷纷将自己的系统升级到了win10。但是也有小伙伴却因为Win10的强制升级而无辜躺枪了。这此win10强制的升级不仅仅引起各种吐槽,而且还有小... 查看详情

一招教你如何写好技术文档?

点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达方案设计文档该怎么写?你是不是从来没有想过这个问题?很多技术人自己非常轻视技术文档的书写,然而又时常抱怨文档不完善、... 查看详情

一招教你轻松看懂波特图

点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达波特图的主要功能是用来表示系统的频率特性,包括幅频特性和相频特性。假设有一个系统用于跟随正弦波,当输入一个正弦波时,... 查看详情

vmware显示权限不足?每次右键管理员运行太麻烦?一招教你解决!

Vmware每次打开都显示权限不足,百度都是管理员权限打开,可是每次开软件都要右键管理员运行也太麻烦了叭!偶然发现的,右键软件点属性,就OK了,这样就不用每次都右击管理员权限打开了。 查看详情

从都到尾一招教你使用maven构建java项

本指南将引导您使用Maven构建一个简单的Java项目。你会建立什么您将创建一个提供一天中时间的应用程序,然后使用Maven进行构建。你需要什么1.约15分钟2.最喜欢的文本编辑器或IDE3.JDK8或更高版本如何完成本指南您可以从头开始... 查看详情

电脑文档数据恢复?别急,一招教你快速找回丢失数据!

电脑文档数据丢失怎么恢复,是困扰很多经常使用电脑办公的职场中人的难题。众所周知,电脑是人们办公娱乐以及储存一些电子数据的现代工具。几乎每一个公司处理数据和资料都会用到电脑,尤其是工厂储存产品... 查看详情

附安装包pycharmintellijidea...软件太贵?一招教你免费使用(代码片段)

对于计算机专业的同学,编程是一切上层技能的基础;对于经管的同学,编程是数据处理分析的好帮手;对于新传设计的同学,编程是表达自身个性的工具;对于传统工科的同学,编程是学习过程中的... 查看详情

hdfs文件误删怎么办,一招教你恢复回来,再也不用担心删库跑路了(代码片段)

本文基于Hadoop3.1.2版本讲解HDFS文件删除过程下面是hdfs删除路径的方法,源码路径org.apache.hadoop.hdfs.server.namenode.FSNamesystem.delete() /***Removetheindicatedfilefromnamespace.**@seeClientProtocol#delete(String,boole 查看详情

视频如何做成gif动图?一招教你快速生成gif动画

...gif(https://www.gif.cn/)功能上传MP4格式的视频一键就能完成在线视频转gif制作,新手小白也能轻松上手。  最大可上传1920px的视频,超出1920px的系统自动按比例缩小,能够在线转换1分钟或是600帧以内的视频&#x... 查看详情

一招教你如何写好技术文档?

...更快融入……写文档有比较严重的收益滞后性,不像测试,你跑一个测试case,它能立即告诉你是对还是错,它的价值马上就体现出来了。而写一份文档,随着时间的推移,它的价值才会逐渐体现出来。你... 查看详情

一招教你如何写好技术文档?

...更快融入……写文档有比较严重的收益滞后性,不像测试,你跑一个测试case,它能立即告诉你是对还是错,它的价值马上就体现出来了。而写一份文档,随着时间的推移,它的价值才会逐渐体现出来。你... 查看详情

教你一招:基于数据驱动的接口单元测试

...测试方案。  用到的技术包括:maven、kubbo、junit4,json开发包、Jenkins等。  2、数据驱动  2.1数据驱动的概念    数据驱动测试是从数据文件(如Excel文件、文本文件、XML文件或数据库等)中读取测试数据,然后通... 查看详情

一招教你如何使用数据可视化bi软件创建员工考核管理数据大屏

灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏。大家可以在他们的官网下载软件。 本文以员工考核数据大屏为例为大家演示... 查看详情