java - 需要使用 TestNG 在 java 类中循环

标签 java class for-loop methods testng

如果我有一个方法,我已经写了一个 for 循环,但是如果我的 TestNG 脚本中有多个方法怎么办。

如果我在公共(public)类中放置一个变量,我能够使其工作,但我需要它来运行主机号 2 到主机号 50。所以我在使用 TESTNG 时需要在类中进行循环,因此不能使用公共(public)静态主要。

这是我的代码,请告诉我我能做什么。我是菜鸟:(

    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");
    }
}

最佳答案

使用 testng.xml 中的参数并将它们传递给您的测试。

你的testng.xml:

<suite name="TestSuite">
    <test name="Test2">
        <parameter name="host" value="host2_CR" />
        <classes>
            <class name="SampleTest" />
        </classes>
    </test> <!-- Test2 -->
    <test name="Test3">
        <parameter name="host" value="host3_CR" />
        <classes>
            <class name="SampleTest" />
        </classes>
    </test> <!-- Test3 -->
    <!-- ... -->
    <test name="Test50">
        <parameter name="host" value="host50_CR" />
        <classes>
            <class name="SampleTest" />
        </classes>
    </test> <!-- Test50 -->
</suite> <!-- TestSuite -->

你的类(class):

public class SampleTest {

  WebDriver driver;
  String host;

  @Parameters({"host"})
  @BeforeTest
  public void beforeTest(String host) {
    this.host = host;
  }

  @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(this.host);
  }

}

关于java - 需要使用 TestNG 在 java 类中循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29636655/

相关文章:

java - 遍历双向链表时如何跳过空虚拟节点

C++ 基于上下文的类实现

c++ - 存储大的相似对象的更好方法

java - 为什么这个 for 循环 wordcount 方法在 java 中不起作用

Java - 在 ExecutorCompletionService 中为 Callable 定义超时

java - jsp图片显示_不断获取0x0尺寸

c# - 如何从另一个类访问 Winform 文本框控件?

JavaScript 循环和数组

Java for 循环变成负数?

java - PrintWriter 不写入指定文件