002_po
📌 PO设计准则
- 通过公共方法,代表页面提供的业务
- 不暴露页面细节
- 不在PO里做断言
🚁 PO分层
- 表现层: 包括页面中可见的元素、元素定位
- 操作层: 对元素的操作: 点击、输入等
- 业务层: 封装页面中表现层、操作层,对应某个业务,可以说多个页面的组合
- 测试用例: 不属于PO,组合多个页面方法,执行测试步骤,完成用例执行
具体设计和实现请参考: https://gitee.com/Jork-S-B/playwright-ui-automation
class BasePage(object):
def __init__(self):
self.page = get_page()
# 根据类名,获取放在yaml文件的元素
self.locators = get_yaml_data(ProjectPath.configs_path / 'common_elements.yaml').get(self.__class__.__name__,
"未找到类名,请检查")
# 通过setattr,动态的将元素定位设置类变量
# 实例直接调用会有警告,可通过__getitem__规避
for key, value in self.locators.items():
setattr(self, key, value)
def __getitem__(self, item):
return self.locators[item]
📌 面试题
🚁 如何开展UI自动化
- 分析原因:复现问题,详细分析对应接口性能瓶颈,如排查是否存在上下游依赖、涉及静态资源使用CDN加快访问速度。