IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> UI自动化的常见面试问题 -> 正文阅读

[开发测试]UI自动化的常见面试问题

常见的元素定位方式

id 根据id来获取元素,返回单个元素,id值一般是唯一的 name 根据元素的name属性定位 tagName 根据元素的标签名定位 className 根据元素的样式class值定位 linkText 根据超链接的文本值定位 partialLinkText 根据超链接的部分文本值定位 cssSelector:css 选择器定位; xpath 通过元素的路径来定位

延时等待方式

强制等待 常用thread.sleep(10) 去设置固定的等待时间,通过线呈休眠的方式去等待 隐式等待 使用implicitly Wait去查看元素,设置等待时间为10s,如果第一次没有找到,它会不停的循环查看,一直到找到元素,如果超出时间没有找到会抛出异常 显式等待 ?在指定的时间内对指定的元素进行定位,找到之后返回元素,找不到的话就抛出异常,可以设置时间间隔,指定时间长度。


?

浏览器的常见操作

driver.navigate.back 浏览器后退 driver.navigate.forward 浏览器前进 driver.navigate.refersh 浏览器刷新

?

?UI自动化测试用例如何设计?

UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:

  1. 优先选取覆盖产品核心功能的用例;
  2. 从成本考量,不要选择流程过于复杂的用例;
  3. 选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;
  4. 优先实现正向的测试用例,反向用例一般情况复杂、数量多;

?什么是PO模式?

PO模式,全称为Page Object Model ,简称POM,是页面对象模式。对页面进行抽象或者说建模的过程,是把一个具体的页面转化为编程语言当中的一个对象,页面特性转化成对象属性,页面操作转化为对象方法。把页面的一个个的web元素设计为页面对象的属性,把页面上的操作(如点击、输入等)设计为页面对象的行为。在自动化测试当中,主要用来实现对页面操作和测试逻辑的一个分离,这样做的好处是业务和实现分开,使自动化测试脚本具备更高的可维护性。

?你认为PO模式的封装原则有哪些?

  1. 公共方法表示页面提供的一个服务,比如我们可以把登录封装成一个 login 方法,把搜索方法封装成一个设施方法,把注册操作封装成一个 register 的方法;
  2. 尽量不要暴露页面的内部,比如一个HTML的页面还有一个页面的上下结构;
  3. 在 PO 当中一般不做断言,会做到页面逻辑和测试逻辑的分离;
  4. PO 一般里面的方法返回 self 或者是其他的 Page Object ,也可以是一个元素属性;
  5. 整个 PO 不需要封装整个页面的行为,用到什么逻辑就封装什么;
  6. 对于统一操作,如果出现不同的结果,可以把用不同的方法来表示,比如说登录成功有跳转,登录失败有报错,如果登录还有一种会授权的状况,那么可以封装成三个单独的方法:login success、login error、login invalid。
    ?

你怎么提高UI自动化脚本的稳定性?

  • 尽量用相对路径的xpath表达式;

  • 查找元素优先用显示等待;

  • 用例与用例之间尽量避免产生依赖,用例可以独立执行;

  • 用例执行结束后对测试场景进行还原,避免影响其他用例的执行;

  • 脚本执行失败后加入重试机制,提升用例的稳定性;

  • 尽量保证单独的测试环境,避免其他的测试同步进行;

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:52:24  更:2022-03-08 22:53:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:58:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码