【Jenkins系列之二】利用Jenkins+Github进行自动化测试的步骤
2015-02-02 17:39
393 查看
上一篇文章中,我们已经搭建了jenkins的持续集成环境,本文将指导我们如何利用jenkins进行持续集成。我们要达到这样的效果:在向位于Github 的项目 push 代码时,Jenkins 自动获取最新的代码并执行测试,并将测试结果通过Email通知我们。
其次,在Jenkins中指定Git的安装路径。方法是:进入Jenkins首页,点击系统管理,点击系统设置,在弹出的页面上,在Path to Git executable位置上输入:“C:\Program Files (x86)\Git\cmd\git.exe”
按照下面的步骤进行设置:
a、Restrict where this project can be run: 用来指定这个Job在哪个node上执行。这里要填写node名称(注意一定是名称)。这里我们选择master节点,也就是运行jenkins服务器的机器。
b、源码管理:选择Git,输入Github上对应项目的Repository URL,例如我的是:git@github.com:liuchunming033/build.git,当进行构建时,jenkins会去该url获取你的代码到当前workspace。Credential这里点击Add,并且选择“SSH
Username with private key”(我选择过其他的方式,好像只有这种方式才能从github上下载代码),将“安装与设置Git”这一节的private key粘贴到Private Key文本框中。
还可以选择git仓库的branch。
c、构建:我们要增加构建步骤-Execute Windows batch command,这里填写执行构建的脚本命令。因为我是做测试工作的,这里填写执行测试脚本的命令:python .\unit.py
点击保存。
【注意】
要想让测试能在slave节点运行成功,要在slave上进行必要的测试环境的设置。比如我的工作中的测试使用python来写的,那么在运行测试的机器上就要安装python环境。
构建完成后,可以看到Github上的代码已经下载到了JOB的工作空间中。
当构建完成后,可以查看本次构建的控制台输出,应该类似下面这样:
4.1 push 代码时自动触发测试
现在我们已经可以手动触发持续集成来运行测试了,下面配置在 push 代码时自动触发测试。
在JOB设置页面中的“构建触发器”区域,勾选"Build when a change is pushed to GitHub "和"Poll SCM ",这两项的作用分别是当GitHub有版本库更新时触发Jenkins进行构建和定期检查版本库是否有更新,如果有更新则触发Jenkins进行构建。这里要注意Schedule语法,例如“H/2 * * * *”表示每隔2分钟检查一次。
这样,当我们修改本地的测试脚本unit.py,并且commit到本地并且push到Github上之后,过2分钟就会自动触发Jenkins进行测试。
测试完成之后,进入到最新的一次构建中查看构建结果如下图,从图中可以看到本次的构建是由于SCM change导致的,并且changes的具体信息看到是进行了一次“add email address”的commit操作。
e-mail 并填写自己的Email地址再点Test configuraton 进行测试, 如果可以收到测试邮件则说明配置成功。然后点击页面底部的Save。
接下来进入Job页面,点击 Configure 进入Job的配置页面,在最下面的 Add post-build action 选择E-mail Notification,然后在Recipients 输入接收通知邮件的邮箱地址,多个地址之间用英文空格隔开 (建议使用邮件列表地址)。
接着,在下面的“构建后操作”中,点击“Add post-build action”按钮,在列表中选择“Publish JUnit test result report”。由于我们的报告是输出到job根路径下,所以我们这里直接填写XML文件名。如下图所示。
1、安装与设置Git
首先,执行构建的机器要安装Git以便于从Github上下载代码。安装与设置方法参考:/article/1991377.html其次,在Jenkins中指定Git的安装路径。方法是:进入Jenkins首页,点击系统管理,点击系统设置,在弹出的页面上,在Path to Git executable位置上输入:“C:\Program Files (x86)\Git\cmd\git.exe”
2、新建JOB
在Jenkins首页点击“新建”,进入到新建JOB的页面。输入JOB名称,并选择“构建一个自由风格的软件项目”。点击OK。按照下面的步骤进行设置:
a、Restrict where this project can be run: 用来指定这个Job在哪个node上执行。这里要填写node名称(注意一定是名称)。这里我们选择master节点,也就是运行jenkins服务器的机器。
b、源码管理:选择Git,输入Github上对应项目的Repository URL,例如我的是:git@github.com:liuchunming033/build.git,当进行构建时,jenkins会去该url获取你的代码到当前workspace。Credential这里点击Add,并且选择“SSH
Username with private key”(我选择过其他的方式,好像只有这种方式才能从github上下载代码),将“安装与设置Git”这一节的private key粘贴到Private Key文本框中。
还可以选择git仓库的branch。
c、构建:我们要增加构建步骤-Execute Windows batch command,这里填写执行构建的脚本命令。因为我是做测试工作的,这里填写执行测试脚本的命令:python .\unit.py
点击保存。
【注意】
要想让测试能在slave节点运行成功,要在slave上进行必要的测试环境的设置。比如我的工作中的测试使用python来写的,那么在运行测试的机器上就要安装python环境。
3、手动触发构建
进入JOB页面,点击左侧的“立即构建”就可以进行一次构建,这是手动触发构建。构建的代替步骤应该是首先从Gtihub上clone最新的代码到当前JOB的工作空间中,也就是workspace中。构建完成后,可以看到Github上的代码已经下载到了JOB的工作空间中。
当构建完成后,可以查看本次构建的控制台输出,应该类似下面这样:
Started by user anonymous Building on master in workspace C:\Program Files (x86)\Jenkins\jobs\PythonRun\workspace Cloning the remote Git repository Cloning repository git@github.com:liuchunming033/build.git > C:\Program Files (x86)\Git\cmd\git.exe init C:\Program Files (x86)\Jenkins\jobs\PythonRun\workspace # timeout=10 Fetching upstream changes from git@github.com:liuchunming033/build.git > C:\Program Files (x86)\Git\cmd\git.exe --version # timeout=10 using GIT_SSH to set credentials > C:\Program Files (x86)\Git\cmd\git.exe -c core.askpass=true fetch --tags --progress git@github.com:liuchunming033/build.git +refs/heads/*:refs/remotes/origin/* > C:\Program Files (x86)\Git\cmd\git.exe config remote.origin.url git@github.com:liuchunming033/build.git # timeout=10 > C:\Program Files (x86)\Git\cmd\git.exe config remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 > C:\Program Files (x86)\Git\cmd\git.exe config remote.origin.url git@github.com:liuchunming033/build.git # timeout=10 Fetching upstream changes from git@github.com:liuchunming033/build.git using GIT_SSH to set credentials > C:\Program Files (x86)\Git\cmd\git.exe -c core.askpass=true fetch --tags --progress git@github.com:liuchunming033/build.git +refs/heads/*:refs/remotes/origin/* > C:\Program Files (x86)\Git\cmd\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > C:\Program Files (x86)\Git\cmd\git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 Checking out Revision 5cccefe3d4a755e97e04dac7f901009f0ddc41d3 (refs/remotes/origin/master) > C:\Program Files (x86)\Git\cmd\git.exe config core.sparsecheckout # timeout=10 > C:\Program Files (x86)\Git\cmd\git.exe checkout -f 5cccefe3d4a755e97e04dac7f901009f0ddc41d3 > C:\Program Files (x86)\Git\cmd\git.exe rev-list 5cccefe3d4a755e97e04dac7f901009f0ddc41d3 # timeout=10 [workspace] $ cmd /c call C:\Windows\TEMP\hudson1838296705227589066.bat C:\Program Files (x86)\Jenkins\jobs\PythonRun\workspace>python .\unit.py .. ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK C:\Program Files (x86)\Jenkins\jobs\PythonRun\workspace>exit 0 Finished: SUCCESS
4、自动触发构建
4.1 push 代码时自动触发测试
现在我们已经可以手动触发持续集成来运行测试了,下面配置在 push 代码时自动触发测试。在JOB设置页面中的“构建触发器”区域,勾选"Build when a change is pushed to GitHub "和"Poll SCM ",这两项的作用分别是当GitHub有版本库更新时触发Jenkins进行构建和定期检查版本库是否有更新,如果有更新则触发Jenkins进行构建。这里要注意Schedule语法,例如“H/2 * * * *”表示每隔2分钟检查一次。
这样,当我们修改本地的测试脚本unit.py,并且commit到本地并且push到Github上之后,过2分钟就会自动触发Jenkins进行测试。
测试完成之后,进入到最新的一次构建中查看构建结果如下图,从图中可以看到本次的构建是由于SCM change导致的,并且changes的具体信息看到是进行了一次“add email address”的commit操作。
4.2 周期性触发测试
有的时候,我们可能需要周期性的运行测试。比如,我们的测试执行完成一轮需要30分钟,我们可以设置每隔1小时执行一轮,这样在晚上让jekins运行测试的时候,一个晚上就可以多执行几轮。如果我们想每隔2分钟执行一次,可以像下图这样设置。4.3 其他JOB触发测试
Jenkins允许当其他的job完成后,执行当前的job,这个功能对于测试工程师非常用。我们可以将测试之前的环境部署设置为一个叫作prepareenv 的JOB,只有当这个job完成,即环境搭建完成,才执行测试的job。这种情况下,我们可以在构建触发器的时候选择Build after other projects are built,并设置需要所依赖的JOB。5、构建后的操作
有时,我们希望当构建失败的时候,让Jenkins发送Email告知我们。邮件的内容就是构建时候的控制台输出。5.1、配置邮件通知
从Jenkins首页进入到系统管理-->系统设置,在“邮件通知”区域,输入SMTP服务器地址,以Gmail为例: SMTP server 输入smtp.gmail.com,点击Advanced…, 勾选Use SMTP Authentication,User Name 和Password 输入 Gmail 邮箱地址和密码。 然后可以勾选Test configuration by sending test
e-mail 并填写自己的Email地址再点Test configuraton 进行测试, 如果可以收到测试邮件则说明配置成功。然后点击页面底部的Save。
接下来进入Job页面,点击 Configure 进入Job的配置页面,在最下面的 Add post-build action 选择E-mail Notification,然后在Recipients 输入接收通知邮件的邮箱地址,多个地址之间用英文空格隔开 (建议使用邮件列表地址)。
5.2 Jekins生成测试报告
首先,我们需要生成一个Jekins能够读懂的测试报告,如果使用pytest执行测试,那么我们需要生成这样执行测试:py.test --junitxml results.xml tests.py这样就会在该项目的workspace的根目录下生成一个叫result.xml报告。
接着,在下面的“构建后操作”中,点击“Add post-build action”按钮,在列表中选择“Publish JUnit test result report”。由于我们的报告是输出到job根路径下,所以我们这里直接填写XML文件名。如下图所示。
相关文章推荐
- 利用Jenkins+Phantomas进行前端性能自动化测试
- 利用Jmeter进行压力测试的步骤
- 利用LoadRunner进行http接口功能自动化测试
- 利用appscan进行自动化定期安全测试
- Jenkins参数化构建进行自动化测试
- 利用Python进行Windows环境下的自动化测试
- 【JMeter 菜鸟实操之二】linux下采用Jenkins、Ant实施自动化测试集成方案(结合网上资料,纠正部分操作)
- 利用monkey工具进行简单自动化测试
- Tabular系列之问题1:如何利用其他人的账号进行权限测试?
- 在Jenkins上进行自动化测试(非maven项目)
- 如何利用selenium来进行自动化页面测试
- 【软件测试自动化-QTP系列讲座 6】== 利用DotNetFactory调用.NET类库 ==
- 一个完整利用InternetOpen等系列函数进行下载的测试例子
- 使用Jenkins进行CI集成化测试和自动化部署
- 测试系列之二----如何进行单元测试
- 利用LoadRunner进行http接口功能自动化测试
- firefox 利用 Selenium IDE 对 DBackup 进行自动化测试
- spoon+robotium+jenkins进行自动化持续回归测试
- 使用Jenkins+Sonarqueb进行自动化测试和代码质量检测
- testNG+maven+git+jenkins 进行自动化测试-安装