Jenkins普通项目实战
关键词:自由风格项目
一、创建构建任务
点击 Jenkins 首页 “创建一个新任务” 的链接,弹出如图3.1所示页面。
![](https://img.haomeiwen.com/i5564331/de1374f93060452c.png)
![](https://img.haomeiwen.com/i5564331/053ac100f2912ab8.png)
选择Jenkins任务类型
Jenkins 提供了六种类型的任务。
*构建一个自由风格的软件项目
这是Jenkins的主要功能。Jenkins 会结合任何 SCM 和任何构建系统来构建你的项目, 甚至可以构建软件以外的系统。
*Pipeline
Orchestrates long-running activities that can span multiple build slaves. Suitable for building pipelines (formerly known as workflows) and/or organizing complex activities that do not easily fit in free-style job type. -- 很难用一两句话说清 Pipeline, 参考 , 后面另起一文来介绍。
*构建一个多配置项目
适用于多配置项目,例如多环境测试、平台指定构建,等等。
*GitHub Organization
Scans a GitHub organization (or user account) for all repositories matching some defined markers. --这个主要针对由 Github 托管的项目。
*Multibranch Pipeline
Creates a set of Pipeline projects according to detected branches in one SCM repository. 根据一个SCM存储库中检测到的分支创建一组 Pipeline 项目。
*文件夹
创建一个可以嵌套存储的容器。利用它可以进行分组。 视图仅仅是一个过滤器,而文件夹则是一个独立的命名空间, 因此你可以有多个相同名称的的内容,只要它们在不同的文件 夹里即可。
这里选择第一个:构建一个自由风格的软件项目, 输入项目名称:python test project ,点击 “OK”按钮。
构建一个测试任务
假设,我们有一个 Python 编写的测试脚本 py_tests.py ,位于电脑 D盘 根目录,内容如下:
import unittest, time
from selenium
import webdriver
class TestClass(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.base_url ="http://www.testclass.net"
def tearDown(self):
time.sleep(2)
self.driver.quit()
def test_case(self):
self.driver.get(self.base_url)
search_input = self.driver.find_element_by_name("q")
search_input.send_keys("selenium")
search_input.submit()
def test_case2(self):
self.driver.get(self.base_url)
search_input = self.driver.find_element_by_name("q")
search_input.send_keys("jenkins")
search_input.submit()
if__name__ =='__main__':
unittest.main()
下接来回到 Jenkins 的配置过程中,
![](https://img.haomeiwen.com/i5564331/e455a21f3e8db89a.png)
添加项目的描述:selenium 自动化测试项目。
剩下的选项都不要管,拖到页面底部,构建 选项。
![](https://img.haomeiwen.com/i5564331/cdb3390ed01d65a5.png)
选择 “Execute Windows batch command” 选项,执行Windows批处理命令。
![](https://img.haomeiwen.com/i5564331/91e85fd54262ca09.png)
如上图,输入你在 windows 命令提示符下所输的命令(python d:/py_tests.py)。 点击 “保存”。
![](https://img.haomeiwen.com/i5564331/977c732aea0eaabc.png)
一个极简的,基于 Windows 系统的,Python 脚本测试的 持续集成项目就创建完成了。
二、配置构建执行状态
运行构建
在项目 左侧列表点击 “立即构建” ,在 “Build History” 列表,你会得到一个红色的小圆点,表示构建失败。
![](https://img.haomeiwen.com/i5564331/7b109f876116328c.png)
点击 构建失败的任务(红色的小圆点)。然后点击“Console Output” 就可以查看失败的 log 了。
![](https://img.haomeiwen.com/i5564331/a47d964dac7cbc31.png)
提示:'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。
我们明明在 Windows 提示符下运行是没有问题的。这是因为 Jenkins 缺少环境配置。
配置构建执行状态
回到 Jenkins 首页,点击 “构建执行状态” ,右则会列出本机信息,点击本机信息,配置 Python 的 path 环境变量。同时还需要添加浏览器驱动文件所在目录,参考 。
![](https://img.haomeiwen.com/i5564331/19aaee94524390ce.png)
配置完成,点击 “保存” , 再来运行 “立即构建” ,这次看到 py_tests.py 自动化脚本被执行了。
查看控制台输出:
![](https://img.haomeiwen.com/i5564331/1e9b62bdc1386204.png)
好了!一个简单的 selenium + python 自动化测试的构建任务就创建完成了。
三、设置定时任务
设置定时任务
前面已经创建的 “python test project” 项目为例,单击项目左侧的 “配置” 选项,修改项目的配置。
找到 构建触发器 ,勾选 Build periodically 选项。
![](https://img.haomeiwen.com/i5564331/e32b144b2ed5c4ad.png)
通过查看设置说明,此处定时任务的格式遵循 cron 的语法(可以与 cron 的语法有轻微的差异)。具体格式,每行包含五个字段,通过 Tab 或空格分隔。
![](https://img.haomeiwen.com/i5564331/720e761b189d7aac.png)
字段说明
![](https://img.haomeiwen.com/i5564331/4c7bd8511adc159f.png)
若要指定一个字段的多个值,可以使用以下运算符,按先后顺序。
指定所有值
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 *
参考: