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

金9银10跳槽季,最新自动化测试面试题合集

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

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

编写自动化测试计划;

设计自动化测试用例;

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

调试并维护脚本;

无人值守测试;

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

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

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

误报原因一般是:

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

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

三、什么是PO模式?

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

PO模式主要分三层:

  • 基础层BasePage:封装一些最基础的selenium的原生的api方法,元素定位,框架跳转等。
  • PO层:元素定位、获得元素对象,页面动作
  • 测试用例层:业务逻辑,数据驱动。

三者的关系: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:用来批量运行测试用例。
总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL死锁问题解决方案
  • 一本读懂数据库发展史的书
  • 如何在大三大四阶段,获得GIS开发能力和实习经验?
  • UI设计评审
  • Telegram创始人帕维尔·杜罗夫:从俄罗斯到迪拜的自由之路
  • 安全升级:Docker部署Redis,启用密码验证
  • 短视频流量|基于SprinBoot+vue的短视频流量数据分析系统(源码+数据库+文档)
  • 大模型日报|7 篇必读的大模型论文
  • docker实战演练
  • HarmonyOS 鸿蒙获取微信授权和持续获取位置信息
  • Android 系统连接WIFI显示网络连接受限分析处理
  • CI/CD实践(五)Jenkins Docker 自动化构建部署Node服务
  • kafka的12个重要概念
  • Spatial Structure Constraints for Weakly SupervisedSemantic Segmentation
  • Python实现分水岭图像分割算法
  • 2018一半小结一波
  • CSS魔法堂:Absolute Positioning就这个样
  • ES10 特性的完整指南
  • es6(二):字符串的扩展
  • express.js的介绍及使用
  • LeetCode算法系列_0891_子序列宽度之和
  • php中curl和soap方式请求服务超时问题
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Vue组件定义
  • 测试如何在敏捷团队中工作?
  • 技术胖1-4季视频复习— (看视频笔记)
  • 坑!为什么View.startAnimation不起作用?
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (7)STL算法之交换赋值
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (初研) Sentence-embedding fine-tune notebook
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (小白学Java)Java简介和基本配置
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (自用)网络编程
  • 、写入Shellcode到注册表上线
  • .dwp和.webpart的区别
  • .NET Core引入性能分析引导优化
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .sh
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @Autowired @Resource @Qualifier的区别
  • [000-01-022].第06节:RabbitMQ中的交换机介绍
  • [20170728]oracle保留字.txt
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色