zoukankan      html  css  js  c++  java
  • Java 数据驱动测试

    适用场景

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

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

    如果采用数据驱动框架, 只需要写一遍代码, 把所有的测试数据通过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返回执行结果

  • 相关阅读:
    Object上的静态方法
    【php实现数据结构】单向链表
    图片上传方案详解
    新手必踩坑之display: inline-block
    前端算法题:找出数组中第k大的数字出现多少次
    this的五种指法
    通过java反射实现的excel数据导出
    算法系列-动态规划(4):买卖股票的最佳时机
    算法系列-动态规划(3):找零钱、走方格问题
    数据库仓库系列:(一)什么是数据仓库,为什么要数据仓库
  • 原文地址:https://www.cnblogs.com/cheese320/p/9234832.html
Copyright © 2011-2022 走看看