当前位置: 首页 > news >正文

软件测试面试真题 | 什么是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类,完成调用。 

相关文章:

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

面试官问:UI自动化测试中有使用过设计模式吗?了解什么是PO设计模式吗? 考察点 《page object 设计模式》:PageObject设计模式的设计思想、设计原则 《web自动化测试实战》:结合PageObject在真实项目中的实践与应用情…...

GB2312转UTF-8部分中文乱码

现象 最近写了个txt导入,客户反馈有时候导入的数据,会出现个别中文乱码的现象,但是我之前已经做过编码转换处理了,统一转成了UTF-8。 比如“鞠婧祎”,导入进来是这样: 排查思路 首先看了一下这个文本的编码格式&am…...

项目——电子词典(客户端、服务器交互,字典导入,单词查询)

一、项目要求 登录注册功能,不能重复登录,重复注册单词查询功能历史记录功能,存储单词,意思,以及查询时间基于TCP,支持多客户端连接采用数据库保存用户信息与历史记录将dict.txt的数据导入到数据库中保存。…...

jenkins 是什么?

一、jenkins 是什么? Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行&#…...

无涯教程-PHP - sql_regcase()函数

sql_regcase() - 语法 string sql_regcase (string string) 可以将sql_regcase()函数视为实用程序函数,它将输入参数字符串中的每个字符转换为包含两个字符的带括号的表达式。 sql_regcase() - 返回值 返回带括号的表达式字符串以及转换后的字符。 sql_regcase…...

cesium 实现鼠标中键拖动地图

cesium默认左键拖动地图,中键旋转,再绘图时带来诸多不便。所以改成鼠标中键按下拖动地图,鼠标左键选点。代码如下:【感谢chatGPT】 //改为中建拖动// 假设 viewer 是你的 Cesium Viewer 实例const cameraController viewer.scene…...

低压风机单片机方案

低压风机通常由电机、转子、机壳、进气管、出气管、齿轮和减速机等组成。电机带动转子旋转,旋转的转子带动齿轮和减速机转动,进而形成空气被吸入转子内部,通过旋转而产生的离心力把气体压缩,并将气体排出。 低压风机方案的主控型…...

R语言06-R语言的基本运算

概念 R语言支持多种基本运算&#xff0c;包括算术运算、逻辑运算、比较运算和向量化运算等。 代码示意 逻辑运算 a <- TRUE b <- FALSElogical_and <- a & b # 逻辑与 logical_or <- a | b # 逻辑或 logical_not <- !a # 逻辑非比较运算 x <…...

Docker容器:docker-compose管理创建LNMP服务并运行Wordpress网站平台

文章目录 一&#xff0e;项目环境1. 环境描述2.项目需求 二&#xff0e;部署过程1.安装Docker2.安装Docker加速器3.Docker-Compose安装部署4.准备依赖文件、配置nginx5.配置mysql6.配置php7.编写docker-compose.yml8.验证 三.容器快照&#xff0c;然后将Docker镜像打包成tar包备…...

实业兴国 守护种源 —— 白露木實®农业的活力之风

高科技领域&#xff0c;芯片是生命线&#xff1b;而在农业领域&#xff0c;种源与芯片在高科技领域的重要性是相同的。保护、发展、培育我国的种质资源&#xff0c;是中国农业发展至为关键的一环。但是&#xff0c;因为思想、观念、认识、技术等方面的原因&#xff0c;让我们错…...

Web3.0

一、Web3.0是什么 Web3.0&#xff08;有时称为“分布式Web”或“去中心化Web”&#xff09;是对互联网的下一代演进的概念。它代表了一种更加分散、去中心化和用户掌控的互联网模式&#xff0c;与传统的Web2.0模型有很大不同。 以下是Web3.0的一些关键特征和概念&#xff1a;…...

精密图纸被窃,知名手表品牌Seiko遭BlackCat勒索软件攻击

据BleepingComputer消息&#xff0c;日本著名手表制造商Seiko在7月末遭到了网络攻击&#xff0c;8月21日&#xff0c;BlackCat&#xff08;又名ALPHV&#xff09;勒索软件组织在其网站上宣布对这起攻击事件负责。 8 月 10 日&#xff0c;Seiko发布了一份数据泄露通知&#xff0…...

K8S如何部署Redis(单机、集群)

在今天的讨论中&#xff0c;我们将深入研究如何将Redis数据库迁移到云端&#xff0c;以便更好地利用云计算的优势提高数据管理的灵活性。 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息代理。Redis支持多…...

Flask狼书笔记 | 03_模板

文章目录 3 模板3.1 模板基本使用3.2 模板结构组织3.3 模板进阶 3 模板 模板&#xff08;template&#xff09;&#xff1a;包含固定内容和动态部分的可重用文件。Jinja2模板引擎可用于任何纯文本文件。 3.1 模板基本使用 HTML实体&#xff1a;https://dev.w3.org/html5/htm…...

MySQL 数据备份和数据恢复

目录 一、数据备份 1、概述 2、MySQLdump命令备份 1&#xff09;备份单个数据库中的所有表 2) 备份数据中某个或多个表 3) 备份所有数据库 4&#xff09;备份多个库 5) 只备份一个表或多个表结构 二、数据恢复 三、数据备份与恢复应用 一、数据备份 1、概述 数据备…...

软考高级系统架构设计师系列论文八十二:论软件的可维护性设计

软考高级系统架构设计师系列论文八十二:论软件的可维护性设计 一、摘要二、正文三、总结一、摘要 随着软件大型化,复杂化的发展,软件维护所耗费的资源越来越多,软件可维护性设计日益得到重视。我单位近几年开发综合业务 ATM交换机,用户对交换机的可维护性要求很高。我参加…...

Ompl初探

在/ompl-1.x.0/build/Release/bin下有很多生成的demo可执行文件 在终端执行 ./demo_Point2DPlanning 测试程序 #include <ompl/base/SpaceInformation.h> #include <ompl/base/spaces/SE3StateSpace.h> #include <ompl/base/StateSpace.h> #include <o…...

android sdk打包aar方案步骤

1.使用fat-aar库https://github.com/kezong/fat-aar-android/blob/master/README_CN.md 第一步&#xff1a;添加以下代码到你工程根目录下的build.gradle文件中: For Maven Central (The lastest release is available on Maven Central): buildscript {repositories {maven…...

Redis之bitmap类型解读

目录 基本介绍 基本命令 Setbit Getbit BITCOUNT 应用场景 统计当日活跃用户 用户签到 bitmap - Redis布隆过滤器 &#xff08;应对缓存穿透问题&#xff09; 基本介绍 Redis 的位图&#xff08;bitmap&#xff09;是由多个二进制位组成的数组&#xff0c;只有两…...

stm32之10.系统定时器

delay_s()延时秒 delay_ms()毫秒*1000 delay_us()微秒*1000000 微秒定时器代码 void delay_us(uint32_t n) { SysTick->CTRL 0; // Disable SysTick&#xff0c;关闭系统定时器 SysTick->LOAD SystemCoreClock/1000000*n-1; // 就是nus SysTick->LOAD Sys…...

Sentinel-3B OLCI 3 级全球分箱地球观测降分辨率(ERR)叶绿素(CHL)数据,版本 2022.0

Sentinel-3B OLCI Level-3 Global Binned Earth-observation Reduced Resolution (ERR) Chlorophyll (CHL) Data, version 2022.0 简介 叶绿素 a 数据集提供全球网格化的表层叶绿素 a 浓度&#xff08;浮游植物生物量的替代指标&#xff09;合成数据。CHL 支持时间序列和气候…...

DeepSeek系统设计辅助效能断崖式下降的3个信号,第2个90%工程师至今未察觉!

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek系统设计辅助效能断崖式下降的3个信号&#xff0c;第2个90%工程师至今未察觉&#xff01; 当 DeepSeek 的系统设计辅助能力突然变“笨”——接口建议频繁失准、上下文感知错乱、生成代码无法通过基础编…...

AI大模型应用开发全攻略:从入门到精通,掌握LLM、RAG、Agent核心技能!“

本文全面介绍了AI大模型应用开发的核心技术和实践。从大模型API交互基础&#xff0c;到关键参数Messages和Tools的作用&#xff0c;深入解析了RAG、ReAct、Agent等应用范式。文章还探讨了Fine-tuning微调和Prompt提示词工程的重要性&#xff0c;强调工程实践与业务需求相结合。…...

告别网盘客户端!用Alist+RaiDrive把百度云盘变成电脑本地文件夹(保姆级图文教程)

用AlistRaiDrive实现网盘本地化管理的终极方案 你是否厌倦了电脑上安装多个网盘客户端&#xff0c;不仅占用系统资源&#xff0c;操作还繁琐割裂&#xff1f;每次上传下载文件都要在不同客户端间切换&#xff0c;效率低下。现在&#xff0c;通过Alist和RaiDrive的组合&#xf…...

对称与负电源测试:动态直流电子负载的设计、原理与应用

1. 项目概述&#xff1a;对称与负电源的静态与动态直流负载在电子实验室里&#xff0c;测试一个电源的性能&#xff0c;尤其是它的动态响应能力&#xff0c;是件既基础又关键的事。我们常说的“直流电子负载”就是这个领域的核心工具。我之前设计并分享过一个用于正电源测试的静…...

OpenClaw 连接阿里云百炼图文教程

OpenClaw 连接阿里云百炼图文教程 前置准备 已安装并可以正常打开 OpenClaw Windows。 OpenClaw 顶部 Gateway 状态保持在线。 已准备好可正常登录的阿里云账号。 可以正常访问阿里云百炼登录地址&#xff1a;https://bailian.console.aliyun.com/cn-beijing#/home 建议提…...

Sora 2原生接入Unity 6.0:5步完成神经渲染管线嵌入,实测帧率提升47%(附GitHub认证插件)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Sora 2与Unity整合 Sora 2作为新一代AI视频生成引擎&#xff0c;其开放API设计天然支持与实时3D引擎的深度协同。Unity 2023.2版本通过URP&#xff08;Universal Render Pipeline&#xff09;与C# Job System提…...

华硕笔记本终极性能控制指南:用G-Helper完全替代Armoury Crate

华硕笔记本终极性能控制指南&#xff1a;用G-Helper完全替代Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zen…...

为内部知识库问答机器人接入Taotoken多模型增强回答效果

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为内部知识库问答机器人接入Taotoken多模型增强回答效果 构建一个高效的企业内部知识库问答机器人&#xff0c;核心挑战在于如何让…...

上线前最后一道防线,DeepSeek代码审查如何帮你拦截87%的CVE类缺陷?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;上线前最后一道防线&#xff0c;DeepSeek代码审查如何帮你拦截87%的CVE类缺陷&#xff1f; 在软件交付生命周期末期&#xff0c;传统人工代码审计与通用SAST工具常因误报率高、上下文理解弱而漏检高危漏…...