基于Docker Compose快速创建Web测试环境

作者: wywincl | 来源:发表于2017-05-09 11:18 被阅读457次

    背景介绍

    在Web UI自动化测试的时候,往往我们需要进行分布式的测试,或者是并发测试来加快自动化测试的效率。这时候,我们就需要大量的浏览器实例。早期的做法是,在一台比较好的服务器上利用虚拟机来启动多个操作系统实例,每个操作系统中装有浏览器。这个缺点是启动实例的速度慢,同时服务器的资源消耗严重,很难在同一台服务器上开启非常多的虚拟机实例。因此,我们将Docker引入进来,利用Docker轻量级的特性,来达到秒级的浏览器容器实例创建速度。

    Docker

    技术实现

    我们以一个简单的Robot Framework自动化测试过程,来演示如何创建chrome与firefox实例。

    第一步,编写Compose文件

    首先,我们编写docker-compose文件,如下图所示。


    Compose file

    第二步,启动selenium hub 与 node-chrome, node-firefox实例

    > sudo docker-compose up -d
    
    Containers

    第三步,执行测试脚本

    > robot BasicDemo.robot
    
    BasicDemo.robot

    查看测试结果

    robot 测试报告 测试用例运行截图

    以上样例,存放在github的wywincl/SeleniumTest项目中,可以自己克隆下来学习实验。

    小彩蛋。


    fortune + cowsay + lolcat

    参考文档

    Docker+Selenium Grid构建分布式Web测试环境

    相关文章

      网友评论

      • 撒贝龙:root@automation:/opt/robot/SeleniumTest# python2.7 -m robot BasicDemo.robot
        ==============================================================================
        BasicDemo
        ==============================================================================
        TestCase01 | FAIL |
        Element with locator 'id=kw' not found.
        ------------------------------------------------------------------------------
        BasicDemo | FAIL |
        1 critical test, 0 passed, 1 failed
        1 test total, 0 passed, 1 failed

        你好请问我是按照这个指导进行的,但是执行没有找到百度的对应元素,如何排查问题呢?
        撒贝龙:root@38f2da46aea5:/# curl 192.168.100.84
        <!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title***
        curl www.baidu.com
        进容器 curl了下 百度不行 但是目标测试环境可以 👌👌👌
        撒贝龙:看截图内容是无法访问此网站 :pray:
      • 130daa17c28d:Hi wywincl,关注你的文章很久了,最近也在尝试根据你的文章使用selenium docker来作为RobotFramework的执行机,我使用的是最新的版本:selenium/hub:3.14.0-arsenic和selenium/node-chrome-debug:3.14.0-arsenic,但是在执行RF用例的时候,报错“ValueError: No JSON object could be decoded”,查了好久都没有找出问题...来你这求解了
        130daa17c28d:@wywincl 我的robot用例很简单,就open browser,不用docker而直接用selenium的jar包的时候都没有问题的...
        wywincl:@汪汪BaBa 你这个问题,应该是你Robot用例写的有问题,是不是构造JSON对象的时候有错,你仔细检查一下

      本文标题:基于Docker Compose快速创建Web测试环境

      本文链接:https://www.haomeiwen.com/subject/huebtxtx.html