【问题标题】:Run automation on headless browser in an ec2 instance with Amazon linux使用 Amazon linux 在 ec2 实例中的无头浏览器上运行自动化
【发布时间】:2017-10-03 14:46:24
【问题描述】:

我有一个自动化框架,它使用其项目目录中的静态 html 页面来执行某些 aws 操作,例如 dynamoDB 扫描和 Aws Lambda 执行。由于测试的依赖 api 组件中存在一些性能瓶颈,我们正在尝试将框架移动到带有 Amazon linux 的 ec2 实例并从那里运行测试。

由于我们在 TestNG 类中有实际使用 selenium Web 驱动程序启动浏览器并打开静态页面以执行所需 Aws 操作的方法,因此我很确定该测试会遇到问题。

我认为解决此问题有两种可能的方法:

  1. 实现 AWSUtil 类并使用必要的 aws 客户端来替换依赖于 Web 的逻辑(需要一些努力和重新设计)
  2. 使用无头 chrome 浏览器(或任何兼容的浏览器)来运行与 Web 相关的步骤。

我很确定,第一名很容易实现,只是时间和精力的问题。但是,我很想知道是否有一种简单的方法可以完成 #2,因为这不需要任何代码重写。

【问题讨论】:

    标签: amazon-web-services selenium amazon-ec2 webautomation


    【解决方案1】:

    我们遇到了同样的问题,并且在 puppeteer 上取得了成功,

    https://github.com/GoogleChrome/puppeteer

    如果您不想安装最新版本的节点,可以将您的测试 dockerize。

    puppeteer 可以无头或浏览器运行。

    希望对你有帮助。

    【讨论】:

    • 我有一个使用 TestNG 和 Java 的独立框架。这将如何与它集成并在使用亚马逊 Linux 的 AWS EC2 上运行良好。能否提供更详细的步骤?
    【解决方案2】:

    无需更改测试中的任何内容,只需更改设置和执行即可。测试可以在持续集成 (CI) 服务器上无头运行。没有开箱即用的设置,因为没有可供浏览器启动的显示输出。但是使用 Xvfb,您可以虚拟启动浏览器。直接来自文档:

    Xvfb(X virtual framebuffer 的缩写)是一个用于类 UNIX 操作系统(例如 Linux)的内存显示服务器。它使您能够在没有显示器的情况下运行图形应用程序

    根据你是否想让 Xvfb 在后台运行直到进程被杀死,有两种选择:

    Xvfb :99 &
    export DISPLAY=:99
    run-your-tests-here
    

    或

    xvfb-run run-your-tests-here
    

    这是Linux tutorial。我将它用于基于 Docker 的 Jenkins 设置,并且每次都像魅力一样工作。

    【讨论】:

      猜你喜欢
      • 2016-06-25
      • 1970-01-01
      • 2014-09-14
      • 2023-03-29
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      相关资源
      最近更新 更多