2024年经典【自动化面试题】附答案

一、请描述一下自动化测试流程?

自动化测试流程一般可以分为以下七步:

编写自动化测试计划;

设计自动化测试用例;

编写自动化测试框架和脚本;

调试并维护脚本;

无人值守测试;

后期脚本维护(添加用例、开发更新版本)。

二、自动化测试有误报过bug吗?产生误报怎么办?

有误报过,有时候自动化测试报告中显示发现了bug,实际去通过手工测试去确认又不存在该bug。

误报原因一般是:

元素定位不稳定,需要尽量提高脚本的稳定性;

开发更新了页面但是测试没有及时更新维护。

三、什么是PO模式?

全称:page object model 简称:POM/PO,PO模式最核心的思想是分层,实现松耦合,实现脚本重复使用及脚本易维护性。

PO模式主要分三层:

1.基础层BasePage:封装一些最基础的selenium的原生的api方法,元素定位,框架跳转等。

2.PO层:元素定位、获得元素对象,页面动作

3.测试用例层:业务逻辑,数据驱动。

三者的关系:PO层继承基础层,测试用例层调用PO层。

po模式和非po模式区别?
在这里插入图片描述

在这里插入图片描述
四、怎么对含有验证码的功能进行自动化测试? 

对有验证码的功能模块进行自动化测试,可以通过以下方式:

让开发去掉验证码。未上线前,让开发去掉验证码验证,方便做自动化测试;

设置一个万能的验证码。未上线前,让开发生成固定的验证码,方便做自动化测试。

通过 cookie 绕过登录。

自动识别技术识别验证码。第一种是:OCR 自动识别技术,第二种是:通过第三方打码平台的接口来识别。

五、如何提高脚本的稳定性?

提高脚本的稳定性,可以通过以下方式:

不要右键复制 xpath(绝对路径很不稳定),自己写相对路径;

定位没问题,第二个影响因素那就是等待了,sleep 等待尽量少用(影响执行时间);

定位元素方法重新封装,结合 WebDriverWait 和 expected_conditions 判断元素方法,自己封装一套定位元素方法;

六、如果一个元素无法定位,你一般会考虑哪些方面的原因?

一个元素无法定位,可能的原因有:

页面加载元素过慢,加等待时间;

页面有frame框架页,需要先跳转入frame框架再定位;

可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位;

可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成。

七、你的自动化用例的执行策略是什么?

自动化用例的执行策略的含义:

自动化测试用例是用来监控的。集成到Jenkins,创建定时任务定时执行;

有些用例在产品上线前必须回归。Jenkins上将任务绑定到开发的build任务上,触发执行;

有些用例不需要经常执行。Jenkins创建一个任务,需要执行的时候人工构建即可。

八、编写自动化用例的原则?

编写自动化用例的原则包括以下几个方面:

一个用例是一个完整的场景。

一个用例只验证一个功能点。

用例与用例之间尽量避免产生依赖。

一条用例完成测试之后需要对测试场景进行还原,以免影响其它用例的执行。

脚本编写好了之后,需要反复执行,不断调试,直到运行正常为止。脚本的编写和命名要符合管理规范,以便统一管理和维护。

九、selenium工作原理?

Selenium的工作原理可以概括为以下5个方面:

selenium client(Python等语言编写的自动化测试脚本)初始化一个service服务,通过webdriver启动浏览器驱动程序chromedriver.exe;

通过RemoteWebDriver向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再对浏览器操作需携带此sessionid;

打开浏览器后,所有的selenium的操作(访问地址,查找元素)均通过RemoteConnection链接到remote server,然后使用execute方法调用request方法通过urlib3向remote server请求;

浏览器通过请求的内容执行对应动作;

浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本。

十、你的自动化框架结构是怎么样的?

搭建的自动化测试框架采用分层设计模型框架,主要分为以下几个模块:

common:一些基础的底层方法类,例如:测试报告类、数据配置读取类、日志类、封装webdriver类、数据库连接类、发送邮件类、公共方法类,只要是我们想要实现的一些功能,可以把基础方法的实现放在common文件夹。

config:配置文件放在这里,比如:账号密码、数据库连接地址等。

log:运行用例后,日志的存储文件夹。

report:运行用例后,测试报告的存储文件夹。

page:在POM设计模式下,关于具体UI页面操作的方法。

test_case:具体存放编写的测试用例。

run_all:用来批量运行测试用例。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】深入探讨二叉树的遍历和分治思想(一)

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:数据结构 🔥该文章主要讲述二叉树的递归结构及分治算法的思想。 目录: 🌍前言:🌍…

Sora 原理与技术实战笔记一

b 站视频合集 【AIX组队学习】Sora原理与技术实战:Sora技术路径详解 Sora 技术报告(OpenAI) huggingsd 文生图视频系列的一个开源项目 最强视频生成模型Sora相关技术解析 https://github.com/lichao-sun/SoraReview 惊艳效果: 长…

云呐智能运维包含哪些内容?运维未来的发展方向是什么?

智能运维(AIOps)是一种使用人工智能应用程序来调节IT操作和维护的实践方式。它结合了大数据和机器学习技术,旨在自动化和改进IT操作和维护任务,如故障检测、因果分析和自动故障修复。以下是智能操作和维护的具体内容、挑战和解决方…

使用Node.js构建一个简单的聊天机器人

当谈到人工智能,我们往往会想到什么?是智能语音助手、自动回复机器人等。在前端开发领域中,我们也可以利用Node.js来构建一个简单而有趣的聊天机器人。本文将带你一步步实现一个基于Node.js的聊天机器人,并了解其工作原理。 首先…

文生图项目总结

文生图 功能点 页面进来获取背景图url和图片宽高(根据比例和手机屏幕处理过的宽高)渲染图片(背景图最后生成图片模糊,换成img展示解决)添加多个文字,编辑文字内容,拖拽改变文字位置&#xff0c…

上云还是下云,最大挑战是什么?| 对话章文嵩、毕玄、王小瑞

近半年来,公有云领域频频发生阿里云、滴滴等平台崩溃事件,与此同时,马斯克的“X 下云省钱”言论引起了广泛关注,一时间,“上云”和“下云”成为热议话题。在最近举办的 AutoMQ 云原生创新论坛上,AutoMQ 联合…

大数据可视化python01

import pandas as pd import matplotlib.pyplot as plt# 设置中文改写字体 plt.rcParams[font.sans-serif] [SimHei]# 读取数据 data pd.read_csv(C:/Users/wzf/Desktop/读取数据进行数据可视化练习/实训作业练习/瓜果类单位面积产量.csv ,encoding utf-8)#输出 print(data)…

springcloud alibaba组件简介

一、Nacos 服务注册中心/统一配置中心 1、介绍 Nacos是一个配置中心,也是一个服务注册与发现中心。 1.1、配置中心的好处: (1)配置数据脱敏 (2)防止出错,方便管理 (3&#xff…

AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境等应用

原文链接:AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境等应用 一开启大模型 1 开启大模型 1)大模型的发展历程与最新功能 2)大模型的强大功能与应用场景 3)国内外经典大模型(ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Di…

ConcurrentHashMap的演进:从Java 8之前到Java 17的实现原理深度剖析

目录 一、引言二、Java 8之前的ConcurrentHashMap1、内部结构与初始化2、Segment类3、并发控制4、扩容与重哈希5、总结 三、Java 8中的ConcurrentHashMap1、数据结构2、并发控制2.1. CAS操作2.2. synchronized同步块 3、哈希计算与定位4、扩容与重哈希5、总结 四、Java 17中的C…

广汽埃安工厂:蔚来汽车的造车工厂有哪些?

具体来说,理想汽车目前在常州仅有一家汽车制造工厂。 一期项目于2017年12月竣工,2019年12月投产,年产能10万辆/年。 同时,正在规划二期工程。 产能将增至20万辆/年。 此外,理想还计划接管现代汽车在北京顺义的第一家工…

工业现场网络性能评估方案

最近要去一个工厂排查网络和电脑卡顿的问题,为此,我准备了以下的方案,在现场以抓包和网络监控的方式来排查。 1.评估流程 为了评估Linux系统的网络负荷,并使用tcpdump来捕获数据包进行分析,您需要遵循以下几个步骤: …

数据仓库与数据挖掘概述

目录 一、数据仓库概述 (一)从传统数据库到数据仓库 (二)数据仓库的4个特征 (三)数据仓库系统 (四)数据仓库系统体系结构 (五)数据仓库数据的粒度与组织…

论文阅读_代码生成模型_CodeGeeX

英文名称: CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Evaluations on HumanEval-X 中文名称: CodeGeeX:一种用于代码生成的预训练模型,并在HumanEval-X上进行多语言评估 链接: https://arxiv.org/abs/2303.17568 代码: http…

训练1 : 老头

以前用blender做的特效 总结 头发很费时间, 需要参考和练习眼窝周边结构还有些待准确把握从光与影中揣摩轮廓形状 从少量面掌握大体, 从多数面雕刻细节

terminal下环境不统一导致的程序报错(powersell改cmd)

1.报错现象 在terminal下利用命令行执行代码显示运行环境缺包: 但将命令中的参数写入参数文件,运行train.py时,程序可以正常运行: 直接运行train.py:程序可用: 2.原因分析 参考文章 控制台环境和项目环境不一致问…

【Mysql】InnoDB 中 B+ 树索引的注意事项

一、根页面万年不动 在之前的文章里,为了方便理解,都是先画存储用户记录的叶子节点,然后再画出存储目录项记录的内节点。 但实际上 B 树的行成过程是这样的: 每当为某个表创建一个 B 树索引,都会为这个索引创建一个根…

循环队列的实现

文章目录 循环队列的概念循环队列的实现循环队列的判空和判满链表or数组 循环队列的概念 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓…

快速下载Huggingface的大语言模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Huggingface是什么?二、基于官方huggingface-cli下载(基础,断线风险)1.安装hf下载环境2.配置环境变量3.注册…

CSAPP-信息的表示和处理

文章目录 概念扫盲思想理解经典好图安全事件 概念扫盲 1.大端高位在前,小端低位在前 2.逻辑运算符(&& 、||、!)与位级运算(&、|、~)的差异 3.宏可以保证无论代码如何编译,都能生成…