我有几个 Selenium 测试从 Jenkins (在Linux上)远程运行到使用 Selenium Grid 的Windows计算机。在测试开始之前,我需要一种可靠kill
IE的所有实例的方法。这些测试都使用TestNG端到端运行,因此需要在@BeforeMethod
的每个测试开始时执行此方法。我知道如何使用Java来kill
任务,但由于代码实际部署在Linux机器上,因此我不知道如何工作(据我所知)。任何帮助,将不胜感激!
答案 0 :(得分:1)
您可以使用winrm4j从远程Windows框中的java代码执行命令。类似的东西:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v7="urn://oracle.bi.webservices/v7">
<soapenv:Header/>
<soapenv:Body>
<v7:executeXMLQuery>
<v7:report>
<v7:reportPath>absolute_report_path
</v7:reportPath>
<v7:reportXml></v7:reportXml>
</v7:report>
<v7:outputFormat></v7:outputFormat>
<v7:executionOptions>
<v7:async></v7:async>
<v7:maxRowsPerPage></v7:maxRowsPerPage>
<v7:refresh></v7:refresh>
<v7:presentationInfo></v7:presentationInfo>
<v7:type></v7:type>
</v7:executionOptions>
<v7:reportParams>
<!--Zero or more repetitions:-->
<v7:filterExpressions></v7:filterExpressions>
<!--Zero or more repetitions:-->
<v7:variables>
<v7:name></v7:name>
<v7:value></v7:value>
</v7:variables>
<!--Zero or more repetitions:-->
<v7:nameValues>
<v7:name></v7:name>
<v7:value></v7:value>
</v7:nameValues>
<!--Zero or more repetitions:-->
<v7:templateInfos>
<v7:templateForEach></v7:templateForEach>
<v7:templateIterator></v7:templateIterator>
<!--Zero or more repetitions:-->
<v7:instance>
<v7:instanceName></v7:instanceName>
<!--Zero or more repetitions:-->
<v7:nameValues>
<v7:name></v7:name>
<v7:value></v7:value>
</v7:nameValues>
</v7:instance>
</v7:templateInfos>
<!--Optional:-->
<v7:viewName></v7:viewName>
</v7:reportParams>
<v7:sessionID>session_id_Earlier_Generated</v7:sessionID>
</v7:executeXMLQuery>
</soapenv:Body>
</soapenv:Envelope>
答案 1 :(得分:1)
您可以使用一些远程管理工具,也可以只创建一个微服务,它将在目标工作站上运行,并接受带有远程文件系统/任务管理命令的http请求。
选中此article,其中介绍了如何为此类任务构建简单服务和Jenkins插件。还有关于来源的链接。
答案 2 :(得分:0)
在Windows PC上创建一个bat文件并写下以下行
taskkill /F /IM iexplore.exe /T
它会杀死Internet Explorer的所有实例。 现在,每次您想要确保所有Internet Explorer实例都已关闭。运行此bat文件