selenium webdriver testng自动化测试数据驱动
selenium webdriver testng自动化测试数据驱动
selenium webdriver testng自动化测试数据驱动
一、数据驱动测试概念
数据驱动测试是相同的测试脚本使用不同的测试数据执行,测试数据和测试行为完全分离。
二、实施数据驱动测试的步骤:
1、编写测试脚本,脚本需要支持程序对象、文件或者数据库读入测试数据。
2、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中。
3、运行脚本,循环调用存储在外部介质的测试数据。
4、验证所有的测试结果是否符合期望的结果。
三、使用TestNG进行数据驱动
使用@DataProvider注解定义当前方法中的返回对象作为测试脚本的测试数据集。
用法参考代码:
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
//搜索2个关键词,验证搜索结果页面是否包含期望的关键词
public class DataProviderDemo {
private static WebDriver driver;
@DataProvider(name="searchData")
public static Object[][] data()
{
return new Object[][] {{"老九门","演员","赵丽颖"},{"X站警天启","导演","布莱恩·辛格"},{"诛仙青云志","编剧","张戬"}};
}
@Test(dataProvider="searchData")
public void testSearch(String searchdata1,String searchdata2,String searchResult) {
//打开sogou首页
driver.get("http://www.sogou.com/");
//输入搜索条件
driver.findElement(By.id("query")).sendKeys(searchdata1+" "+searchdata2);
//单击搜索按钮
driver.findElement(By.id("stb")).click();
//单击搜索按钮后,等待3秒显示搜索结果
try{
Thread.sleep(3000);
}catch(InterruptedException e){
e.printStackTrace();
}
//判断搜索的结果是否包含期望的关键字
Assert.assertTrue(driver.getPageSource().contains(searchResult));
}
@BeforeMethod
public void beforeMethod() {
//若无法打开Firefox浏览器,可设定Firefox浏览器的安装路径
System.setProperty("webdriver.firefox.bin", "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
//打开Firefox浏览器
driver=new FirefoxDriver();
//设定等待时间为5秒
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
} @AfterMethod
public void afterMethod() {
//关闭打开的浏览器
driver.quit();
}
}
运行结果:
PASSED: testSearch("老九门", "演员", "赵丽颖")
PASSED: testSearch("X站警天启", "导演", "布莱恩·辛格")
PASSED: testSearch("诛仙青云志", "编剧", "张戬")
===============================================
Default test
Tests run: 3, Failures: 0, Skips: 0
===============================================
上述代码表示测试方法中3个参数分别使用searchData测试数据集中每个一维数组中的数据进行赋值。
此方法会被调用3次,分别使用测试数据集中的三组数据。
selenium webdriver testng自动化测试数据驱动的更多相关文章
- Selenium WebDriver TestNg Maven Eclipse java 简单实例
环境准备 前提条件Eclipse 已经安装过 TestNg ,Maven 插件 新建一个普通的java项目 点击右键 configure->convert to Maven Project 之后 ...
- Selenium WebDriver + python 自动化测试框架
目标 组内任何人都可以进行自动化测试用例的编写 完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写excel格式的测试用例,包括步骤.检查点,然后执行自动化工程,即可执行功能自动化测试用例 ...
- jmeter联合selenium webdriver进行自动化测试-简单1
jmeter进行webdriver测试 背景:jmeter可以联合selenium进行基本的UI自动化进行测试,解放了手工测试的压力.那么selenium webdriver完成GUI的流程初步如下 ...
- UI自动化测试篇 :Selenium2(Webdriver)&TestNG自动化测试环境搭建
最开始学习UI自动化,用的工具是QTP10,用起来确实比较容易上手,自学了没多久,大家都说QTP过时了.这么好用的的工具怎么一下子就过时了呢?因为它的“笨重”,因为它作为商业软件带来的巨大使用成本,还 ...
- 转载 基于Selenium WebDriver的Web应用自动化测试
转载原地址: https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...
- Selenium WebDriver中一些鼠标和键盘事件的使用
转自:http://www.ithov.com/linux/133271.shtml 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击 ...
- Selenium WebDriver 中鼠标和键盘事件分析及扩展(转)
本文将总结 Selenium WebDriver 中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍 WebDriver 中没有实现的键盘事件(Keys 枚举中没有列举的按键)的扩展.举例说明 ...
- 转:总结Selenium WebDriver中一些鼠标和键盘事件的使用
在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...
- Selenium WebDriver 中鼠标和键盘事件分析及扩展[转载]
原文:http://www.ibm.com/developerworks/cn/java/j-lo-keyboard/ 概念 在使用 Selenium WebDriver 做自动化测试的时候,会经常模 ...
随机推荐
- 重载i++,++i操作符
#include <iostream> using namespace std; class Time { public: Time(){min=;sec=;} Time(int m,in ...
- Elasticsearch学习之深入搜索二 --- 搜索底层原理剖析
1. 普通match如何转换为term+should { "match": { "title": "java elasticsearch"} ...
- Elasticsearch学习之基本核心概念
在Elasticsearch中有许多术语和概念 1. 核心概念 Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包 ...
- Unity3D笔记十七 Unity3D生命周期
一个游戏组件的脚本有一个生命周期——一开始实例化,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见 本文主要讨论常见脚本的的生命周期 ...
- position fixed 居中
1.水平居中.footer { height: 10%; text-align: center; position: relative; left: 50%; transform: translate ...
- cas 单点登录 --自定义审计日记@Audit()
错误信息: org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing [An ...
- 服务端渲染(ssr)初了解
之前接触的比较多的是SPA单页面应用,前端路由渲染,对于node服务端渲染刚开始了解到,服务端渲染的话相对于SPA来说有助于SEO优化,首屏加载更快. 和之前的SPA项目不同,之前公司spa的发布部署 ...
- binlog介绍
1.什么是binlog binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录. ...
- poj3252Round Numbers【组合数】【数位dp】
Round Numbers The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, ...
- SCRAM
RFC 5802 - Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms ht ...