需要避免在 selenium webdriver @Test 方法中重复代码的建议
Need suggestions for avoiding duplicate code in selenium webdriver @Test method
我需要验证表单的完整流程。
在屏幕 1 上:
- 从用户那里获取不同字段的输入
- 点击提交按钮
在屏幕 2 上:
点击确认按钮
在屏幕 3 上:
单击“完成”按钮完成整个流程。
测试NG:
我写了单独的测试 classes。每个测试 class 都有一个 @Test 方法。
Class1
{
@Test
public static void verifyScreen1SubmitButton()
{
selenium code1 to input values
Click on Submit button
Assert statement
}
}
Class2
{
@Test
public static void verifyScreen2ConfirmationButton()
{
**selenium code1 to input values
Click on Submit button**
Click on Confirmation button
Assert statement
}
}
Class3
{
@Test
public static void verifyScreen2FinalizeButton()
{
**selenium code1 to input values
Click on Submit button
Click on Confirmation button**
Click on Finalize button
Assert statement
}
}
每个下一个 class 都使用上一个 class 的数据输入和代码,因为它是表单的下一页。代码重复的地方太多了。请在 TestNG 中建议尽可能减少此代码重复的最佳方法。
我认为您应该执行以下操作:
Class1
{
@Test
public static void method1()
{
//Code to execute
}
@Test
public static void method2()
{
//Code to execute
}
@Test
public static void method3()
{
//Code to execute
}
所以在这里你只需要一个 class 而不是 3 个。你也可以将方法优先级设置为 运行 它。例如:priority=0,priority=1
所以你可以 运行 按照你喜欢的顺序使用方法来实现实际流程。
我需要验证表单的完整流程。 在屏幕 1 上: - 从用户那里获取不同字段的输入 - 点击提交按钮 在屏幕 2 上: 点击确认按钮 在屏幕 3 上: 单击“完成”按钮完成整个流程。
测试NG: 我写了单独的测试 classes。每个测试 class 都有一个 @Test 方法。
Class1
{
@Test
public static void verifyScreen1SubmitButton()
{
selenium code1 to input values
Click on Submit button
Assert statement
}
}
Class2
{
@Test
public static void verifyScreen2ConfirmationButton()
{
**selenium code1 to input values
Click on Submit button**
Click on Confirmation button
Assert statement
}
}
Class3
{
@Test
public static void verifyScreen2FinalizeButton()
{
**selenium code1 to input values
Click on Submit button
Click on Confirmation button**
Click on Finalize button
Assert statement
}
}
每个下一个 class 都使用上一个 class 的数据输入和代码,因为它是表单的下一页。代码重复的地方太多了。请在 TestNG 中建议尽可能减少此代码重复的最佳方法。
我认为您应该执行以下操作:
Class1
{
@Test
public static void method1()
{
//Code to execute
}
@Test
public static void method2()
{
//Code to execute
}
@Test
public static void method3()
{
//Code to execute
}
所以在这里你只需要一个 class 而不是 3 个。你也可以将方法优先级设置为 运行 它。例如:priority=0,priority=1
所以你可以 运行 按照你喜欢的顺序使用方法来实现实际流程。