docker - Selenium Mocha在AWS ECS Docker超时上进行测试

标签 docker selenium-webdriver mocha amazon-ecs

问题:由Selenuim Webdriver驱动的UI测试通过NodeJS平台上的Mocha执行并在AWS ECS上运行很慢,无法正常进行超时(超时= 120000 ms,即2分钟)。

设置:

  • 我在AWS ECS上有一个集群。群集具有3个m4.xlarge实例,因此CPU /内存不是问题。此外,EC2实例指标显示,即使在运行测试时,CPU /内存利用率也小于1%。
  • 每个容器都使用以下JSON定义:
    { "requiresAttributes": [ { "value": null, "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18", "targetId": null, "targetType": null }, { "value": null, "name": "com.amazonaws.ecs.capability.ecr-auth", "targetId": null, "targetType": null } ], "taskDefinitionArn": "someDefinition", "networkMode": "host", "status": "ACTIVE", "revision": 23, "taskRoleArn": null, "containerDefinitions": [ { "volumesFrom": [], "memory": 400, "extraHosts": null, "linuxParameters": null, "dnsServers": null, "disableNetworking": null, "dnsSearchDomains": null, "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ], "hostname": null, "essential": true, "entryPoint": [], "mountPoints": [ { "containerPath": "/dev/shm", "sourceVolume": "hostDevShm", "readOnly": null } ], "name": "foo-automation-container", "ulimits": null, "dockerSecurityOptions": null, "environment": [], "links": null, "workingDirectory": null, "readonlyRootFilesystem": null, "image": "foo-docker-container-image", "command": [], "user": null, "dockerLabels": null, "logConfiguration": null, "cpu": 0, "privileged": null, "memoryReservation": null } ], "placementConstraints": [], "volumes": [ { "host": { "sourcePath": "/dev/shm" }, "name": "hostDevShm" } ], "family": "foo-automation-tests" }

  • 我尝试了什么?
  • 除了销毁和重新创建集群和任务
    定义了无数次,我设置了网络模式=主机,然后我
    已基于this链接添加了卷安装。
  • 我已经确保这些测试可以完美运行(并且在
    通常速度)在本地VM上托管的容器上-问题
    仅适用于AWS ECS配置。
  • 我已经在网络上搜索了数天的解决方案,包括SO,Docker的帮助论坛和AWS文档。

  • 在这一点上,我撞墙了。非常感激任何的帮助。

    请让我知道是否需要其他信息。

    最佳答案

    好的,我已经在运行它-现在所有测试都在本地硬件上以性能级别执行。这是我所做的:

  • 首先,在您的任务定义中,设置网络模式=主机

  • 在与任务关联的容器定义中:
  • 确保删除所有端口映射-保留端口映射会干扰网络模式=主机设置。
  • 基于this link的卷挂载。
  • 将您的CPU单位设置为> 2048(基于0表示不受限制的CPU单位的假设,我将其设置为0)。
  • 将您的内存设置为> =4192。
  • 最重要的是,在“安全性”下,选中“特权”。

  • 一旦完成这些操作,UI测试就可以以其通常的速度(<1秒)绝对完美地运行。

    关于docker - Selenium Mocha在AWS ECS Docker超时上进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46368736/

    相关文章:

    docker - 如何检测 docker 守护进程端口

    python - 将 adblock 添加到 Chrome python selenium webdriver 时出错

    javascript - TypeError:Expect不是函数

    node.js - 在mocha单元测试中,如何模拟全局变量?

    docker - 如何在 Ubuntu Docker 中安装 s3fs

    python - 如何使与主机的Docker容器共享文件出现在容器中?

    excel - 我想确定以黄色突出显示的按钮的正确代码

    mocha - karma 与 Mocha 的区别

    python - 如何为 fabric local() 命令设置 docker-machine env

    javascript - 如何通过 Web Driver C# 检查整个 html 页面是否基于 <html> 函数加载?