1

我想启动网页测试,它将使用selenium在 Firefox 上运行测试。

与此同时,我想使用 vnc viewer 来查看正在进行的测试。

但我不想在 vnc 查看器中输入命令。我可以 ssh 到 vnc 会话,以便我可以通过 putty 或其他 ssh 客户端启动测试。

例如,如果我键入firefox命令,我可以在查看器中看到浏览器打开。

谢谢

4

1 回答 1

2

长帖警告!

这是我认为您要问的问题:

  • 你有一个在 selenium 上运行的 vnc 服务器实例。
    • 此实例由 selenium 上的脚本或其他 vnc 客户端控制。
    • 这个实例有一个虚拟帧缓冲区和一个可以运行测试的 xwindows 会话。
  • 然后你想要两种连接
    • 命令输入功能,例如 ssh 进入 selenium 盒上 x-session 终端上的 shell
    • 来自基于 Putty 的系统的查看功能,您可以在不影响 selenium 盒上程序运行的情况下启动和停止该功能。我假设查看器是一个 Windows 系统,因为这是 putty 运行的。

这需要您设置四件事。

1)关于硒盒的会话;2) 基于油灰的 VNC 隧道 3) 控制 VNC 会话,以及 4) 查看器会话。

1)您需要硒盒上的Xvnc会话。 你会想要使用vncserver来启动它,因为它会为你做很多事情。选择一个未使用的 vnc 端口(它们在 5900 + 显示编号的范围内)。您提供显示编号(例如:2)、几何形状(我发现我还必须提供深度),以及为了安全起见,参数localhost

这使得命令看起来像这样:

vncserver :2 -geometry 1280x1024 -depth 24 -localhost -AlwaysShared

如果这是您第一次运行此命令,它会要求您输入密码,默认情况下,此密码将使用单向加密并存储在您的主目录 ~/.vnc/passwd 中。(查看手册页以获取所需的权限。)同样,如果这是您第一次,vncserver脚本还将设置另外一个文件,并且每次启动它都会创建两个新文件:(.log.pid)。

  • xstart 这是一个在虚拟帧缓冲区中启动 x 会话的 shell 脚本。如果有人可以提供对此的参考会有所帮助 - 它很敏感,并且在每个系统上似乎都不同。使用主目录之外的文件会很复杂。我建议让不同的用户在其空间中运行这些测试。使用vncserver提供的 xstart 文件更有可能获得成功
  • hostname:session.log包含 xstart 脚本的命令输出。找出问题所在可能很方便。
  • hostname:session.pid包含 Xvnc 服务器的进程 ID,以便vncserver -kill :2知道要杀死谁。

2)您需要设置腻子隧道。 Putty 可以使用 ssh 连接到远程 selenium 盒。听起来好像你以前用过这个,所以我将只展示如何建立从本地主机到服务器的隧道。下面这两张图片是 Putty 配置屏幕,以便您拥有隧道。

Putty -> 配置 -> SSH -> Auth(告诉它你的私钥在哪里。

Putty -> 配置 -> SSH -> Auth(你告诉它你的私钥在哪里

这是您输入隧道端口名称的地方 - 条目设置为添加 remote:5902 <-> localhost:5901

这是您输入隧道端口名称的地方 - 条目设置为添加 remote:5902 <-> localhost:5901

3) 设置控制连接 您有两个选择。

  1. 您可以在 Putty 终端中设置显示变量

bash %导出 DISPLAY=:2
bash % firefox &

  1. 一旦隧道启动并运行,您就可以连接命令 vnc 客户端和查看 vnc 客户端。我在windows上使用tightVNC,它工作得很好。请注意,您提供的不是在tightvnc 中提供远程主机的名称,而是提供连接localhost:2,如下图所示:

使用红色圆圈配置按钮进入以下菜单 - 请注意,您使用主机名“localhost”

使用红圈配置按钮进入以下菜单

两个红色圆圈显示您要设置的两个选项

两个红色圆圈显示您要设置的两个选项。对于控制连接,取消选中仅查看复选框。

** 4) 观看连接!** 您的设置方式与上面的选项 2 相同,但请选中仅查看复选框。

在这两种情况下,您可能都想检查请求共享会话

让我知道这对你有用。

于 2015-11-17T23:10:42.377 回答