误差
Meta-data:{“dataFile”:“resources/env1 1/data.json”,“description”:“使用herejson文件输入代码提供数据的数据驱动测试”}@ TestStep /jsonformadder.Feature#5 TestStep实现未找到。请提供实现或确保'step.provider.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) {
}
}不能包含整个步骤定义这里的代码堆栈溢出警告我添加了太多的代码
Feature: Validate Web Form
Scenario: Validate User is able to fill form using json Data File
Meta-data: {"dataFile":"resources/env1/data.json","description":"Data driven test that uses
json file to provide data"}
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配置似乎也是正确的。
发布于 2022-02-04 19:20:36
Gherkin语法不支持元数据。您可以使用BDD2语法,这是Gherkin的超集。在BDD2中,您可以在场景之上提供场景元数据:
特征文件
Feature: Validate Web Form
@dataFile:resources/env1/data.json
@description:Data driven test that uses json file to provide data
Scenario: Validate User is able to fill form using json Data File
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对于BDD2,您需要使用BDD2工厂而不是Gherkin工厂。请参考文档。
用于测试执行的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工厂支持数据提供程序,并提供了如下示例以坚持使用gherkin语法:
Scenario: Validate User is able to fill form using json Data File
....
Examples: {"dataFile":"resources/env1/data.json"}https://stackoverflow.com/questions/70988758
复制相似问题