当前位置: 首页 > 知识库问答 >
问题:

错误元数据:{"dataFile":"资源/env1/data.json"}@场景/jsonformfiller.feature#5未找到测试步骤实现

翟淇
2023-03-14

错误

元数据:{“dataFile”:“resources/env1/data.json”,“description”:“数据驱动测试,使用enter-code-herejson文件提供数据”}@scenarios/jsonformfiller。功能#5找不到TestStep实现。请提供实施或确保“步骤”。供应商。pkg的属性值包括适当的包。

步骤定义

    @QAFTestStep(description = "user is on google Web Page")
        public void step1() {
            
    try {    
            GooglePage googlepage = new GooglePage();
            googlepage.invoke();
            googlepage.waitForPageToLoad();
            System.out.println("I am on Google Search Page");
        } catch(Exception e) {
            
        }
        }
        @QAFTestStep(description = "user enters text {strText} in google search box")
        public void enterSearchText(String strText) {
            
            try {
                 GooglePage googlepage = new GooglePage();
                 googlepage.googleSearchTextBox.verifyPresent("google search TextBox");
                 googlepage.googleSearchTextBox.sendKeys(strText);
                System.out.println("I search for " + strText);
            } catch (Exception e) {
                
            }
        
        }

无法在这里包含整个步骤定义代码堆栈溢出警告我添加了太多代码

功能:验证Web表单场景:验证用户能够使用json数据文件元数据填写表单:{“dataFile”:“resources/env1/Data.json”,“description”:“使用json文件提供数据的数据驱动测试”}

  Given user is on clevermedia web form 
  When user enters first name '${firstname}' from json data file
  And user enters last name '${lastname}' from json data file
  And user enters zipcode '${zipcode}' from json data file
  And user enters message '${message}' from json data file
  And user clicks on submit 
  Then user should be able to submit form successfully 

步骤定义-所有功能文件测试步骤都在以下步骤定义QAFTestSteps中定义。

测试执行的TestNG配置

  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
   <suite name="QAF Demo" parallel="methods" verbose="0">
   <test name="QAF-BDD-Test">
      <parameter name="step.provider.pkg" value="com.qmetry.qaf.clevermedia.steps" />
      <parameter name="scenario.file.loc" value="scenarios/jsonformfiller.feature" />
      <parameter name="env.resources" value="resources/env1" />
   <classes>
     <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
   </classes>
  </test>
  </suite>

有人看到我在实现数据提供程序的步骤中有错误吗?为什么我会犯这个错误?所有要素文件步骤都已定义或具有相应的QAFTestStep。上面包含的测试执行的Testng配置似乎也正确。

共有1个答案

陆沈浪
2023-03-14

小cucumber语法不支持元数据。您可以使用BDD2语法,这是超集的小cucumber。在BDD2中,您可以在场景之上提供场景元数据:

功能文件

功能:验证Web表单

@数据文件:resources/env1/data。json@description:使用json文件提供数据的数据驱动测试

场景:验证用户能够使用json数据文件填写表单给定用户在clevermedia网络表单上当用户从json数据文件中输入名字${firstname}用户从json数据文件中输入姓氏${lastname}用户输入邮政编码${来自json数据文件的zipcode}用户从json数据文件输入消息${消息}用户点击提交然后用户应该能够成功提交表单

对于BDD2,您需要使用BDD2工厂而不是小cucumber工厂。参考留档。

测试执行的TestNG配置

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="QAF Demo" parallel="methods" verbose="0">
<test name="QAF-BDD-Test">
     <parameter name="step.provider.pkg" value="com.qmetry.qaf.clevermedia.steps" />
     <parameter name="scenario.file.loc" value="scenarios/jsonformfiller.feature" />
     <parameter name="env.resources" value="resources/env1" />
  <classes>
     <class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory2" />
  </classes>
</test>
</suite>

不过,建议使用BDD2,如果您仍然想使用Gherkin语法,它不提供元数据或外部测试数据。使用QAF Gherkin factory支持数据提供程序,示例如下,以使用Gherkin语法:

Scenario: Validate User is able to fill form using json Data File
....
Examples: {"dataFile":"resources/env1/data.json"}

 类似资料:
  • 它显示找不到某些属性,如DialogComerRadius和fontVariation设置。

  • 我正在使用代码欺骗TDD开发一个简单的PHP应用程序。我用一个简单的断言创建了我的第一个单元测试DogTest.php,但是它抱怨找不到Dog类。 我在根目录中创建了一个Dog.php文件,并将其放在/src下,但两者都不起作用。我认为这要么是名称空间问题,要么是自动加载问题,但是Codeception文档(以及我看过的各种TDD指南)缺少这个重要的细节。 有人能告诉我如何让我的狗测试来检测狗类吗

  • 在 Cocos Creator 3D 中,游戏场景(Scene) 是开发时组织游戏内容的中心,也是呈现给玩家所有游戏内容的载体。而场景文件本身也作为游戏资源存在,其保存了游戏的大部分信息,也是创作的基础。 创建场景 我们现在共有三种创建场景的方式: 为了您的项目具备良好的文件夹目录结构,我们强烈建议您使用 方法一 创建场景 方法一:在 资源管理器 中选中你想要创建场景文件的文件夹,在文件夹目录上

  • 问题内容: 我试图为我的React Native Android项目获取Facebook登录名,当我尝试使用react-native run- android构建它时,出现此错误。 我最初以为这是我的Gradle版本的问题,因为React Native随附安装了Gradle 2.14,而我后来又升级到了Gradle 4.4。 我多次浏览了Facebook安装指南,但仍然遇到此错误。我还对代码进行了

  • 在最近升级了我的android工作室后,我不能再构建我的项目了。 下面显示了我的gradle.build文件: 如有任何帮助,不胜感激。