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

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

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

编写自动化测试计划;

设计自动化测试用例;

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

调试并维护脚本;

无人值守测试;

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

二、自动化测试有误报过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/3346.shtml

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

相关文章

【UE4 塔防游戏系列】07-子弹对敌人造成伤害

目录 效果 步骤 一、让子弹拥有不同伤害 二、敌人拥有不同血量 三、修改“BP_TowerBase”逻辑 四、发射的子弹对敌人造成伤害 效果 步骤 一、让子弹拥有不同伤害 为了让每一种子弹拥有不同的伤害值,打开“TotalBulletsCategory”(所有子弹的父类…

【Spring Boot】Web开发 — Web开发简介

Web开发简介 首先介绍Spring Boot 提供的Web组件spring-boot-starter-web,然后介绍Controller和RestController注解,以及控制数据返回的ResponseBody注解,最后介绍Web配置,以便让读者对使用Spring Boot开发Web系统有初步的了解。…

linux下一个iic驱动(按键+点灯)-互斥

一、前提: 硬件部分: 1. rk3399开发板,其中的某一路iic,这个作为总线的主控制器 2. gd32单片机,其中的某一路iic,从设备。主要是按键上报和灯的亮灭控制。(按键大约30个,灯在键的…

送呆萌的她一个皮卡丘(Python实现)

目录 1 呆萌的她 2 思维需要革新 3 送她的一个漂亮皮卡丘 4 Python完整代码奉上 1 呆萌的她 又是一季春风暖阳下, 你是一湾一湾羞涩的春波。 静静感受着, 你垂下的枝膊 在我的脸上轻轻抚摸 一对春燕,低低掠过 涟漪乍起,是你浅浅的笑窝...... 2 思…

(五)「消息队列」之 RabbitMQ 主题(使用 .NET 客户端)

0、引言 先决条件 本教程假设 RabbitMQ 已安装并且正在 本地主机 的标准端口(5672)上运行。如果您使用了不同的主机、端口或凭证,则要求调整连接设置。 获取帮助 如果您在阅读本教程时遇到问题,可以通过邮件列表或者 RabbitMQ 社区…

56 # 实现 pipe 方法进行拷贝

pipe 是异步的,可以实现读一点写一点,管道的优势:不会淹没可用内存,但是在导入的过程中无法获取到内容 const fs require("fs"); const path require("path");fs.createReadStream(path.resolve(__dirname…

前端 | (七)浮动 | 尚硅谷前端html+css零基础教程2023最新

学习来源:尚硅谷前端htmlcss零基础教程,2023最新前端开发html5css3视频 文章目录 📚浮动介绍🐇元素浮动后的特点🐇浮动小练习🔥盒子1右浮动🔥盒子1左浮动🔥所有盒子都浮动&#x1f5…

数学建模 插值算法

有问题 牛顿差值也有问题它们都有龙格现象,一般用分段插值。 插值预测要比灰色关联预测更加准确,灰色预测只有2次 拟合样本点要非常多,样本点少差值合适

Spring底层

配置文件 配置优先级 之前讲解过,可以用这三种方式进行配置 那如果这三种都进行了配置,那到底哪一份生效呢? 结论 优先级从大到小 properties>yml>yaml然后就是现在一般都用yml文件进行配置 其他配置方式 除了配置文件外 还有不同…

电压放大器在超声波焊接中的作用以及应用

电压放大器是一种运用于电子设备中的信号放大器,主要作用是将小信号放大为更高幅度的信号。在超声波焊接中,电压放大器起到了重要的作用,它可以将从传感器采集到的微小信号放大为能够被检测和处理的合适大小的信号。 超声波焊接是现代工业生产…

微信怎么自动加好友,通过好友后自动打招呼

很多客户朋友每天花大量的时间用手机搜索添加好友,这样的添加很集中也容易频繁,而且效率还低。对方通过后,有时也不能及时和客户搭建链接,导致客户也流失了。 现在可以实现自动添加和自动打招呼哦,只需要导入数据、设置…

【从零开始学CSS | 第二篇】伪类选择器

目录 前言: 伪类选择器: 常见的伪类选择器: 举例: 小窍门: 总结: 前言: 上一篇文章我们详细的为大家介绍了一些常见的选择器,这几篇我们将再次介绍CSS中的一个常见选择器——伪类选择器&am…

设计模式之适配器模式

写在前面 适配器设计模式属于结构型设计模式的一种,本文一起来看下。 1:介绍 1.1:什么时候适配器设计模式 当现有接口客户端无法直接调用时,我们可以考虑适配器设计模式,来定义一个能够供客户端直接调用的接口&…

软件测试的分类

代码分类: 1、黑盒测试 2、白盒测试 3、灰黑测试 黑盒测试: 把测试的对象看成是一个黑色的盒子的,看不到里面内部的结构,是对软件的一种功能性的测试。 白盒测试: 就是把测试的对象看成是一个透明的盒子&#x…

测试老鸟总结,性能测试-最佳并发和最大并发,性能测试实施...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试&#xf…

curl操作

下载路径:https://curl.se/windows/ 参考:https://blog.csdn.net/weixin_45191386/article/details/130652821 操作: curl http://localhost:8085/api/v1/aaa/bbbb/?ccc 652781344055627776

第四次CCF计算机软件能力认证

第一题:图像旋转 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转 90 度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 输入的第一行包含两…

我国版式文档格式OFD前端WEB展示之EasyOFD

EasyOFD an ofd file web shower 一个在web端展示ofd文件的控件,该控件基于CANVAS绘制。 该控件使用了以下外部程序 1)jszip:解决解压文件。 2)x2js: 解决XML文件到JS转换 3)easyjbig2: 解决ofd内部使用jb2文件存储的…

NSSCTF刷web(2)

[NISACTF 2022]bingdundun~ bingdundun处感觉像文件包含,改upload为index 发现确实,猜测会补一个后缀.php 那常规文件包含都不行了,这里还有一个文件上传的功能,考虑phar协议 <?php$phar new Phar("test.phar"); $phar->startBuffering(); $phar->setStu…

【excel细碎小知识点】

目录索引 &符号的用法&#xff1a;实例演示&#xff1a; 数字显示和位数的区别&#xff1a;分列功能的妙用&#xff1a;什么叫做常规类型&#xff1a; &符号的用法&#xff1a; **连接字符串:**转化后都是文本字符串类型。你可以通过修改数据类型进行更多可能的操作 实…