我需要一些帮助,如果有人可以帮助我将不胜感激?
我需要在黄瓜特征文件中传递方案名称作为步骤中的参数。
在“后台”步骤中-我启动浏览器并登录到该应用程序,这样我就不必在每种情况下都重复相同的步骤。有一种JAVA方法可以开始在后台测试中使用的GUI的视频记录-并且该视频记录将用于各个场景-因此,如果功能文件中有10个场景-需要提供视频记录10个输出,显示针对这10个场景的自动化运行。录制视频的方法会根据要传递的参数保存文件名。
例如-功能文件中的“我的方案”是:
Feature: Do Something
Background:
Given I start the recording for the scenario "Pass the scenario name here"
And I navigate to the login page
When I submit username and password
Then I should be logged in
Scenario: Scenario Name
Given I start the test for "Scenario Name"
Then it should do something
And stop the recording
Scenario: Scenario Name 2
Given I start the test for "Scenario Name 2"
Then it should do something
And stop the recording
如何在“步骤”中将方案名称作为参数传递?
答案 0 :(得分:0)
开始记录测试执行不是您的黄瓜测试所需要的。正如您所发现的,要完成您想要的工作非常困难。
Cucumber Hooks可以帮助您:
@Binding
public class TestRecorder {
private final VideoRecorder videoRecorder;
public TestRecorder() {
this(new VideoRecorder(...));
}
public TestRecorder(VideoRecorder videoRecorder) {
this.videoRecorder = videoRecorder;
}
@Before
public void BeginRecording(Scenario scenario) {
String scenarioName = scenario.getName();
// do something with scenarioName and start recording...
videoRecorder.start();
}
@After
public void StopRecording(Scenario scenario) {
String scenarioName = scenario.getName();
// Stop recording, and use scenarioName to save to a file
videoRecorder.stop();
}
}
在方案开始之前,请开始视频录制。 TestRecorder类可以声明私有字段来保存对录像机的引用。传递到方案挂接之前和之后的Scenario
对象(BeginRecording和StopRecording)为您提供有关该方案的信息,包括名称。这样应该可以给您足够的空间,可以将场景名称作为文件名保存到文件中。
由于这只是一个POJO,因此您也可以为视频录制功能编写一些单元测试(如果您确实需要的话)。
现在您的黄瓜测试可以专注于被测系统,而不是系统监视测试:
Feature: Do Something
Background:
Given I navigate to the login page
When I submit username and password
Then I should be logged in
Scenario: Scenario Name
When I do the thing
Then it should do something
Scenario: Scenario Name 2
When I do the thing
Then it should do something
无需传递功能文件中的方案名称。一切都在黄瓜钩子的“幕后”完成。