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

持续集成 在 Linux 上搭建 Jenkins,自动构建接口测试

本篇把从 0 开始搭建 Jenkins 的过程分享给大家,希望对小伙伴们有所帮助。

文章目录

  • 在 Linux 上安装 Jenkins
  • 在 Linux 上安装 Git
  • 在 Linux 上安装 Python
  • 在 Linux 上安装 Allure
  • 配置 Jenkins
  • jenkins 赋能 - 使用邮箱发送测试报告
  • jenkins 赋能 - 优化测试报告内容

Tips:在搭建过程中,我参考了网上很多资料,在众多虚虚实实的资料中不断地实践,最终搭建成功了。最想分享给各位的一个观点就是,尤其要注意版本依赖问题,Linux 版本、jdk 版本、Jenkins 版本等等,其次就是不同版本的配置文件内容也不一定相同,伙伴们一定要注意。在以下内容中,我也会尽可能的标明我使用的具体版本,希望可以助力有需要的小伙伴们。

在 Linux 上安装 Jenkins

我是在双十一的时候参加阿里云服务器购买活动时买的服务器,相信很多伙伴对这个活动都不陌生,因为微信公众号中很多博主都有做推广,刚好我用在这个地方。我服务器操作系统版本是CentOS 8.2 64 位,并且我使用了宝塔服务器运维面板,后续往服务器上上传安装包会经常用到它。

Jenkins 依赖 Java 环境,所以第一步是安装 jdk。
1.1.下载jdk11,因为最新版 Jenkins 已经不支持 jdk8。jdk 下载链接
我选择的是jdk-11.0.17

1.2.在 Linux 中创建 jdk 安装目录,我习惯把用到的东西安装在/usr/local 下面,方便管理。
# mkdir /usr/local/java

1.3.进入到创建好的 java 目录中,使用宝塔将下载好的 jdk11 上传上去。

 

1.4.解压压缩包。
# tar -zxvf jdk-11.0.17_linux-x64_bin.tar.gz

1.5.配置环境变量。
1.5.1 编辑 profile 文件。
# vim /etc/profile
追加如下内容:
export JAVA_HOME=/usr/local/java/jdk-11.0.17
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

注意:这里的 CLASSPATH 如果是 jdk11,则写成"export CLASSPATH=$JAVA_HOME/lib",如果是 jdk8,则写成"CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"。
记得保存后退出。:wq
1.5.2 重新加载配置文件 - 是配置立马生效。
# source /etc/profile
1.5.3 验证。
# java -version

第二步,安装 maven
我查找到的资料大部分表示 maven 也是 jenkins 的依赖项,具体原因我不太了解,以后有机会了解后再和大家分享,目前我们就只管安装就好了。
2.1 下载 maven 的 tar.gz 安装包,我选择的是 3.6.3 版本,maven3.6.3 版本下载链接

2.2 创建 maven 目录
# mkdir /usr/local/maven

2.3 将下载后的安装包上传至 maven 目录

2.4 解压缩
# tar -zxvf apache-maven-3.6.3-bin.tar.gz

 

2.5 配置环境变量
# vim /etc/profile
在文件底部追加如下内容:
export M2_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin

 保存后退出。

2.6 使配置文件生效
# source /etc/profile

2.7 验证是否安装成功
# mvn -v

 

第三步,安装 Jenkins
3.1 下载 Jenkins 的 rpm 包。jenkins rpm 包下载地址
我选择的是jenkins-2.346-1.1.noarch.rpm 2022-05-03 20:45 87M

3.2 在 Linux 中创建 jenkins 目录
# mkdir /usr/local/jenkins

3.3 进入到创建好的 jenkins 目录中,使用宝塔将下载好的 rpm 包上传上去。

3.4 解压。
# rpm -ivh jenkins-2.346-1.1.noarch.rpm

3.5 配置 jenkins 中的 java 路径。
3.5.1 先查看 java 的绝对路径
# which java

把路径复制一下。
3.5.2 修改/etc/init.d/jenkins 文件 ,配置 jdk 安装路径。
# vim /etc/init.d/jenkins
找到"candidates",将默认的/usr/bin/java 改成刚刚复制的 java 命令的绝对路径。 

保存并退出。
3.5.3 修改/etc/sysconfig/jenkins 文件。
将 JENKINS_USER="jenkins"改成 JENKINS_USER="root";
将 JENKINS_PORT="8080"改成 JENKINS_PORT="8772";不必非改成 8772,只要是端口号不冲突就行。
保存并退出。
3.5.4 重新加载配置文件。
# systemctl daemon-reload

3.6 启动 jenkins 服务
# systemctl start jenkins

3.7 查看 jenkins 服务状态
# service jenkins status
如果一切顺利的话,你会看到:

奈何事事怎么都会这么顺利,我在安装 jenkins 时卸载重装了不下 10 次,如果你在启动服务是也遇到了异常,那么你一定需要卸载 jenkins 的命令,然后在仔细的重新安装配置一遍。我为你准备好了 jenkins 卸载命令:
# rpm -e jenkins -- rpm 卸载
# rpm -ql jenkins --检查是否卸载成功
# find / -iname jenkins | xargs -n 1000 rm -rf --彻底删除残留文件

如果一切顺利的话这个时候你用浏览器输入 Linux 的 ip 地址加上刚刚的端口号应该就能访问到 jenkins 的界面了。

如果你像我一样,Linux 服务启动成功了,但是使用浏览器访问不到 jenkins 界面,那你可以考虑下是不是防火墙的问题。

3.8 把端口号加入到防火墙。
根据自己设置的端口号,运行如下命令:
# firewall-cmd --zone=public --add-port=8772/tcp --permanent
# firewall-cmd --reload

如果你像我一样,配置完防火墙后仍然访问不到 jenkins 的界面,那你可以考虑是不是没有配置服务器的安全组。
3.9 配置服务器的安全组。
3.9.1 在阿里云服务器的控制台中,点击"网络与安全"下的"安全组"。

3.9.2 点击安全组列表下的名称。
3.9.3 把自己设置的端口添加在"入方向"下;

 

这个时候我就能成功访问 jenkins 了,不知道你成功了没,如果你还没成功,那就在留言板描述出你的问题,大家讨论一下吧。

在 Linux 上安装 Git

安装 git 有两种方式,可以使用"yum -y install git"命令在线安装,也可以选择下载安装包离线安装,经过实践后我推荐使用离线安装方式,因为我起初为了方便使用在线安装后,发现后续 jenkins 配置 git 时总是无法连接远程仓库,然后我卸载 git 后选择离线安装,就没有 jenkins 配置 git 出错的问题了。
1.下载 git 的 tar.gz 包。git 的 tar.gz 包的下载地址
我选择的是v2.39.0 版本

2.在服务器/usr/local 下创建 git 目录。
# mkdir /usr/local/git

3.将安装包上传到 git 文件夹。

 

4.解压缩。
# tar -zxvf git-2.39.0.tar.gz

5.安装依赖(中途出现提示就输入:y)。
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

6.编译源码。
# make prefix=/usr/local/git all

7.安装 git 至/usr/local。
# make prefix=/usr/local/git install

8.配置环境变量。
# vim /etc/profile
在最后添加:export PATH=$PATH:/usr/local/git/bin

9.配置文件立即生效。
# source /etc/profile

10.验证是否安装成功。
# git --version

 在 Linux 上安装 Python

1.下载 Python 的.tgz 安装包,Python 的.tgz 安装包链接
我选择的是Python-3.11.1.tgz

2.在 Linux 上创建 Python 文件夹
注意,这不是最终 Python 的安装目录,后续我们会在这个目录下再创建一个 Python 的安装目录,如果迷糊的伙伴请继续往下看。
为了更清楚的展示安装步骤,我将运行命令的所处位置也展示给大家,希望大家不会迷糊。
[root@XyServerHostName ~]# mkdir /usr/local/python

3.进入创建好的文件夹,上传下载好的 Python 安装包

4.解压
[root@XyServerHostName python]# tar -zxvf Python-3.11.1.tgz
解压之后,会在当前目录下 (/usr/local/python) 多出来一个安装包解压后的目录 (/usr/local/python/Python-3.11.1)。

 

5.创建 Python 的安装目录
[root@XyServerHostName python]# mkdir python3.11.1

 

6.进入到 Python 安装包解压后的目录,然后正式安装 Python
[root@XyServerHostName ~]# cd /usr/local/python/Python-3.11.1/
[root@XyServerHostName Python-3.11.1]# ./configure --prefix=/usr/local/python/python3.11.1/
注意:--prefix 是指定安装目录,指向刚刚创建的安装目录 python3.11.1

7.编译
[root@XyServerHostName Python-3.11.1]# make && make install
这个过程会等待一段时间,我大概等待了 3 分钟。

8.配置环境变量
[root@XyServerHostName Python-3.11.1]# vim /etc/profile
在最后追加如下内容:
export PYTHON_HOME=/usr/local/python/python3.11.1
export PATH=${PYTHON_HOME}/bin:$PATH

 

使配置文件生效:
[root@XyServerHostName Python-3.11.1]# source /etc/profile
验证是否安装成功:
[root@XyServerHostName Python-3.11.1]# python3 -V
注意:是大写字母 V

 

9.修改 Linux 默认的 Python 版本
9.1 查看 Linux 上 Python 的默认版本:
# cd /usr/bin
# ll

 

9.2 删除软连接
[root@XyServerHostName bin]# rm -rf python

9.3 重新创建软连接
[root@XyServerHostName bin]# ln -s /usr/local/python/python3.11.1/bin/python3.11 /usr/bin/python

9.4 验证

 

至此在 Linux 上安装 Python 的步骤就演示完了,因为我在安装的时候有点绕,所以这一部分写的就比较啰嗦,希望小伙伴们可以顺利安装。

在 Linux 上安装 Allure 

 

1.下载 allure 的.tgz 安装包。我选择的是 v2.20.1 版本,allure-2.20.1.tgz 下载链接

2.在 Linux 上创建 allure 目录
# mkdir /usr/local/allure

3.进入到 allure 文件夹,上传下载好的安装包

4.解压缩
[root@XyServerHostName allure]# tar -zxvf allure-2.20.1.tgz

5.配置环境变量
[root@XyServerHostName allure]# vim /etc/profile
在文件底部添加:export PATH=$PATH:/usr/local/allure/allure-2.20.1/bin

保存并退出。

6.使配置文件立刻生效
[root@XyServerHostName allure]# source /etc/profile

7.验证是否安装成功
[root@XyServerHostName ~]# allure --version

在 jenkins 上配置工程 

 到此为止,我们已经成功在 Linux 上安装并配置好了所有配置 jenkins 工程的所需项,接下来就让我们开始配置 jenkins 工程吧。(如下内容并不是一蹴而就的,需要经过几轮配置的调整,这也是我从 0 到 1 搭建的心路历程,相信看完后会对你有所帮助)
1.初次登录并配置 jenkins
使用浏览器拼接 jenkins 地址:ip 地址:jenkins 端口号
首次进入后会有一些基础配置,操作很简单,根据提示一步一步进行就好了,在此我就选三处加以说明:
1.1 首次进入后,根据提示获取密码,将文件内容复制到输入框中点击"继续"。

1.2 可以根据需要创建登录用户,我选择使用 admin 登录。

1.3 在插件管理页面,我选择的是"安装推荐的插件"

2.创建工程
2.1 点击"新建 Item"按钮

 

2.2 填写工程名称、选择自由主题、点击确定

 

2.3 工程配置-General-填写描述

 

2.4 工程配置 - 源码管理 - 源码管理选择 git,填写 git 地址

 

2.5 工程配置 - 构建触发器

 

2.6 工程配置 - 构建

 

 

完成后点击保存。

3.安装插件
入口:

在"可选插件"tab 页中搜索插件-allure,然后选择插件后点击安装。

 

安装完所有需要用的插件后手动重启 jenkins 服务。
在端口号后面输入/restart,然后确定即可。

 

4.配置 jdk、git、allure
入口:

 

4.1 配置 jdk

 

4.2 配置 git

 

注意:如果"Path to Git executable"一栏写错,在工程配置的源码管理里会提示无法连接仓库错误。
(下面这张截图是如果"Path to Git executable"配置错误,在工程配置的源码管理里会提示无法连接仓库错误的错误示范)

 

4.3 配置 allure

 

注意:这里的安装目录就是 aller 的安装目录路径,不是 which allure 后显示的路径。

 

5.配置 allure 报告展示 (小心:这一步有坑)
5.1 回到工程配置,在"构建后操作"中选择"Allure Report"。
5.2 在 Path 一栏写入"./report"。
提示:坑就是这个 Path 的写法,别急,往后看。

6.立即构建,提示:"pytest:command not found"

解决办法:找到 pytest 安装目录所在位置,在 bin 目录下添加 pytest 软链接。

 

问题解决!

7.再次构建,pytest 执行成功,但提示:"allure-results does not exist"

查看 allure 测试报告,报告也是空的。

 

再次回到工程配置中的"构建后操作",(有道翻译了一下提示语,英语实在是硬伤呀,看来得背点单词了 。。)

 

根据提示,path 中需要写入的 allure 报告目录是相对于工作空间的相对路径。
可工作空间又是啥?工作空间在哪呢?后来我发现可以在构建历史的控制台输出中看到。

 

观察发现,如果工作空间是/var/lib/jenkins/workspace/pytest_requests_allure_v1,那么在工程配置中-"构建后操作"-"Allure Report"中的"Path"一栏直接填写"report"就行了。
注意,不是./report,也不是/var/lib/jenkins/workspace/pytest_requests_allure_v1/report。

将原先"Allure Report"中"Path"填写的"./report"改成"report"。

注意:"Allure Report"中"高级"里面的内容不需要修改。

 

 

至于工程配置中"构建"一栏中的命令中的测试报告路径写./report 或者直结写 report,都不影响成功构建。

 

具体原因不清楚,总之是我实践后得到的结论。

8.再次构建,哇,终于成功了!
(为了方便调试,所以我每次运行只选择了 4 条 case)

以上就是我在服务器的 Linux 操作系统中搭建 jenkins 的一系列过程。文章中你觉着啰嗦的地方就是我当时头最大的地方,写的详细点只希望小伙伴们在实践过程中顺利一些。喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

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

 

 

相关文章:

持续集成 在 Linux 上搭建 Jenkins,自动构建接口测试

本篇把从 0 开始搭建 Jenkins 的过程分享给大家,希望对小伙伴们有所帮助。 文章目录 在 Linux 上安装 Jenkins在 Linux 上安装 Git在 Linux 上安装 Python在 Linux 上安装 Allure配置 Jenkinsjenkins 赋能 - 使用邮箱发送测试报告jenkins 赋能 - 优化测试报告内容…...

MySQL学习笔记(总结)

1. 数据库服务器操作命令 启动数据库:net start mysql80 (注释:windows命令) 停止数据库:net stop mysql80 (注释:windows命令) 重启数据库:systemctl restart mysql;…...

Android开发 Layout布局 ScrollView

1.LinearLayout 属性 orientation:内部组件排列方式,可选vertical、horizontal,默认horizontal layout_weight: 与平级组件长宽比例,需要将layout_width、layout_height其中一个设置为0dp,表明长或宽与平级组件的长…...

手撕数据结构与算法——树(三指针描述一棵树)

🏆作者主页:king&南星 🎄专栏链接:数据结构 🏅文章目录🌱树一、🌲概念与定义二、🌳定义与预备三、🌴创建结点函数四、🍀查找五、🍁插入六、&a…...

字节跳动Java后端开发实习面经

最近在和同学一起找实习,投了b站、字节和miHoYo的后端开发。b站二月底就投了,但现在也还没回复;miHoYo也还没回复,估计是只面向24届了;感谢字节,给了我面试的机会。字节真的处理好快,不到一周官…...

STM32实战项目-触摸按键

前言: 通过触摸按键控制LED灯以及继电器,具体实现功能如下: 1、触摸按键1单击与长按,控制LED1; 2、触摸按键2单击与长按,控制LED2; 3、触摸按键3单击与长按,控制LED3; 4、触摸按键4单击与长…...

安全行业-术语(万字)

肉鸡 所谓“肉鸡”说一种很形象的比喻,比喻那些可以任意被我们控制的电脑,对方可以是Windows系统,也可以说UNIX/linux系统,可以说普通的个人电脑,也可以是大型的服务器,我们可以像操作自己的电脑那样来操控…...

P1113 杂务(拓扑排序 or 记忆回溯)

题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的,因为这样才有更…...

Web3中文|政策影响下的新加坡Web3步伐喜忧参半

如果说“亚洲四小龙”是新加坡曾经的荣耀,那么当时代进入21世纪的第二个十年,用新加坡经济协会(SEE)副主席、新加坡新跃社科大学教授李国权的话来说,新加坡现在的“荣耀”是全球金融的主要“节点”或区块链行业发展的关…...

Java数据库高阶面试题,好程序员学员分享百度Java面试流程

小源下面分享一位好程序员的学员去百度Java面试流程!百度技术一面(20分钟)1、自我介绍很流畅捡重点介绍2、数据结构算法好不好挺好的(其实心还是有点虚,不过最近刷了很多好程序员出的题感觉没问题!)3、找到单链表的三等分点,如果单…...

栈和队列习题精选(持续更新中)

第一题(括号匹配)给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。…...

大数据开发 - Java入门6

目录标题do-while循环练习1:从键盘输入单词,讲输入的单词输出到控制台,输入是exit时退出循环练习2:键盘输入密码和确认密码,两次密码一致就退出循环打印注册成功,两次密码不一致就循环输入两次密码死循环fo…...

开源超级终端工具——WindTerm

1、下载和安装(我的是win10,其他版本各位自选) Releases kingToolbox/WindTerm GitHub 安装的话,相信大家不用我赘述了。 初始界面是这样的: 2、WindTerm使用 2.1 本地会话(最下面那个框,发…...

【Linux】信号常见概念

文章目录信号入门生活中的信号技术应用角度的信号signal函数注意事项信号的概念信号的产生信号的记录(保存)信号处理常见方式概述信号入门 生活中的信号 你在网上买了很多件商品,在等待不同商品快递的到来 但即便快递还没有到来,你也知道快递到了的时候应该怎么处理快递,也就…...

15000 字的 SQL 语句大全 第一部分

一、基础 1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname 3、说明:备份sql server--- 创建 备份数据的 device USE master EXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat …...

突发——字节跳动被要求出售 TikTok 股票,否则禁令,低代码也曾被打压

一、欲加之罪,何患无辞! 正值人们对TikTok和其它社交媒体平台对年轻用户的影响进行更广泛、持续的反思之际,美政客们以数据安全为由要求TikTok出售股票,已然不顾文明国家的体面。 在美国,TikTok拥有1.4亿用户&#x…...

2023年网络安全趋势

数据安全越来越重要。 我国《数据安全法》提出“建立健全数据安全治理体系”,各地区部门均在探索和简历数据分类分级、重要数据识别与重点保护制度。 数据安全治理不仅是一系列技术应用或产品,更是包括组织构建、规范制定、技术支撑等要素共同完成数据…...

html练习

1.用户注册界面 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><form action"#" method"get"><table border"1" widt…...

【Redis】Redis 是如何保证高可用的?(背诵版)

Redis 是如何保证高可用的&#xff1f;1. 说一下 Redis 是如何保证高可用的&#xff1f;2. 了解过主从复制么&#xff1f;2.1 Redis 主从复制主要的作用是什么?2.2 Redis 主从模式的拓扑结构&#xff1f;&#xff08;1&#xff09;一主一从结构&#xff08;2&#xff09;一主多…...

Qt---去掉标题栏后,最大化应用程序窗口时,窗口遮住了任务栏

// showMaximized(); // Qt最大化显示函数 任务栏都会覆盖static bool max false;static QRect location this->geometry();if (max) {this->setGeometry(location);//回复窗口原大小和位置// ui->maxBtn->setIcon(QIcon(":/MAX_.png"));}else {// ui-…...

Cadence Allegro 导出Netin(non-back)报告详解

⏪《上一篇》   🏡《上级目录》   ⏩《下一篇》 目录 1,概述2,Netin(non-back)作用3,Netin(non-back)示例4,Netin(non-back)导出方法4.1,方法1:4.2,方法2:B站关注“硬小二”浏览更多演示视频...

HTML语言

1.什么是HTML&#xff1f; 1、HTML是超文本标记语言&#xff08;Hyper Text Markup Language&#xff09; 2、HTML由各种各样的标签(tag)组成&#xff0c;如、 3、HTML文档 网页   (1)一种纯文本文件&#xff0c;扩展名为.html或.html&#xff1b;   (2)最终显示结果取决…...

线性代数之行列式

一、思维导图二、二阶、三阶行列式的定义1、二阶行列式2、三阶行列式沙路法展开3、解方程3.1解二元一次方程组观察上面两个未知量的值不难发现&#xff0c;它 们的分母均是上述方程组未知量的系数形成的二阶行列式&#xff0c;&#x1d465;1的分子是将系数行列 式的第一列换成…...

【FPGA-Spirit_V2】小精灵V2开发板初使用

&#x1f389;欢迎来到FPGA专栏~小精灵V2开发板初使用 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家…...

STL与其空间配置器

目录什么是STLSTL的六大组件STL的缺陷什么是空间配置器为什么需要空间配置器GI-STL空间配置器实现原理一级空间配置器二级空间配置器内存池SGI-STL中二级空间配置器设计SGI-STL二级空间配置器之空间申请前期的准备申请空间填充内存块向内存池中索要空间SGI-STL二级空间配置器之…...

leetcode刷题之回文链表

目录 做题思路 代码实现 1.找到链表的中间节点 2.反转中间节点之后的链表 3.判断倒置的后半部分的链表是否等于前半部分的链表 整体代码展示 总结&#xff1a; 这里是题目链接。 这道题目的意思是&#xff1a;判断该链表中后半部分倒置是否跟前半部分相同&#xff0c;如…...

复制带随机指针的链表最长连续递增序列数组的度写字符串需要的行数最短补全词

复制带随机指针的链表来源&#xff1a;杭哥138. 复制带随机指针的链表 - 力扣&#xff08;LeetCode&#xff09;typedef struct Node Node; Node* BuyNode(int x) {Node* newnode (Node*)malloc(sizeof(Node));newnode->valx;newnode->nextNULL;newnode->randomNULL;…...

「ML 实践篇」回归系统:房价中位数预测

文章目录1. 项目分析1. 框架问题2. 性能指标2. 获取数据1. 准备工作区2. 下载数据3. 查看数据4. 创建测试集3. 数据探索1. 地理位置可视化2. 寻找相关性3. 组合属性4. 数据准备1. 数据清理2. Scikit-Learn 的设计3. 处理文本、分类属性4. 自定义转换器5. 特征缩放6. 流水线5. 选…...

深度学习 Day27——利用Pytorch实现运动鞋识别

深度学习 Day27——利用Pytorch实现运动鞋识别 文章目录深度学习 Day27——利用Pytorch实现运动鞋识别一、查看colab机器配置二、前期准备1、导入依赖项并设置GPU2、导入数据三、构建CNN网络四、训练模型1、编写训练函数2、编写测试函数3、设置动态学习率4、正式训练五、结果可…...

Springboot 整合dom4j 解析xml 字符串 转JSONObject

前言 本文只介绍使用 dom4j 以及fastjson的 方式&#xff0c; 因为平日使用比较多。老的那个json也能转&#xff0c;而且还封装好了XML&#xff0c;但是本文不做介绍。 正文 ①加入 pom 依赖 <dependency><groupId>dom4j</groupId><artifactId>dom4j…...

如何在网站上做免费广告/百度云app下载安装

http://www.cnblogs.com/cherri/archive/2010/12/03/1895541.html 一.多线程对于iPhone应用程序开发很重要 在一个程序中&#xff0c;这些独立运行的程序片断叫作“线程”&#xff08;Thread&#xff09;&#xff0c;利用它编程的概念就叫作“多线程处理”。多线程处理一个常见…...

wordpress首页表单/搜索引擎营销的内容和层次有哪些

9月8日下午消息&#xff0c;淘宝确认与微软达成一项基于微软Silverlight技术的合作项目&#xff0c;该项目能为淘宝卖家提供更多样化的店铺展示方式。另外&#xff0c;淘宝网还将为微软IE8浏览器提供淘宝定制版本。 据悉&#xff0c;这是淘宝与微软总部首次直接达成的合作。之前…...

在线代理浏览网站免费/网络广告销售

1042. 字符统计(20) 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue请编写程序&#xff0c;找出一段给定文字中出现最频繁的那个英文字母。 输入格式&#xff1a; 输入在一行中给出一个长度不超过1000的字符串。字符串由ASCII码表中任意可见字…...

万网虚拟机wordpress/营销型网站的分类

路由器的多个接口有什么区别么&#xff1f;路由器有很多种&#xff0c;不同的路由器有不同的接口&#xff0c;具体描述如下&#xff1a;企业路由器&#xff1a;1)局域网中使用的各种局域网接口&#xff0c;如以太网接口、光纤接口等&#xff1b;2)连接到广域网的接口&#xff0…...

c 做网站优点/三台网站seo

与春合奏&#xff0c;曲终情未尽 冬韵羁绊着春的步履&#xff0c;在阡陌纵横的原野磨磨蹭蹭。我只是红尘中春的粉丝&#xff0c;在那杂草丛生的山坡&#xff0c;一个人默默地守望&#xff0c;殷切地期盼&#xff0c;不曾离去&#xff0c;也不想离去&#xff0c;哪怕化身为泥或弥…...

文昌网站建设全包/百度seo免费推广教程

已知二叉树的前序遍历序列和中序遍历序列&#xff0c;求后序遍历序列。 先递归构造二叉树&#xff0c;再递归后序遍历。 思路&#xff1a; 前序序列的第一个结点为要构造的二叉树的根节点&#xff0c;在中序序列中查找此节点&#xff0c;则其左为要构造的二叉树的左子树的中序序…...