TestNG+Selenium Webdriver 数据(Excel)驱动的方法

本文介绍了如何结合TestNG和Selenium Webdriver利用Excel进行数据驱动测试。首先需要将jxl.jar库添加到项目lib目录,并创建数据驱动类ExcelData.java。确保使用的是.xls格式的Excel文件,因为.xlxs格式可能会导致I/O错误。另外,还可以通过RUN -as-ANT build命令来执行测试。

1.下载 jxl.jar 复制到测试项目的 lib 下,在项目中新建数据驱动类

ExcelData.java

package com.annie;

import java.io.File;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import jxl.*;

public class ExcelData implements Iterator<Object[]> {
	private Workbook book = null;
	private Sheet sheet = null;
	private int rowNum = 0;//行数
	private int curRowNo = 0;//当前行数
	private int columnNum = 0;//列数
	private String[] columnnName;//列名
/*在TestNG中,由@DataProvider(dataProv
### 结合使用 TestNGSelenium 进行测试 为了结合使用 TestNGSelenium 来执行自动化测试,可以按照以下方法来设计和实现测试框架。TestNG 是一种强大的 Java 测试框架,支持参数化、依赖性和并行测试等功能,而 Selenium 则专注于提供浏览器自动化的功能。 #### 配置环境 首先需要确保项目中有必要的依赖项。可以通过 Maven 或 Gradle 添加所需的库文件。以下是 Maven 中 `pom.xml` 文件的一个简单配置: ```xml <dependencies> <!-- Selenium Dependency --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.0.0</version> </dependency> <!-- TestNG Dependency --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.4.0</version> <scope>test</scope> </dependency> </dependencies> ``` #### 编写基本的 TestNG 测试类 下面是一个简单的例子,展示了如何利用 TestNG 注解以及 Selenium WebDriver 执行网页加载和屏幕截图的功能[^1]。 ```java import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; import org.testng.annotations.*; public class SampleTest { private WebDriver driver; @BeforeClass public void setUp() { System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); driver = new ChromeDriver(); driver.manage().window().maximize(); // Maximize browser window. } @Test public void testPageTitle() { String url = "https://www.example.com"; driver.get(url); // Verify page title matches expected value. String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, "Example Domain"); // Capture screenshot after loading the webpage. File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); try { FileUtils.copyFile(scrFile, new File("./screenshots/screenshot.png")); } catch (IOException e) { e.printStackTrace(); } } @AfterClass public void tearDown() { if(driver != null){ driver.quit(); } } } ``` 上述代码片段中包含了几个重要的概念: - **WebDriver 实例初始化**:在 `@BeforeClass` 方法中完成 WebDriver 的实例创建,并最大化窗口以便于观察。 - **断言验证**:通过 `Assert.assertEquals()` 对实际获取的结果与预期结果进行比较。 - **截取屏幕截图**:调用了 Selenium 提供的方法 `(TakesScreenshot)` 将当前页面保存为图片形式。 #### 关键组件解释 - **@Test**: 此注解标记了一个具体的测试方法,在运行时会被识别并单独执行[^3]。 - **@BeforeClass / @AfterClass**: 分别表示该标注下的方法会在整个测试类开始前/结束后被执行一次。通常用于资源分配(如打开浏览器)和释放(关闭浏览器)。 #### 并行测试的支持 如果希望多个测试能够同时运行,则可以在 TestNG XML 文件里定义 suite 属性 parallel="tests" 或者 methods 等选项。这样就可以充分利用多核 CPU 提高效率。 ```xml <suite name="Parallel Suite" parallel="methods"> <test name="Test One"> <classes> <class name="SampleTest"/> </classes> </test> </suite> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值