当前位置:网站首页>测试面试题集-UI自动化测试
测试面试题集-UI自动化测试
2022-07-26 18:21:00 【代码小怡】
一、列举web自动化中常见的元素定位方式?
id:根据id来获取元素,返回单个元素,id值一般是唯一的;
name:根据元素的name属性定位;
tagName:根据元素的标签名定位;
className:根据元素的样式class值定位;
linkText:根据超链接的文本值定位;
partialLinkText:根据超链接的部分文本值定位;
cssSelector:css选择器定位;
xpath:通过元素的路径来定位;
二、简述你所知道的延时等待方式?
强制等待:也叫线程等待, 通过线程休眠的方式完成的等待,如等待5秒: Thread sleep(5000),一般情况下不太使用强制等待,主要应用的场景在于不同系统交互的地方。
隐式等待:通过implicitly Wait完成的延时等待,注意这种是针对全局设置的等待,如设置超时时间为10秒,使用了implicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,如果超过10秒还没有找到,则抛出异常,硬式等待比较智能,它可以通过全局配置,但是只能用于元素定位。
显式等待:也称为智能等待,针对指定元素定位指定等待时间,在指定时间范围内进行元素查找,找到元素则直接返回,如果在超时还没有找到元素,则抛出异常,显示等待是 selenium 当中比较灵活的一种等待方式,他的实现原理其实是通过 while 循环不停的尝试需要进行的操作。
三、 如何模拟浏览器的前进和后退、刷新?
具体如下:
driver.navigate().back(); //后退
driver.navigate().forward();//前进
driver.navigate().refresh();//刷新
四、Selenium 自动化如何进行文件上传?
如果是input元素的文件上传,可以通过 Selenium 当中的 send_keys 方式进行传递,但是这种方式局限性比较大,如果遇到像通过 js 调用的组件会有一些问题;这个时候就需要通过一些和系统交互的方式去完成上传操作,比如通过autoit,pywinauto 或者是pyautogui这些第三方库进行操作。
五、UI自动化测试用例如何设计?
UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:
优先选取覆盖产品核心功能的用例;
从成本考量,不要选择流程过于复杂的用例;
选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;
优先实现正向的测试用例,反向用例一般情况复杂、数量多;
六、什么是PO模式?
PO模式,全称为Page Object Model ,简称POM,是页面对象模式。对页面进行抽象或者说建模的过程,是把一个具体的页面转化为编程语言当中的一个对象,页面特性转化成对象属性,页面操作转化为对象方法。把页面的一个个的web元素设计为页面对象的属性,把页面上的操作(如点击、输入等)设计为页面对象的行为。在自动化测试当中,主要用来实现对页面操作和测试逻辑的一个分离,这样做的好处是业务和实现分开,使自动化测试脚本具备更高的可维护性。
七、你认为PO模式的封装原则有哪些?
公共方法表示页面提供的一个服务,比如我们可以把登录封装成一个 login 方法,把搜索方法封装成一个设施方法,把注册操作封装成一个 register 的方法;
尽量不要暴露页面的内部,比如一个HTML的页面还有一个页面的上下结构;
在 PO 当中一般不做断言,会做到页面逻辑和测试逻辑的分离;
PO 一般里面的方法返回 self 或者是其他的 Page Object ,也可以是一个元素属性;
整个 PO 不需要封装整个页面的行为,用到什么逻辑就封装什么;
对于统一操作,如果出现不同的结果,可以把用不同的方法来表示,比如说登录成功有跳转,登录失败有报错,如果登录还有一种会授权的状况,那么可以封装成三个单独的方法:login success、login error、login invalid。
八、你怎么提高UI自动化脚本的稳定性?
尽量用相对路径的xpath表达式;
查找元素优先用显示等待;
用例与用例之间尽量避免产生依赖,用例可以独立执行;
用例执行结束后对测试场景进行还原,避免影响其他用例的执行;
脚本执行失败后加入重试机制,提升用例的稳定性;
尽量保证单独的测试环境,避免其他的测试同步进行;
九、 基于Web端如何做自动化测试,谈谈你的思路和方向?
Web端的自动化测试,基本就是模拟手工测试人员来做功能测试。用机器的自动执行代替人的操作。web端呈现的产品有两个方向可以做自动化测试:接口层和界面操作层,且接口层自动化的比例要高于界面操作层。主要对产品稳定的功能进行自动化测试,主要用于产品的核心功能冒烟测试、回归测试。从系统最核心的功能开始做,再根据情况慢慢展开。
十、UI 自动化测试中,如何做集群?
Selenium Grid,分布式执行用例;
Appium 使用 STF 管理多设备;
Docker+K8S 管理集群;
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

边栏推荐
- Reentrantlock learning - lock release process
- 2022搭建企业级数据治理体系
- How to protect e-commerce websites from network attacks?
- 指标和标签是做什么的
- 洋葱集团携手OceanBase实现分布式升级,全球数据首次实现跨云融合
- The difference between advanced anti DDoS server and advanced anti DDoS IP
- LeetCode-138-复制带随机指针的链表
- Cannot find current proxy: Set ‘exposeProxy‘ property on Advised to ‘true‘ to make it available
- ReentrantLock学习之---释放锁过程
- 博客维护记录之图片预览嵌入位置问题
猜你喜欢

Sre person in charge of station B personally describes the multi activity disaster recovery construction after the 713 accident | takintalks share

机器学习笔记 - 构建推荐系统(6) 用于协同过滤的 6 种自动编码器

Reentrantlock learning --- basic method

C # upper computer development - modify the window icon and exe file Icon

从6月25日考试之后,看新考纲如何复习PMP

Verification palindrome string II of leetcode simple question

J2 Redis之 AOF&RDB

This article explains in detail the five benefits that MES system brings to enterprises, with application scenarios

LeetCode简单题之数组能形成多少数对

Configure the server environment
随机推荐
Network protocol: tcp/ip protocol
LeetCode简单题之数组能形成多少数对
Synchronized理论
篇7:exited on DESKTOP-DFF5KIK with error code -1073741511.
LeetCode简单题之第一个出现两次的字母
博客维护记录之图片预览嵌入位置问题
J3:Redis主从复制
时空预测4-graph wavenet
[postgraduate entrance examination vocabulary training camp] day 14 - Panini, predict, access, apologize, sense, transport, aggregation
Gongfu developer community is settled! On July 30!
Introduce the difference between @getmapping and @postmapping in detail
Cannot find current proxy: Set ‘exposeProxy‘ property on Advised to ‘true‘ to make it available
C#上位机开发—— 修改窗口图标和exe文件图标
ReentrantLock学习之---基本属性
Sentinel isolation and degradation
Leetcode notes: biweekly contest 83
Distributed transaction Seata
深度学习的数学基础
Advanced template (runner's notes)
Sre person in charge of station B personally describes the multi activity disaster recovery construction after the 713 accident | takintalks share