有什么方法可以从Selenium Cucumber testng框架的@DataProvider批注中获取数据?

时间:2018-09-10 08:13:01

标签: selenium cucumber testng bdd testng-dataprovider

我正在一个硒-TestNg项目中,我们正在集成黄瓜框架,我需要通过@DataProvider技术获取数据。

1 个答案:

答案 0 :(得分:0)

您可以使用qaf-gherkinqaf-bdd来实现。您可以使用可用于csv / xml / json / excel / database的内置数据提供程序,也可以创建自定义的TestNg数据提供程序并使用它。这是BDD-Example,它使用带有不同参数的数据提供程序。请参考以下示例:

SCENARIO: Custom Data provider Example 
META-DATA: {"dataProvider":"my-custom-dp", "dataProviderClass":"my.project.impl.CustomDataProvider","description":"Data driven test that uses custom data provider"}
    Given I am on fruits and colors activity
    When i select '${fruit}'
    Then the color should be '${color}'

END

数据提供者实现:

package my.project.impl;

import java.util.Map;
import org.testng.annotations.DataProvider;
import org.testng.collections.Maps;

/**
 * @author chirag.jayswal
 *
 */
public class CustomDataProvider {

    @DataProvider(name="my-custom-dp")
    public static Object[][] dataProviderForBDD(){

        Map<Object, Object> rec1 = Maps.newHashMap();
        m.put("fruit", "grapes");
        m.put("color", "green");

        Map<Object, Object> rec2 = Maps.newHashMap();
        m.put("fruit", "banana");
        m.put("color", "yellow");

        return new Object[][]{ {rec1},{rec2}};
    }
}