加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 同时测试浏览器;收到错误

发布时间:2020-12-15 02:11:36 所属栏目:Java 来源:网络整理
导读:现在,我正在尝试进行我的第一个测试,它将同时测试浏览器Chrome,Firefox,IE和Safari.但是我得到的以下错误是: FAILED CONFIGURATION: @BeforeMethod beforeMethod org.testng.TestNGException: Parameter ‘browser’ is required by @Configuration on meth
现在,我正在尝试进行我的第一个测试,它将同时测试浏览器Chrome,Firefox,IE和Safari.但是我得到的以下错误是:

FAILED CONFIGURATION: @BeforeMethod beforeMethod
org.testng.TestNGException:
Parameter ‘browser’ is required by @Configuration on method beforeMethod but >has not been marked @Optional or defined

我正在使用Selenium,TestNG和Maven以及JAVA语言. XML测试套件文件和java文件位于目录中的同一文件夹中.我能够在线找到测试套件XML文件的内容如下(类名值设置为正确的包和类名):

<?xml version="1.0" encoding="UTF-8"?>
<DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="2" parallel="tests">
 <test name="ChromeTest">
  <parameter name="browser" value="chrome" />
    <classes>
        <class name="com.sqa.ts.multiBrowser.BrowserTest">
        </class>
    </classes>
 </test>
 <test name="FirefoxTest">
    <parameter name="browser" value="firefox" />
    <classes>
        <class name="com.sqa.ts.multiBrowser.BrowserTest">
        </class>
    </classes>  
 </test>
 <test name="IETest">
    <parameter name="browser" value="ie" />
     <classes>
        <class name="com.sqa.ts.multiBrowser.BrowserTest">
        </class>
     </classes>
 </test>
 <test name="SafariTest">
    <parameter name="browser" value="safari" />
    <classes>
        <class name="com.sqa.ts.multiBrowser.BrowserTest">
        </class>
    </classes>
 </test>
</suite>

下面是我的代码,只需打开浏览器以确保它将运行并通过:

package com.sqa.ts.multiBrowser;

import java.net.MalformedURLException;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.safari.SafariDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class BrowserTest {

  private WebDriver driver;

  @Test
  public void testCaSEOne() {
    driver.get("http://www.google.com");
    driver.close();
  } 

  @BeforeMethod
  @Parameters("browser")
  public void beforeMethod(String browser) throws MalformedURLException {
    if (browser.equalsIgnoreCase("chrome")) {
        System.setProperty("webdriver.chrome.driver","C:/Users/Trevor/workspace/BrowserTest/drivers/chromedriver.exe");
        driver = new ChromeDriver();

    } else if (browser.equalsIgnoreCase("firefox")) {
        driver = new FirefoxDriver();

    } else if (browser.equalsIgnoreCase("ie")) {
        System.setProperty("webdriver.ie.driver","C:/Users/Trevor/workspace/BrowserTest/drivers/IEDriverServer.exe");
        driver = new InternetExplorerDriver();

    } else if (browser.equalsIgnoreCase("safari")) {
        driver = new SafariDriver();
    }
}

  @AfterMethod
  public void afterMethod() {
    driver.quit();
  }

}

如果有人能够让我了解造成这个问题的原因,我将不胜感激.谢谢.

解决方法

看起来你缺少pom.xml中的testNG配置

<build>
    <plugins>
        <!-- Following plugin executes the testng tests -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>
            <configuration>
                <!-- Suite testng xml file to consider for test execution -->
                <suiteXmlFiles>
                    <suiteXmlFile>src/test/java/com/sqa/ts/multiBrowser/testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
</build>

运行mvn clean install或mvn clean install应运行测试用例.希望这对你有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读