【问题标题】:How to run one testcase parallelly in two environments with testng如何使用 testng 在两个环境中并行运行一个测试用例
【发布时间】:2018-09-09 15:47:26
【问题描述】:
如何使用 testng 在两个环境中并行运行一个测试用例
我有一个测试用例,需要在两个环境中运行
这里我使用的是 testNG、MAVEN,
【问题讨论】:
-
欢迎来到 Stack Overflow!请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享该研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
标签:
selenium-webdriver
testng
pom.xml
【解决方案1】:
您可以使用selenium grid,在单个测试用例上并行执行。
我建议你通过它来了解基本概念,
下面是示例代码,便于理解:
使用TestNG-Parameters
@Parameters("Browserforlogin")
@BeforeTest
// Parameter will get browser from testng.xml on which browser test to run
public void beforeClass(String myBrowser) throws MalformedURLException {
if (myBrowser.equalsIgnoreCase("chrome")) {
System.setProperty("webdriver.chrome.driver", driverpathchrome);
driver = new ChromeDriver();
} else if (myBrowser.equals("firefox")) {
System.setProperty("webdriver.gecko.driver", driverpathfirefox);
driver = new FirefoxDriver();
}
}
它将启动 Chrome 和 Firefox 浏览器进行并行执行,并从 testng.xml 配置调用(您必须在项目中定义)
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Parallel test suite" parallel="tests" thread-count="2">
<test name="demo1">
<parameter name="myBrowser" value="firefox"/>
<classes>
<class name="Your class name" />
</classes>
</test>
<test name="demo2">
<parameter name="myBrowser" value="chrome"/>
<classes>
<class name="Your class name" />
</classes>
</test>
</suite>