【发布时间】:2015-06-20 14:42:28
【问题描述】:
如果我有一个方法,我已经编写了一个 for 循环,但是如果我的 TestNG 脚本中有多个方法怎么办。
如果我在公共类中放置一个变量,我可以让它工作,但我需要它来运行 hostnum 2 到 hostnum 50。所以在使用 TESTNG 时我需要一个类中的 for 循环,因此不能使用公共静态主要。
这是我的代码,请告诉我我能做什么。我是菜鸟:(
package firsttestngpackage;
import org.openqa.selenium.*;
import org.testng.annotations.*;
import org.openqa.selenium.chrome.ChromeDriver;
public class Test5 {
WebDriver driver;
//I NEED A FOR LOOP WITHIN THIS CLASS!!
//THIS IS NOT WORKING
/* for {
}
int hostnum = x;*/
//THIS IS NOT WORKING
/* for (int x = 1; x <= 2; x++){
int hostnum = x;
}*/
//THIS IS WORKING BUT NO LOOP :(
int hostnum = 2;
@Test(priority = 1, enabled = true)
public void method1() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.google.com");
}
@Test(priority = 2, enabled = true)
public void method2() throws Exception {
driver.findElement(By.id("lst-ib")).sendKeys("host" + hostnum + "_CR");
}
}
【问题讨论】:
-
你指的是这个吗? :codeaffine.com/2013/04/10/… 可能与静态变量混合,你就设置好了?
-
@BrandonLing 不完全是。我没有运行junit。将我的 webdriver 作为 TestNG 运行。我将需要多次运行此主机编号。将其视为负载测试和创建多个用户。上面的代码示例并不完全是我的脚本所代表的内容,但我只需要在类中获取这个 for 循环,这样我就可以在我的所有 11 个测试方法中使用该主机号(我的示例代码中没有显示)
-
好的,那怎么样,将hostnum设置为静态变量,然后在方法中递增它:stackoverflow.com/questions/26128289/…
-
@BrandonLing 我用谷歌搜索了调用计数,但看不到它对我的情况有帮助。我有 10 种测试方法,大多数都有 hostnum。我需要为 hostnum=1 运行所有 10 种测试方法,然后运行 2,3,4 等等。可以把它想象成创建 100 个用户,通过一个注册过程,但它包括 10 个 TestNG 上的测试方法,所以我可以将每个方法保留在我的 TestNG 报告中。感谢您的输入,如果有什么请告诉我。
标签: java class for-loop methods testng