<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jenkins on 冯威的博客</title><link>https://fwhyy.com/tags/jenkins/</link><description>Recent content in Jenkins on 冯威的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 27 Apr 2020 11:44:33 +0800</lastBuildDate><atom:link href="https://fwhyy.com/tags/jenkins/atom.xml" rel="self" type="application/rss+xml"/><item><title>Jenkins 中以构建 Tag 来实现版本管理</title><link>https://fwhyy.com/2020/04/jenkins-implements-version-management-by-building-tags/</link><pubDate>Mon, 27 Apr 2020 11:44:33 +0800</pubDate><guid>https://fwhyy.com/2020/04/jenkins-implements-version-management-by-building-tags/</guid><description>&lt;p&gt;好的工具和流程能使我们事半功倍，而这个过程是不断迭代和演进的。关于这一块的内容，之前写过几篇文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://mp.weixin.qq.com/s?__biz=MzU0NjgzNzQyMw==&amp;amp;mid=2247483697&amp;amp;idx=1&amp;amp;sn=5bb54ebc35bac60b141c8c982159cfdb&amp;amp;chksm=fb56c7f1cc214ee7c671f5a8ddfe50887803dd4a3c62f50f011fa009931622a9fe20ff69cd1b&amp;amp;scene=21#wechat_redirect"&gt;在团队中使用GitLab中的Merge Request工作模式&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mp.weixin.qq.com/s?__biz=MzU0NjgzNzQyMw==&amp;amp;mid=2247483790&amp;amp;idx=1&amp;amp;sn=32208bf396e3b4afc9fddb5dcc05a156&amp;amp;chksm=fb56c74ecc214e5811b06711094e1a83ba8bf0770baea06a8c6c420654b3d70536be711817f1&amp;amp;scene=21#wechat_redirect"&gt;敏捷下的需求和代码分支管理&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mp.weixin.qq.com/s?__biz=MzU0NjgzNzQyMw==&amp;amp;mid=2247483844&amp;amp;idx=1&amp;amp;sn=b9abb7fe776b4a61fd639c979bc55c0c&amp;amp;chksm=fb56c704cc214e124a4d336a09334169a1bf524f876d525a4f959084f692a00ae33192b0b6d4&amp;amp;token=788167640&amp;amp;lang=zh_CN#rd"&gt;不断进化的分支和需求管理&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;现在又有了些新的变化和改进，之所以需要改进，肯定是遇到问题了，那么就先从问题来开始今天的文章。&lt;/p&gt;</description></item><item><title>CentOS7 安装 Jenkins（ 构建 Vue 和 dotNET Core ）</title><link>https://fwhyy.com/2020/02/centos7-install-jenkins/</link><pubDate>Tue, 04 Feb 2020 13:36:57 +0800</pubDate><guid>https://fwhyy.com/2020/02/centos7-install-jenkins/</guid><description>&lt;p&gt;之前的自动构建工具 Jenkins 是部署在公司内网的 Windows 服务器上，现在武汉处于非常时期，兄弟们都在家自我隔离，为了远程提交的代码能自动构建，需要在外网的 CentOS 服务器上搭建 Jenkins 环境来进行构建工作。&lt;/p&gt;</description></item><item><title>端到端测试实践：Jenkins集成TestCafe</title><link>https://fwhyy.com/2019/07/jenkins-and-testcafe/</link><pubDate>Mon, 08 Jul 2019 07:00:15 +0800</pubDate><guid>https://fwhyy.com/2019/07/jenkins-and-testcafe/</guid><description>&lt;p&gt;上一篇《&lt;a href="http://fwhyy.com/2019/07/some-thoughts-on-product-quality/"&gt;对产品质量的一点思考&lt;/a&gt;》中说到自动化测试的重要性，本文简单介绍下怎样在实际项目中实现端到端测试的自动化，在这里我们使用的端到端测试工具是TestCafe。&lt;/p&gt;
&lt;h2 id="环境"&gt;环境&lt;/h2&gt;
&lt;p&gt;Jenkisn：2.183
TestCafe：1.3.0&lt;/p&gt;
&lt;h2 id="为什么采用testcafe做自动化测试"&gt;为什么采用TestCafe做自动化测试&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;前端Vue或是netCore要添加单元测试相对较复杂，需要一定的时间来沉淀，不能解燃眉之急&lt;/li&gt;
&lt;li&gt;经常会因为代码重构、代码合并等原因造成原本正常的功能出现问题，而这些问题在手动测试时不容易覆盖到&lt;/li&gt;
&lt;li&gt;TestCafe足够简单，只要使用过jQuery，基本可以几分钟上手&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="要实现的目标"&gt;要实现的目标&lt;/h2&gt;
&lt;p&gt;目前前端代码通过GitLab来进行管理，采用Merge Request的开发模式，开发人员的代码被合并到master后，Jenkins会自动构建到测试环境，希望自动化测试能做到下面两点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能在前端项目构建完成后自动执行TestCafe脚本进行测试&lt;/li&gt;
&lt;li&gt;能提供测试的完整结果&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="步骤"&gt;步骤&lt;/h2&gt;
&lt;p&gt;1、在Jenkins中新创建一个新的项目&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201280613334.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Git中配置的测试的代码地址&lt;code&gt;https://github.com/oec2003/testcafe-ci-demo.git&lt;/code&gt;是我fork的官网的一个例子,原项目地址为：&lt;code&gt;https://github.com/DevExpress-Examples/testcafe-ci-demo.git&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;2、增加构建步骤，选择执行Windows批处理命令&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201280614319.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201280614096.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;D:\Jenkins\Testcafe\node_modules\.bin\testcafe path:C:\Users\oec2003\AppData\Local\Google\Chrome\Application\chrome.exe tests/**/* -r xunit:res.xml
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上面执行的命令分为三个部分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;testcafe的执行程序&lt;/li&gt;
&lt;li&gt;测试的浏览器的路径，此处为chrome的路径，这里有一个小坑，直接执行命令时是可以使用chrome或ie来选择测试浏览器的，但配置在Jenkins中如果直接写chrome或ie会报异常，所以写了chrome执行程序的全路径&lt;/li&gt;
&lt;li&gt;将结果输出到xunit的xml文件中&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;要想使用xunit，需要先使用下面命令进行安装&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;npm install testcafe testcafe-reporter-xunit
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;3、添加构建后操作，选择Publish JUnit test result report&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201280614661.webp" alt="" loading="lazy" decoding="async"&gt;

&lt;img src="https://img.fwhyy.com/2022/202201280614568.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;4、修改Jenkins中现有的前端项目的配置，增加构建后操作步骤，选择构建起他工程&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201280615176.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;选择第一步创建的测试项目即可。&lt;/p&gt;
&lt;p&gt;5、实际测试结果如下，所有测试用例的通过情况以列表形式展现，点击可以看详细信息&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201280615015.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="总结"&gt;总结&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Testcafe非常简单，有一定开发经验的程序员，可以在很短的时间内达到熟练的程度&lt;/li&gt;
&lt;li&gt;Testcafe虽然简单，但怎样去设置场景覆盖，让所有业务没有遗漏，这才是比较困难的，是我们需要着重思考的&lt;/li&gt;
&lt;li&gt;前端代码如果做了修改，特别是UI层面做了调整，测试代码需要同步修改&lt;/li&gt;
&lt;li&gt;只要能够持续下去，先从容易出错的模块开始，积少成多，软件质量的最后一道防线一定能守住&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>GitLab配合Jenkins打造自动化部署</title><link>https://fwhyy.com/2018/07/gitlab-combined-with-jenkins-to-build-automated-deployment/</link><pubDate>Sat, 14 Jul 2018 11:20:31 +0800</pubDate><guid>https://fwhyy.com/2018/07/gitlab-combined-with-jenkins-to-build-automated-deployment/</guid><description>&lt;p&gt;&lt;code&gt;GitLab&lt;/code&gt;有&lt;code&gt;CI&lt;/code&gt;和&lt;code&gt;CD&lt;/code&gt;功能模块，但我对&lt;code&gt;Jenkins&lt;/code&gt;更熟悉些，所以先使用&lt;code&gt;Jenkins&lt;/code&gt;将自动发布搭建起来，后面再继续研究&lt;code&gt;GitLab&lt;/code&gt;的&lt;code&gt;CI&lt;/code&gt;和&lt;code&gt;CD&lt;/code&gt;功能。&lt;/p&gt;</description></item></channel></rss>