devops Selenium+Docker+Pipeline 自动化实例

rocl · 2017年12月27日 · 最后由 dafeizhi 回复于 2018年05月14日 · 2031 次阅读

前言

去年公司推自动化,要求做 web 自动化,于是首先调查自动化技术。

web 自动化调查

调查的自动化技术情况如下图,一番调查之后,选中 selenium

特点:

  • 使用 selenium/maven/testng/log4j
  • 基于 By 类重新进行了封装,使得只要 Jquery 能抓取到的元素,可以在浏览器中调试抓取页面元素,然后直接放到 java 代码中
  • 使用不同的配置文件跑不同级别的 cases
  • 支持 chrome/firefox

docker 调查

鉴于上面的自动化运行情况,必须要有 desktop,后台服务器包括 jenkins 都是 terminal 版本,考虑使用 docker+xvfb 方式运行。选用 selenium/standalone-firefox 和 selenium/standalone-chrome 作为自动化的运行容器。在进行必要的修改整理之后,需要使用的浏览器 docker 就准备好了。

特点:

  • 使用 docker 运行,使得服务器非常干净,不会弄脏服务器
  • 便于分布式使用和维护,一个 image 可以多处使用,且不用再维护运行环境,降低成本
  • 注意:制作需要的 image 时,需要熟悉 docker 的一些基本命令,并且会调试

pipeline 调查

自动化代码有了,运行环境也有了,最后决定选用比较新的 pipeline 插件。经过调查之后使用 Pipeline script(毕竟不是很复杂,暂时没有选用 declarative pipeline)。

特点:

  • 可扩展,为后续持续的流程做准备。

最终运行情况

经过调试运行,demo,运行情况良好。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

请问一下用 docker 可以看到浏览器可视化页面吗?

rocl #2 · 2018年04月12日 Author
liupeng 回复

看不到,整个环境都是 command 形式的服务器,所以没办法看到运行 web case 的浏览器,可以看到 log 信息
如果有问题,可以单独调试,调试通过再把代码 check in 到 git 中

rocl 回复

抱歉~ 这么晚才看到你的回复;command 形式的话,是否可以理解为类似 headless 的方式,执行用例的性能上会不会快很多呀;

rocl #4 · 2018年05月09日 Author

商业上的服务器一般都是没有桌面的,这个也就是我说的"command 形式"的意思
至于看不到可视化的浏览器,实际是使用 xvfb

rocl #5 · 2018年05月09日 Author
liupeng 回复

见上

原来的一些 jenkins 任务中静态检查能显示报告的插件,请问在 pipeline 中可以正常显示吗?

rocl #7 · 2018年05月14日 Author
dafeizhi 回复



这个可以解答您的问题吗?两张图片,分别是设置和结果

在这个地方可以显示吗?这里只能看到控制台日志内容,没有图表的相关信息。

你们通常这个看这个界面的吗?呵呵。感觉这个界面比较直观。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册