前言
关于Python自动化测试学习,总结了一个学习规划图,分享给大家(看不清点原图链接)
原图链接:https://shimo.im/docs/pwCpGXKWDKPKDJDK/

2020全网最全自动化测试面试题

简单阐述一下你对自动化测试的理解
自动化测试是一种使用自动化工具编写和执行测试人员测试脚本和案例的技术。
自动化测试的主要目标是减少手动运行的测试用例数量,而不是完全取消手动测试。

一、你会封装自动化测试框架吗?
当然会(回答果断一点),自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。

二、请简单描述一下自动化测试的流程

  1. 编写自动化测试计划
  2. 设计自动化测试用例
  3. 编写自动化测试框架和脚本
  4. 调试并维护脚本
  5. 无人值守测试
  6. 后期脚本维护(添加用例、开发更新版本)

三、上一个项目中自动化测试的执行策略?
上一个项目中是定时执行的,设置的执行时间是晚上12点,执行完毕后会自动发送邮件通知

四、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?
引用自动化测试之后,可以代替大量繁琐的回归测试工作,能把业务测试人员解放出来,能让业务测试人员把精力集中在复杂的业务功能模块上,自动化测试一般是对稳定下来的功能进行自动化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG

五、良好的自动化工具的主要特征是什么?

  • 测试环境支持且易于使用
  • 良好的调试设施
  • 强大的物体识别
  • 对象和图像测试能力
  • 对象识别
  • 测试数据库
  • 支持多个框架

六、哪些是最受欢迎的自动化测试工具?

  • QTP(HP UFT)
  • 理性机器人
  • Selenium

七、你对Selenium的了解,阐述一下?
Selenium是一个免费的(开源)Test Suite框架。它用于自动化Web和移动环境。它包括
Selenium IDE(浏览器插件 - 录制和播放工具)
Selenium WebDriver
Selenium Grid(分布式测试)
Selenium支持Java,C#,Python,Ruby,PHP,Perl,Javascript等语言的脚本编写。

八、你如何从Selenium连接到数据库?
Selenium是一个Web UI自动化工具。它不提供任何API来建立数据库连接。这取决于你使用Selenium进行自动化的编程语言。在下面的例子中,我们假设正在使用Java。

一个Connection对象表示与数据库的连接。当我们使用连接方法连接到一个数据库时,我们创建了一个连接对象,它代表了与数据库的连接。单个数据库可能有一个连接或多个连接,还可能有多个连接到不同的数据库上。

我们可以使用Connection对象来做以下事情:

  • 创建用于执行SQL语句的Statement,PreparedStatement和CallableStatement对象。
  • 可以帮助我们提交或回滚一个JDBC事务。
  • 如果你想知道连接到的数据库或数据源信息,Connection对象通过使用DatabaseMetaData就可以收集有关数据库或数据源的信息。
  • 可以帮助我们关闭数据源。Connection.isClosed() 方法只有在调用了Connection.close()时才返回true,此方法用于关闭所有连接。

首先我们需要通过使用DriverManager.getConnection()方法,建立与数据库的连接。这个方法接受一个包含URL的字符串。DriverManager类尝试查找可以连接到由字符串URL表示的数据库的驱动程序。每当调用getConnection()方法时,DriverManager类都会检查可以连接到URL中指定的数据库的所有已注册的Driver类的列表。
句法:

String url = “jdbc: odbc: makeConnection”;
Connection con = DriverManager.getConnection(url, “userID”, “password”);

九、Selenium中有哪些验证点?

  • Selenium主要有三种验证点 -
  • 检查页面标题
  • 检查某些文字
  • 检查某些元素(文本框,下拉菜单,表等)

十、在上一家公司做自动化测试用的什么框架?
可以说出以下自己擅长的一种:

  • python+selenium+unittest+htmltestrunner
  • python+selenium+pytest+allure
  • robotframework+Selenium2Library

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

  • 页面加载元素过慢,加等待时间
  • 页面有frame框架页,需要先跳转入frame框架再定位
  • 可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。
  • 可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成

十二、你如何处理使用Selenium的Ajax控件?
来看一个例子。假如一个文本框是一个Ajax控件,当我们输入一些文本时,它会显示自动建议的值。
处理这样的控件,需要在文本框中输入值之后,捕获字符串中的所有建议值;然后,分割字符串,取值就好了。

十三、自动化中有哪三类等待?他们有什么特点?

  • 线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执行后续的代码。建议少用。
  • imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特点是必须等待整个页面加载完成。
  • WebDriverWait(显式等待)通常是我们自定义的一个函数代码,这段代码用来等待某个元素加载完成,再继续执行后续的代码

十四、什么是PO模式,为什么要使用它?
PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,

分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。

十五、自动化测试与测试自动化的区别。
测试自动化:测试脱离人工,对于控制成本,控制质量,减少测试周期有积极的影响

自动化测试:将测试的部分或者全部交由机器执行的一种测试,叫做自动化测试,比手工测试昂贵。

自动化测试可以看成测试自动化的一部分。

十六、什么是关键字驱动?
按下数字1的时候,会发出1的声音

按下数字2的时候,会发出2的声音

按下数字3的时候,会发出3的声音

把它们使用python封装成一个个函数,那么这一个个函数就是所说的关键字驱动,

每一个关键字驱动一个业务,这便是关键字驱动了。

十七、在什么条件下我们不能使用Agile方法的自动化测试?
当敏捷测试总是要求改变需求时
当敏捷需要详尽的文档级别时
仅适用于敏捷测试期间的回归测试,如持续集成

十八、解释Sikuli是什么?
Sikuli是一个使用“Visual Image Match”方法自动化图形用户界面的工具。Sikuli中的所有Web元素都应作为图像存储在项目中。

十九、Selenium和Sikuli有什么区别?
Selenium:

  • 它不能自动化视频播放器,音频播放器等闪存对象。
  • 它有复杂的API
  • 它没有视觉匹配
  • 它只能自动化Web应用程序

Sikuli:

  • 它为自动化Flash对象提供了广泛的支持
  • 它有简单的API
  • 它使用视觉匹配来查找屏幕上的元素。因此,我们可以自动化我们在屏幕上看到的任何内容 它可以自动化Web和Windows应用程序

二十、什么是POM,为什么要使用它

POM是Page Object
Model的简称,它是一种设计思想,而不是框架。大概的意思是,把一个一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,所以自然而然就用了类的思想来组织我们的页面。一般一个页面写一个类文件,这个类文件包含该页面的元素定位和业务操作方法

为了我们测试用例写的简单,清晰,我们很多时候在页面对象会封装很多业务操作方法,测试脚本只需要调用相关方法就可以。

还有一个可能和这个问题相关的面试题,如果页面元素经常发生需求变化,你是如何做,答案就是采用POM思想。好处就是只要该一个页面,我就去修改这个页面对象的元素定位和相关方法,脚本不需要修改。

二十一、在你做自动化过程中,遇到了什么问题吗?举例下
这个问题,不管是自动化还是任何工作,都会被问到。主要想知道你是如何解决问题的,从而推断你问题分析和解决的能力。
当然有遇到问题和挑战,主要有以下几点:

  • 频繁地变更UI,经常要修改页面对象里面代码
  • 运行用例报错和处理,例如元素不可见,元素找不到这样异常
  • 测试脚本复用,尽可能多代码复用
  • 一些新框架产生的页面元素定位问题,例如ck编辑器,动态表格等

听说CSDN新开发一键三连功能了?如果本篇博客对你有帮助,请支持下博主哦

2020全网最全的软件测试进阶/自动化面试题(含答案),收藏慢慢看相关推荐

  1. 成渝地区微型计算机产业,2020届广州市高三年级调研测试文综地理试题(含答案).doc...

    2020届广州市高三年级调研测试文综地理试题(含答案).doc 2020届广州市高三年级调研测试文科综合(地理部分)一.选择题下表为我国四个省市2009年.2018年微型计算机产量对比表.据此完成1- ...

  2. 2020全网最全的软件测试linux面试题及参考答案,赶紧收藏!

    一.前言: 2020非常全的软件测试linux面试题及参考答案 作为一名软件测试工程师,我相信大部分的人都和Linux打过交道,因为我们的服务器一般都是装的Linux操作系统,包括各种云服务器也都是用 ...

  3. i了i了,这简直就是2020全网最全最强的MyBatis面试题!

    题目大纲 ps:先上题,答案在后面 1.什么是MyBatis? 2.讲下MyBatis的缓存 3.Mybatis是如何进行分页的?分页插件的原理是什么? 4.简述Mybatis的插件运行原理,以及如何 ...

  4. 工业利用计算机实现生产自动化属于,自动化考试试题(含答案)

    第一类:填空题 一.填空题 1.自动化控制系统按被控量的时间特性分为(连续量)和(离散量). 2.PLC 全称为(可编程序逻辑控制器),DCS全称为( 集散控制系统). 3.输入输出单元是(PLC)与 ...

  5. 软件测试常见笔试面试题---含答案

    一.什么是兼容性测试?兼容性测试侧重哪些方面? 兼容测试主要是检查软件在不同的硬件平台.软件平台上是否可以正常的运行,即是通常说的软件的可移植性. 兼容的类型,如果细分的话,有平台的兼容,网络兼容,数 ...

  6. 超级干货!31 条2020 年最新版 ZooKeeper面试题,先收藏再看!| 博文精选

    作者| ThinkWon 责编 | Carol 出品 | CSDN云计算(ID:CSDNcloud) 金三银四,虽然受疫情影响,大多数企业还未正式复工,但没有条件,创造条件也要上,许多企业已经开始物色 ...

  7. php获取js函数返回的值_最全最详细的PHP面试题(带有答案)

    这篇文章介绍的内容是关于最全最详细的PHP面试题(带有答案),有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 相关推荐: 八重樱:分享一波腾讯PHP面试题 八重樱:2019年PHP最新面 ...

  8. 计算机ps二级考试试题,2020年3月计算机等级Photoshop考试模拟试题及答案

    [导语]2020年3月计算机等级考试备考正在进行中,为了方便考生及时有效的备考,那么,无忧考网为您精心整理了2020年3月计算机等级Photoshop考试模拟试题及答案,把握机会抓紧练习吧.如想获取更 ...

  9. 最全最详细的PHP面试题(带有答案)

    这篇文章介绍的内容是关于最全最详细的PHP面试题(带有答案),有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 相关推荐: 八重樱:分享一波腾讯PHP面试题 八重樱:2019年PHP最新面 ...

最新文章

  1. 【jquery】用jsp写jquery的模板
  2. java期末考试试卷及答案文库_JAVA期末考试试卷及答案
  3. 复习05统计学习方法(决策树算法Decision Tree)---图片版
  4. 音频信号数据的读入(matlab)
  5. html5--3.16 button元素
  6. .net 反编译_向.net/Unity 程序员推荐一个十分因吹斯听的网站:sharplab.io
  7. C++中STL-队列和优先队列
  8. Delphi XE11APP编译出错
  9. idea打包jar程序
  10. AMAZEUI之iscroll 下滑刷新/上拉加载更多实例
  11. 32年正大天晴肝疾攻坚路 半部中国乙肝抗争史
  12. win10 无法识别x64dbg 插件
  13. 数字图像处理 - 投影重建图像(一)雷登变换和傅里叶切片
  14. RAR Extractor - The Unarchiver Pro for mac(解压缩软件)
  15. 接口测试-免费开放的api
  16. 数据挖掘 案例一:电力窃漏用户自动识别
  17. How to use segment advisor
  18. C语言-堆栈 什么是栈?一篇文章带你了解…
  19. 卡拉兹(Callatz)猜想(以VS2017为例)
  20. Apache iceberg:Netflix 数据仓库的基石

热门文章

  1. python正则匹配字母后面四位数字_怎么写一条正则去匹配15位、18位、还有最后一个字符为字母的身份证号...
  2. 基于Flash CS6和AS 3.0完成的赛车游戏
  3. 年中总结|男生如何学习服装搭配,提升衣着品味?
  4. solaris的ndd指令(相当于linux的sysctl命令)
  5. solaris tcp参数调整实例
  6. 如何在Mac上使用卡拉OK
  7. java+web+打印条形码_javaweb条形码产生、打印、扫描
  8. Python---蹒跚学步
  9. TextMate介绍
  10. 在电脑上安装不同版本的Java JDK的配置 javajdk版本无法切换解决方法