我正在尝试解决问题,我希望能用Selenium Grid做到这一点,但我不完全确定它是可能的。这是我的问题......我正在使用Selenium WebDriver开发测试用例,我需要在Windows机器上运行测试但是AUT在Linux服务器上运行。我有几个只在Linux上运行的工具,我希望能够在Windows机器上运行一些命令/测试,在Linux服务器上运行其他命令/测试。例如
或者我可以弄清楚如何从Windows机器远程运行这些命令,但我并不期待这样做。
答案 0 :(得分:1)
开箱即用,您无法使用selenium在本地计算机上运行命令。 Selenium / Webdriver是一个浏览器测试工具,只能与浏览器进行交互。
根据您的评论更新答案
两种方式的共同点(我认为你已经知道)
在你的java代码中你应该有webdriver / selenium命令的代码,它们将执行步骤1和2.你的java代码也应该包含执行linux命令的逻辑/代码作为步骤3.步骤4应该再次是你的webdriver命令。
这个测试代码应该从linux服务器运行,这样java命令就会在linux框中执行。
现在唯一的待处理部分是在远程机器中执行测试。
在Windows机器中启动selenium服务器。将您的java测试指向此机器中运行的selenium服务器。如果您的Windows机器IP是10.0.0.1,您应该将webdriver对象初始化为
WebDriver wd = new RemoteWebDriver(new URL("http://10.0.0.1:4444/wd/hub"),DesiredCapabilities.Firefox());
这会将所有webdriver命令发送到端口4444上运行在10.0.0.1中的selenium服务器。然后,您的测试将在Windows机器中执行。为此,您的Linux服务器和Windows机器应该在同一个网络中。
它与上面的相同,但是不应该给出windows机器的ip / dns名称,而应该给出hub机器的ip / dns名称。您还应该将Windows计算机注册为该集线器的RC。
答案 1 :(得分:0)
我认为使用 AutoIT 类型的 Windows 框架,我们可以调用 C:\Windows\System32\cmd.exe
来打开命令提示符并运行一些 .bat 文件。如果是 Linux /bin/csh or /bin/bash myscript.sh
。