我有一个自动化框架,在其项目目录中使用静态html页面来执行某些aws操作,例如dynamoDB扫描和Aws Lambda执行。由于测试的依赖api组件存在一些性能瓶颈,我们尝试将框架移动到使用Amazon linux的ec2实例并从那里运行测试。
由于我们在TestNG类中有方法实际上使用selenium web驱动程序来启动浏览器并打开静态页面以执行所需的Aws操作,我很确定这个测试会遇到问题。 / p>
我认为有两种可能的方法可以解决这个问题:
我非常确定1号可以轻松实现,只需时间和精力。但是,很想知道是否有一种简单的方法来完成#2,因为这不需要任何代码重写。
答案 0 :(得分:0)
我们遇到了同样的问题并且在木偶戏上取得了成功,
https://github.com/GoogleChrome/puppeteer
如果您不想安装最新版本的节点,可以将测试停靠。
puppeteer可以无头或使用浏览器。
希望它有所帮助。
答案 1 :(得分:0)
无需更改测试中的任何内容,只需更改设置和执行。测试可以在Continuous Integration(CI)服务器上无头地运行。由于没有显示输出供浏览器启动,因此没有开箱即用的设置。但是使用Xvfb,您可以虚拟启动浏览器。直接来自文档:
Xvfb(X虚拟帧缓冲区的简称)是类UNIX操作系统(例如Linux)的内存显示服务器。它使您无需显示即可运行图形应用程序
根据您是否希望Xvfb在后台运行直到进程被终止,有两种选择:
Xvfb :99 &
export DISPLAY=:99
run-your-tests-here
或
xvfb-run run-your-tests-here
这是Linux tutorial。我正在使用这个基于Docker的Jenkins设置,每次都像魅力一样。