软件测试面试真题 | 什么是PO设计模式?

面试官问:UI自动化测试中有使用过设计模式吗?了解什么是PO设计模式吗?

考察点

《page object 设计模式》:PageObject设计模式的设计思想、设计原则
《web自动化测试实战》:结合PageObject在真实项目中的实践与应用情况

传统UI自动化的问题

无法适应 UI 频繁变化
无法清晰表达业务用例场景
大量的样板代码 driver/find/click

PO模式的优势

降低UI变化导致的测试用例脆弱性问题
让用例清晰明朗,与具体实现无关

PageObject六大原则

字段意义
不要暴露页面内部的元素给外部
不需要建模 UI 内的所有元素
方法意义
用公共方法代表 UI 所提供的功能
方法应该返回其他的 PageObject 或者返回用于断言的数据
同样的行为不同的结果可以建模为不同的方法
不要在方法内加断言

POM使用方法

把元素信息和操作细节封装到 PageObject 类中
元素信息对应类变量
操作细节对应类方法
业务逻辑体现在测试用例中

总结

1、使用过。因为传统用例具有无法适应 UI 频繁变化与无法清晰表达业务用例场景的问题,所以可以使用 PageObject 设计模式优化这个问题。
2、PageObject 本质就是一个设计模式,这个设计模式主要需要注意以下几点。(描述六大原则)
3、其实对应在使用过程中,就是使用类变量存放定位元素信息,使用类方法存放具体的自动化操作。使用测试类结合业务逻辑调用Page类,完成调用。 
 

相关推荐

  1. 软件测试面试 | 什么PO设计模式

    2023-12-06 10:04:02       57 阅读
  2. 软件测试面试

    2023-12-06 10:04:02       52 阅读
  3. 什么设计模式

    2023-12-06 10:04:02       40 阅读
  4. 什么设计模式

    2023-12-06 10:04:02       42 阅读
  5. 什么软件测评

    2023-12-06 10:04:02       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 10:04:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 10:04:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 10:04:02       82 阅读
  4. Python语言-面向对象

    2023-12-06 10:04:02       91 阅读

热门阅读

  1. 汇编:常用的输入与输出

    2023-12-06 10:04:02       60 阅读
  2. MySQL的事务

    2023-12-06 10:04:02       60 阅读
  3. C#结构体应用实例

    2023-12-06 10:04:02       57 阅读
  4. day7 四数之和为x

    2023-12-06 10:04:02       45 阅读
  5. Frida抓包flutter app过程记录

    2023-12-06 10:04:02       58 阅读
  6. uniapp的subnvue苹果适配(ios)谷歌地图问题

    2023-12-06 10:04:02       47 阅读
  7. 【重点】Flink四大基石

    2023-12-06 10:04:02       68 阅读
  8. RK356x U-Boot研究所(命令篇)3.12 mtd命令的用法

    2023-12-06 10:04:02       57 阅读
  9. C#-并行编程的概念及其运用

    2023-12-06 10:04:02       68 阅读
  10. 4-Docker命令之docker top

    2023-12-06 10:04:02       58 阅读