前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >jenkins并行构建

jenkins并行构建

原创
作者头像
陈不成i
修改2021-06-01 17:57:24
修改2021-06-01 17:57:24
1.7K0
举报
文章被收录于专栏:ops技术分享ops技术分享

如果需要分别在Chrome、Firefox、IE等浏览器的各个不同版本中对同一个web应用进行UI测试,怎么做呢?

  1. pipeline {
  2. agent any
  3. stages {
  4. stage('Build') {
  5. steps {
  6. echo 'Building..'
  7. }
  8. }
  9. stage('Test on Chrome') {
  10. steps {
  11. echo 'Testing..'
  12. }
  13. }
  14. stage('Test on Firfox') {
  15. steps {
  16. echo 'Testing..'
  17. }
  18. }
  19. }
  20. }

不论是将UI分别放在不同的阶段还是步骤中,这种按顺序执行的测试都太慢了,慢到执行一次完整的UI测试要一小时以上。

通过仔细分析你会发现,这些测试是可以并行执行的。就像原来只有一个测试人员,要测试4个浏览器,他只能测试完一个浏览器,再测试另一个浏览器,但是现在有4个测试人员,他们就可以同时进行测试。这样测试耗时就降到了原来的1/4。

很明显,Jenkins pipeline插件支持这种并行构建,并且使用起来也非常简单。

  1. pipeline {
  2.     agent none
  3.     stages {
  4.         stage('Run Tests') {
  5.             failFast true
  6.             parallel {
  7.                 stage('Test On Chrome') {
  8.                     agent { label "chrome" }
  9.                     steps {
  10.                         echo "Chrome UI测试"
  11. }
  12. }
  13.                 stage("Test On Firefox") {
  14.                     agent { label "firefox" }
  15.                     steps {
  16.                         echo "Firefox UI测试"
  17. }
  18. }
  19.                 stage("Test On IE") {
  20.                     agent { label "ie" }
  21.                     steps {
  22.                         echo "IE UI测试"
  23. }
  24. }
  25. }
  26. }
  27. }
  28. }

在stages部分包含一个Run Tests阶段,在这个阶段下包含一个parallel块,在parallel块下又包含了多个阶段。位于parallel块下的阶段都并行执行,而且并行阶段还可以被分到不同的Jenkins agent上执行。

因为parallel本身不包含任何步骤,所以在parallel块下本身不允许包含agent和tools。

在默认情况下,pipeline要等待parallel块下所有的阶段都执行完成,才能确定结果。如果希望所有并行阶段中的某个阶段失败后,就让其他正在执行的阶段都中止,那么只需要在与parallel块同级的位置加入failFast true就可以了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档