我正在使用 Selenium Webdriver 开发自动化框架,遵循 PageObject 模式,其中有 2 层:
- 测试类(测试规范)
- PageObject 类(测试实现)
我的测试类包含 TestNG 注释方法(@Test
、@BeforeTest
等@AfterTest
),我在其中创建 PageObject 类的对象并调用这些类中的方法,这些方法实际上将与 AUT 交互。
我将数据传递给测试的方式是包括:
- 应用程序中元素的所有定位器(css/xpath/class/id 定位器)。
- 所需的所有测试数据
在属性文件中(例如:testDataSet1.properties)。我正在创建一个HashMap<String, String>
属性文件并将其作为参数传递给所有页面对象,这些页面对象将从哈希图中读取数据并在脚本中使用它们。我根本没有从测试类传递测试数据。
我的问题是,我不确定在 PageObjects 中读取测试数据是否合适。我感觉这种方法非常不灵活,因为我将测试数据绑定到 PageObjects 而不是将其绑定到测试。因此,当我需要执行数据驱动测试/在多次迭代中运行自动化套件时,这将不起作用。因为,目前如果我每次都需要使用不同的数据,我需要手动去更改哈希图中指定的键,这将从属性文件中获取不同的值。
有什么建议么?