devops Selenium+Docker+Pipeline 自动化实例

rocl · December 27, 2017 · Last by dafeizhi replied at May 14, 2018 · 1902 hits

前言

去年公司推自动化,要求做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 · April 12, 2018 作者
liupeng 回复

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

rocl 回复

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

rocl #4 · May 09, 2018 作者

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

rocl #5 · May 09, 2018 作者
liupeng 回复

见上

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

rocl #7 · May 14, 2018 作者
dafeizhi 回复



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

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

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up