适用场景

测试搜索功能, 基于数据类型需要测多种不同的数据, 比如最大值, 小数, 负数, 字符串, 特异符号等等.

如果直接写代码, 每一种数据类型都需要写一遍代码, 冗长且不方便调试.

如果采用数据驱动框架, 只需要写一遍代码, 把所有的测试数据通过dataProvider传入, 即可完成所有的测试.

代码

package com.thanos.ebony2;

import static com.thanos.ebony2.bean.AntFormBrowser.BROWSER;

import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.thanos.ebony2.bean.AntForm;
import com.thanos.ebony2.bean.AntProp; public class search {
@DataProvider(name = "testData")
public Object[][] dataProvider(){
return new Object[][] {{"3", "3"},{"9", "9"},{"abc", "def"},{"!", "!"}}; //这里传了两个数据, 是希望一个是搜索时输入的搜索值,另一个作为搜索结果来验证搜索功能. 因为这里主要是为了试用数据驱动,所以下面的代码仅包含输入搜索值搜索部分.
} @Test(dataProvider = "testData")
public void test(String a, String b) throws IOException {
BROWSER.open(AntProp.getProp("URL"));
BROWSER.pause(1); AntForm form = new AntForm("//*[@id=\"abc\"]");
Map<String, Object> param = new LinkedHashMap<>();
// param.put("ABC", new String[] {"greater_than","1"}); //这里是封装了一套方法, 把输入行为变成找到label, 然后在相应的输入框内输入(输入框包含两部分: 比较符号 <equals, greater_than, less_than>+ 输入值).
// param.put("ABC", new String[] {"less_than","88"});
param.put("ABC", new String[] {"equals", a});
form.fill(param);
BROWSER.capture("input");
form.clickButton("Filter");
BROWSER.pause(1);
BROWSER.capture("test");

TestNG返回执行结果

Java 数据驱动测试的更多相关文章

  1. (转)接口自动化测试 – Java+TestNG 测试 Restful Web Service

    本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高.所用到的工具或类库有 T ...

  2. 零成本实现接口自动化测试 – Java+TestNG 测试Restful service

    接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...

  3. Java常用测试工具

    第一部分:九款性能测试 Java入门 如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runti ...

  4. 接口自动化测试框架搭建 – Java+TestNG 测试Restful service

    接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...

  5. Selenium WebDriver 数据驱动测试框架

    Selenium WebDriver 数据驱动测试框架,以QQ邮箱添加联系人为示例,测试框架结构如下图,详细内容请阅读吴晓华编著<Selenium WebDiver 实战宝典>: Obje ...

  6. selenium自动化测试之【数据驱动测试】

    数据驱动测试是自动化测试的主流设计模式之一,相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为进行了完全的分离,这样的测试脚本设计模式称为数据驱动.实施数据驱动测试的步骤:1.编写测试脚本,脚 ...

  7. Java反序列化测试

    前言:有没有想过,如何将对象进行“加密”后写入磁盘?序列化帮你实现! 1.概念 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写 ...

  8. Coded UI Test中的数据驱动测试

    有关什么是Coded UI Test以及如何使用Coded UI Test可以查看我的另一篇文章:http://www.cnblogs.com/jaxu/p/3706652.html 本文主要介绍如何 ...

  9. RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)

    在上一篇RobotFrameWork接口报文测试-----(二)demo的升级版基础上,将接口的xml的格式保存在xml文件中,然后程序如果增加一个接口,在xml文件里添加即可,无需修改自动化测试里的 ...

随机推荐

  1. js深拷贝与浅拷贝

    1 基础知识:基本类型与引用类型 JS中可以把变量分成两部分,基本类型和引用类型. 基本类型包括:Undefined.Null.Boolean.Number和String: 引用类型值可能由多个值构成 ...

  2. es6中的对象的可计算的属性名

    先简单的啰嗦一下对象的属性: var obj = { a:2 } 要访问obj中a的位置,方法:1. obj.a     //2            2..obj ["a"]   ...

  3. Linux学习笔记之一————什么是Linux及其应用领域

    1.1认识Linux  1)什么是操作系统 2)现实生活中的操作系统 win7 Mac Android iOS 3) 操作系统的发展史 (1)Unix 1965年之前的时候,电脑并不像现在一样普遍,它 ...

  4. shell脚本实现FTP自动上传文件

    -----多个文件----- #!/bin/bash ftp -n<<! open 172.20.10.242 user logftp logftp binary cd /data/ftp ...

  5. k8s升级,HA集群1.12.0~HA集群1.13.2

    k8s升级,此次升级是1.12.0 至1.13.2 准备 # 首先升级master节点的基础组件kubeadm.kubelet.kubectl apt policy kubeadm 找到相应的版本,如 ...

  6. MySQL查看 InnoDB表中每个索引的高度

    我们都知道MySQL里,索引通常用B+树来实现的.B+树的叶子结点才具体保存数据(聚簇索引保存的是行数据:普通索引是主键,如有需要得回表),非叶子结点都是用来索引叶子结点的.假设索引高度为h,那么每次 ...

  7. JavaWeb学习 (二十五)————监听器(Listener)

    一.监听器介绍 1.1.监听器的概念

  8. [JZOJ5987] 仙人掌毒题

    Description Solution 套路题... 全他娘的是套路... 首先如何处理仙人掌,可以在线拿 \(lct\) 维护,或者离线之后树剖.(\(lct\) 维护太毒了写不来,就离线树剖了又 ...

  9. 牛刀小试MySQL--innodb_flush_log_at_trx_commit小结

    参数名:innodb_flush_log_at_trx_commit 参数值: 0 事务提交的时候,不会去刷日志缓存区,也不会立马写入至日志文件中.这种设置最危险.如果数据库挂了且运气不好,数据库的最 ...

  10. centos6.5修改yum安装的mysql默认目录

    0.说明 Linux下更改yum默认安装的mysql路径datadir. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql. 假如要把MySQL目录移到/home/data ...