Selenium 数据驱动测试

本案例将使用Testng框架

数据由.csv文件提供

下面我们直接看代码:

package selenium_01;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class Sjqd {
	 WebDriver dr;
	  String URL="http:\\192.168.8.200";
	@Test(dataProvider="sj")
	  public void f(String user,String password) throws InterruptedException {
		dr.get(URL);
		dr.findElement(By.id("zentao")).click();
		Thread.sleep(1000);
		dr.findElement(By.id("account")).sendKeys(user);
		dr.findElement(By.name("password")).sendKeys(password);
		dr.findElement(By.id("submit")).click();
		Thread.sleep(2000);
		//下面的几部是为了判断登录是否成功用的
		String aString=dr.getCurrentUrl();
		String s="my";
		if (aString.contains(s)) {
			System.out.println("用户名为 :"+user+"  密码为 :"+password+"  的用户登录成功");
		}else {
			System.out.println("用户名为 :"+user+"  密码为 :"+password+"  的用户登录失败");
		}
		dr.get(URL);
		Thread.sleep(3000);
		}
	@DataProvider(name="sj")
	public Object[][] Data() throws IOException{
		return CSV();
	}
	
	  @BeforeTest
	  public void beforeTest() {
		  System.setProperty("webdriver.chrome.driver","C:\\Users\\Administrator\\Desktop\\浏览器\\浏览器驱动\\chromedriver.exe");
		  dr=new ChromeDriver();
		  dr.manage().window().maximize();
	  }

	  @AfterTest
	  public void afterTest() {
		  dr.quit();
	  }
	  
	  
	  //此方法用来读取一个csv文件,并将文件中的数据存储在一个二维数组中
	  public static Object[][] CSV() throws IOException {
			ArrayList<Object> list=new ArrayList<Object>();
			
			BufferedReader in=new BufferedReader(new FileReader("C:\\Users\\Administrator\\Desktop\\Data.csv"));
			in.readLine();
			String a=null;
			while((a=in.readLine())!=null) {
				String b[]=a.split(",");
				list.add(b);
			
			}
			in.close();
	         Object[][] ob=new Object[list.size()][];
	         for(int i=0;i<list.size();i++) {
	        	 ob[i]=(Object[]) list.get(i);
	         }
			return ob;
	         
			
		}
	  
	  
	  
	  
}


大家可以看到Neon这里做的比较粗,弹出框没做处理还有很多很多的地方没有做优化。我们还可以是用page设计模式还可以封装啊抽取啊等等。

这里主要是为了能让大家看明白,更容易理解。

大家呢多看看代码多想想,其实都很好理解的,唯一不好理解就是那个二维数组那块,所以大家没事还是要经常复习一下基础知识呢。哈哈 欢迎大家指出Neon的不足,让我们共同进步。

猜你喜欢

转载自blog.csdn.net/qq_38318622/article/details/80192647