热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Jenkins持续集成(下篇)——新手

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jenkins持续集成(下篇)——新手相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jenkins持续集成(下篇)——新手相关的知识,希望对你有一定的参考价值。






目录

(四)Jenkins 配置构建执行状态

(五)Jenkins 设置定时任务

(六)实战:构建 GitHub 项目(上) 

(七)实战:构建 GitHub 项目(中)

(八)实战:构建 GitHub 项目(下)

总结




(四)Jenkins 配置构建执行状态

运行构建



在项目 左侧列表点击 “立即构建” ,在 “Build History” 列表,你会得到一个红色的小圆点,表示构建失败。

点击 构建失败的任务(红色的小圆点)。然后点击“Console Output” 就可以查看失败的 log 了。

提示:'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我们明明在 Windows 提示符下运行是没有问题的。这是因为 Jenkins 缺少环境配置。

配置构建执行状态



回到 Jenkins 首页,点击 “构建执行状态” ,右则会列出本机信息,点击本机信息,配置 Python 的 path 环境变量。同时还需要添加浏览器驱动文件所在目录。

如果你明白这块的话,说明你不懂 Python 语言,或不熟悉 Python 运行环境的配置。(不同技术的之间的配合使用存在一定的依赖关系!我们无法做到零基础。)

配置完成,点击 “保存” , 再来运行 “立即构建” ,这次看到 py_tests.py 自动化脚本被执行了。

查看控制台输出:

好了!一个简单的 selenium + python 自动化测试的构建任务就创建完成了。

但对于 Jenkins 的学习,我们才刚刚开始。


(五)Jenkins 设置定时任务

每次都手动的构建项目显然不够方便,有时候需要定时地执行自动化测试脚本。例如,每天晚上定时执行 py_tests.py 文件来运行自动化测试项目。

设置定时任务



前面已经创建的 “python test project” 项目为例,单击项目左侧的 “配置” 选项,修改项目的配置。

找到 构建触发器 ,勾选 Build periodically 选项。

通过查看设置说明,此处定时任务的格式遵循 cron 的语法(可以与 cron 的语法有轻微的差异)。具体格式,每行包含五个字段,通过 Tab 或空格分隔。


字段说明
MINUTEMinutes within the hour (0–59)
HOURThe hour of the day (0–23)
DOMThe day of the month (1–31)
MONTHThe month (1–12)
DOWThe day of the week (0–7) where 0 and 7 are Sunday.

若要指定一个字段的多个值,可以使用以下运算符,按先后顺序。


  • 指定所有值
  • M-N 指定范围值
  • M-N/X 或 */X 在指定范围或整个有效范围内按 X 间隔的步骤
  • A,B,...,Z 列举了多个值

例子:


  • 每15分钟运行一次 (可能在 1:07分, 1:22分, 1:37分, 1:52分)

H/15 * * * *

  • every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24)

H(0-29)/10 * * * *

  • 每周一至周五,上午9:45到下午3:45,每隔2小时45分钟运行一次

45 9-16/2 * * 1-5

  • 每两小时一次,每个工作日上午9点到下午5点(也许是上午10:38,下午12:38,下午2:38,下午4:38)

H H(9-16)/2 * * 1-5

  • 除12月外,每月1号和15号每天一次

H H 1,15 1-11 *

(六)实战:构建 GitHub 项目(上) 

Jenkins 不是一个对开发零基础的人去用的工具。不管你要构建什么样的项目,首先要有这么个项目存在,而且还要知道如何运行该项目。

快速创建 GitHub 项目



如果你想快速的使用 GitHub 来维护你的自动化测试项目,请阅读该教程。

此教程会在后面更新(关注首页)

Jenkins 配置 Git



首先,登录 Jenkins ,在首页找到 “系统管理 -> Global Tool Configuration -> Git ”

Path to Git executable :设置 Git 执行文件的位置。从你Git的安装目录中查看 “git.exe” 可执行文件的位置。

设置完成后点击 “Save” 保存设置。


(七)实战:构建 GitHub 项目(中)

前提工作已经完成,接下来创建 GitHub 的项目构建。

创建 GitHub 项目的构建



1、新建项目



在 Jenkins 首页,点击 “新建”。

设置项目名称:GitHub project

选择“构建一个自由风格的软件项目

2、添加 GitHub 上的项目



勾选 * GitHub Project 选项


  • Project url :设置 github 的项目地址。

3、设置Git



勾选 * Git 选项


  • Repository URL: 填写 GitHub 项目地址
  • credentials : 设置资格证书,听过 add 添加账号。
  • Branch Specifier(blank for 'any') : 默认 */master 不用修改。

4、设置触发条件




  • Github hook trigger for GITScm polling (触发 GitHub 项目轮询) ,勾选。

  • Poll SCM (设置每两分钟检测一次项目更新)参考 ,勾选。

5、添加构建命令



添加运行项目测试用例的命令。参考上一篇的第三章

项目创建完成,点击“保存”。


(八)实战:构建 GitHub 项目(下)

其实,到些为止,整个项目已经创建完成。这一小节,只是为了验证创建的项目是否有效。

提交项目版本



修改 pyse 开源项目,并提交代码到 GitHub .

D:\\git\\pyse (master)
λ git commit -m "verison 0.0.8"
[master 270de98] verison 0.0.8
6 files changed, 36 insertions(+), 32 deletions(-)
create mode 100644 test_report.png
D:\\git\\pyse (master)
λ git push origin master
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (12/12), 33.80 KiB | 11.27 MiB/s, done.
Total 12 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
To https://github.com/defnngj/pyse
c5b4c8a..270de98 master -> master

查看构建日志



通过 Jenkins 查看项目构建历史。

查看构建的详细日志。


关于 GitHub 的项目实战到此完成。


总结


最后总结一下学习最重要的知识圈
如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣点击加入Python自动化测试技术群(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

 




推荐阅读
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • EPPlus绘制刻度线的方法及示例代码
    本文介绍了使用EPPlus绘制刻度线的方法,并提供了示例代码。通过ExcelPackage类和List对象,可以实现在Excel中绘制刻度线的功能。具体的方法和示例代码在文章中进行了详细的介绍和演示。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
author-avatar
丢失的面包树
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有