我在五台不同的机器上运行我的测试用例,并通过扩展报告获取报告。但在报告中,我无法确定测试用例在哪台机器上失败。所以我需要在每个测试的扩展报告中打印平台名和浏览器名。有人能帮我解决这个问题吗?
ukqbszuj1#
这是你提出的一个非常有趣的问题。有两件事,您需要添加到扩展报告中,即运行测试的浏览器和主机名浏览器:据我所知,您必须在自动化框架中的desiredcapabilities中传递浏览器名称。因此,无需从节点中选择,只需在扩展报告中添加该值即可。主机名:为了得到这个,我做了一些研究和开发,它是成功的。这是有点棘手,你可以添加这个代码在安装部分,它会返回你的节点ip和端口。在这里,主机名是我的集线器ip端口是我的集线器端口请尝试此代码和恢复,如果你面临任何问题
import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.By; import org.openqa.selenium.Platform; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.openqa.selenium.remote.SessionId; import com.google.gson.JsonObject; import com.google.gson.JsonStreamParser; public class TestGrid { public static void main(String[] args) throws MalformedURLException { String hostname = "10.10.4.176"; String port = "4441"; DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setBrowserName("firefox"); capabilities.setPlatform(Platform.WINDOWS); WebDriver driver = new RemoteWebDriver(new URL("http://"+hostname+":"+port+"/wd/hub"),capabilities); SessionId sessionid = ((RemoteWebDriver) driver).getSessionId(); driver.get("http://"+hostname+":"+port+"/grid/api/testsession?session="+sessionid); String nodeDetails = driver.findElement(By.xpath("//pre")).getText(); JsonStreamParser parser = new JsonStreamParser(nodeDetails); JsonObject obj = parser.next().getAsJsonObject(); System.out.println("Node name: "+obj.get("proxyId").getAsString()); String browserName = capabilities.getBrowserName().toLowerCase(); System.out.println("Browser name: "+browserName); String os = capabilities.getPlatform().toString(); System.out.println("Platform name: "+os); driver.get("http://www.google.com"); driver.manage().window().maximize(); } }
1条答案
按热度按时间ukqbszuj1#
这是你提出的一个非常有趣的问题。有两件事,您需要添加到扩展报告中,即运行测试的浏览器和主机名
浏览器:据我所知,您必须在自动化框架中的desiredcapabilities中传递浏览器名称。因此,无需从节点中选择,只需在扩展报告中添加该值即可。
主机名:为了得到这个,我做了一些研究和开发,它是成功的。这是有点棘手,你可以添加这个代码在安装部分,它会返回你的节点ip和端口。在这里,
主机名是我的集线器ip
端口是我的集线器端口
请尝试此代码和恢复,如果你面临任何问题