我希望为我们的应用程序的菜单栏创建一个Selenium页面对象。但是,菜单项将根据客户的许可证而有所不同(大约70%将始终相同)。我正在研究几种方法(我使用Java):
在一次类中为所有可能的菜单项创建所有方法,然后依赖测试用例编写器来使用正确的方法。
为每个不同的许可证创建不同的页面对象(目前约为5个)。
从长远来看哪一个更好?
感谢。
答案 0 :(得分:0)
为什么不为许可证类型创建枚举器,然后将该枚举传递给页面对象上的方法调用?然后,该方法可以使用if / else或switch来返回适当的值,或者根据给定的许可证采取适当的操作。
答案 1 :(得分:0)
我建议使用Java继承
使用基本帐户创建一个类,并为复杂的帐户扩展它
请参阅此处的示例:Java docs: An Example of Inheritance
答案 2 :(得分:0)
我目前的工作情况完全相同。我使用选项#1,因为它是长期保持最多的选项。其他解决方案会增加额外的复杂性,这是不合理的。
我总是使用“完整”许可证进行测试(操作员可以做任何事情)。然后,我有一些特定的测试来测试GUI只显示它应该用有限许可证显示的内容。
如果在屏幕上不存在的菜单上调用(我的测试用例变为红色),我使用的页面对象将失败。我的框架上有一些方法可以确定菜单的存在(或不存在)。
注意:如果您正在测试软件的安全性(以确保操作员无法获得额外访问权限),则需要使用其他技术。对于此类测试,您必须通过GUI并直接“攻击”您的服务器。