如何使用selenium+TestNG做web数据驱动测试

上一篇 / 下一篇  2014-04-25 21:32:31 / 个人分类:Selenium

学习研究seleniumTestNG框架有段时间了,觉得两个框架结合起来做web功能自动化测试是件利器。Seleniumn,Testng的优缺点和基础知识再此就不做赘述,google下就可以。

下面介绍如何使用selenium+TestNGWEB数据驱动测试,希望对正在学习selenium的童鞋有所帮助^_^

我使用的测试网站是在百度上找的一个计算BM网站(http://cn.onlinebmicalculator.com/);

需要用到TestNG的,@DataProvider@Test这两个注解

1.@DataProvider注解,定义一个方法来返回集合的参数,这些参数就是我们的测试数据,这些参数会自动传给我们的测试类

代码如下:

2.添加@Test(dataProvider="testData")到类里面,使用TestNg,通过测试数据方法的名(testData,我们可以执行我们希望测试的集合参数。加上此注解@Test(dataProvider=”methond name”)Testng会自动解析方法中测试数据并输入相应的参数中。

测试结果如下图:

如果有的童鞋不了解testng,要自己去学习下testng的基本知识哦。

假设我们测试数据有很多,如果我们都把他们写在代码里肯定不好维护,那么为了更容易维护我们的测试数据,我们可以把我们的测试数据放入到csv文件中。

下一篇,我将会分享如何使用testNG读取csv文件中的测试数据。

PS:完整代码如下


package com.testng;


import org.testng.Assert;

import org.testng.annotations.AfterTest;

import org.testng.annotations.BeforeTest;

import org.testng.annotations.DataProvider;

import org.testng.annotations.Parameters;

import org.testng.annotations.Test;

import org.openqa.selenium.*;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.WebDriverWait;


public class TestBMI {


private WebDriver driver;

private WebDriverWait wdriver;



@DataProvider

public String[][] testData() {


return new String[][] {


{ "180", "60", "18.5" }, { "180", "70", "21.6" },

{ "170", "65", "22.5" }, { "160", "50", "19.5" }, };

}


// 启动ChromeDriver并打开测试网页

@BeforeTest

public void setUp() {


System.setProperty("webdriver.chrome.driver", "./chromedriver.exe");

driver = new ChromeDriver();

driver.manage().window().maximize();

driver.get("http://cn.onlinebmicalculator.com/");


}


// 开始数据驱动测试

@Test(dataProvider = "testData")

public void testBMICalculator(String height, String weight,

String expectedBMI) {


// 输入身高

WebElement heightElement = driver.findElement(By

.cssSelector("input[name='f_height']"));

heightElement.clear();

heightElement.sendKeys(height);

// 输入体重

WebElement weightElement = driver.findElement(By

.cssSelector("input[name='f_weight']"));

weightElement.clear();

weightElement.sendKeys(weight);

// 点击计算按钮

WebElement computeElement = driver.findElement(By

.cssSelector("input[name='f_submit']"));

computeElement.click();

// 得到bmi元素的值

WebElement bmiElement = driver

.findElement(By.className("bmi_info")).findElement(

By.tagName("span"));

String actualBMI = bmiElement.getText();

System.out.println("actualBMI:" + actualBMI);

// 断言expectedBMI的值与actualBMI的值相等

Assert.assertEquals(expectedBMI, actualBMI);


}


// 关闭浏览器

@AfterTest

public void tearDown() {


driver.quit();

}


}


TAG:

引用 删除 TonyDian   /   2016-03-11 09:42:24
3
引用 删除 ymtesting   /   2015-07-16 21:29:44
5
jj_ljw的个人空间 引用 删除 jj_ljw   /   2015-06-18 11:22:39
正在学习selenium
jj_ljw的个人空间 引用 删除 jj_ljw   /   2015-06-18 11:22:19
3
 

评分:0

我来说两句

Open Toolbar