网站交互效果,明星设计网站风格说明,wordpress左右两栏,网站的管理更新维护关于自动化测试面试#xff0c;会问到哪些问题呢#xff1f;给大家简单总结了一下#xff0c;每一个都是学员反馈过来的企业真题#xff0c;相信对大家有帮助#xff0c;最近有面试机会的#xff0c;快来背一下答案吧
1、你会封装自动化测试框架吗#xff1f;
这个问得…关于自动化测试面试会问到哪些问题呢给大家简单总结了一下每一个都是学员反馈过来的企业真题相信对大家有帮助最近有面试机会的快来背一下答案吧
1、你会封装自动化测试框架吗
这个问得最多甚至有很多公司直接写在招聘要求中
当然可以自动化框架主要的核心框架就是分层PO模式分别为基础封装层BasePagePO页面对象层TestCase测试用例层。然后再加上日志处理模块ini配置文件读取模块unittestddt数据驱动模块jenkins持续集成模式组成。
2、自动化测试用例如何编写以下答案二选一即可
1.用例是自动化测试工程师自己设计的一般刚开始已基本业务流程为主登录--完成一个业务--退出
2.从系统测试用例中进行筛选或由业务工程师提供
3、自动化测试过程中你遇到了哪些问题是如何解决的
1.频繁地变更页面经常要修改页面对象类里面的代码
2.自动化测试偶尔出现过误报
3.自动化测试结果出现覆盖的情况Jenkins根据时间建立文件夹
3.1 如何降低自动化维护成本
00001. 在选取将用例自动化时就要注意尽可能的选取比较稳定的接口/内容做自动化测试
00002. 测试人员在编写测试脚本时对脚本质量的要求重用性复用性搭建高质量的测试框架
00003. 测试工具的选取使用比如选取专业的/商业话的测试软件工具以及硬件服务的配套使用
00004. 加强提高测试人员的编码开发实力这样能够创造出更多有用的测试工具
3.2 如何保证脚本的有效性
· 使用分层结构实现业务逻辑、脚本、数据分离。
· 使用PO设计模式将一个页面用到的元素和操作步骤封装在一个页面类中。如果一个元素定位发生了改变我们只用修改这个页面的元素属性。
· 对于页面类的方法我们尽量从客户的正向逻辑去分析方法中是一个独立场景例如登录到退出而且不要想着把所有的步骤都封装在一个方法中。
· 测试用例设计中减少测试用例之间的耦合度。
· 元素定位时使用稳定的相对路径来定位优先选择id避免使用绝对路径。
4、在上一家公司做自动化测试用的什么框架
可以说出以下自己擅长的一种
1.pythonseleniumunittesthtmltestrunner
2.pythonseleniumpytestallure
3.pythonrequestspytestallure
4.pythonAppiumpytestallure
5、如果一个元素无法定位你一般会考虑哪些方面的原因
1.页面加载元素过慢加等待时间
2.页面有frame框架页需要先跳转入frame框架再定位
3.可能该元素是动态元素定位方式要优化可以使用部分元素定位或通过父节点或兄弟节点定位。
4.可能识别了元素但是不能操作比如元素不可用不可写等。需要使用js先把前置的操作完成
6、遇到frame框架页面怎么处理
先用driver.switch_to.frame()跳转进去frame
然后再操作页面元素
操作完后使用driver.swith_to.default_content()跳转出来
7、遇到alert弹出窗如何处理
使用driver.switch_to.alert方法先跳转到alert弹出窗口
然后再通过accept点击确定按钮通过dismiss点击取消难通过text()获得弹出窗口的文本。
8、如何处理多窗口
这个多窗口之间跳转处理我们在项目中也经常遇到。就是当你点击一个链接这个链接会在一个新的tab打开然后你接下来要在新tab打开的页面查找元素
1.我们在点击链接前使用driver.current_window_handle获得新窗口句柄。
2.再点击链接。点击后通过driver.window_handles获得所有窗口的句柄
3.然后再循环找到新窗口的句柄然后再通过driver.switch_to.window()方法跳转到新的窗口。
9、怎么验证元素是enable/disabled/checked状态
定位元素后分别通过isEnabled()isSelected()isDisplayed()三个方法进行判断。
10、在日历这种web 表单你是如何处理的?
首先要分析当前网页试用日历插件的前端代码看看能不能通过元素定位点击日期实现如果不能可能需要借助javascript。还有些日历控件一个文本输入框可以直接sendKeys()方法来实现传入一个时间的数据。
11、举例一下说明一下你遇到过那些异常
常见的selenium异常有这些
NoSuchElementException没有该元素异常
TimeoutException 超时异常
ElementNotVisibleException 元素不可见异常
NoSuchAttributeException 没有这样属性异常
NoSuchFrameException 没有该frame异常
12、自动化中有哪三类等待他们有什么特点
1.线程等待强制等待如time.sleep(2)线程强制休眠2秒钟2秒过后再执行后续的代码。建议少用。
2.imlicitlyWait隐式等待会在指定的时间范围内不断的查找元素直到找到元素或超时特点是必须等待整个页面加载完成。
3.WebDriverWait显式等待通常是我们自定义的一个函数代码这段代码用来等待某个元素加载完成再继续执行后续的代码
13、你写的测试脚本能在不同浏览器上运行吗
当然可以我写的用例可以在在IE火狐和谷歌这三种浏览器上运行。实现的思路是封装一个方法分别传入一个浏览器的字符串如果传入IE就使用IE如果传入FireFox就使用FireFox如果传入Chrome就使用Chrome浏览器并且使用什么浏览器可以在总的ini配置文件中进行配置。需要注意的是每个浏览器使用的驱动不一样。
14、什么是PO模式为什么要使用它
PO是Page Object 模式的简称它是一种设计思想意思是把一个页面当做一个对象页面的元素和元素之间操作方法就是页面对象的属性和行为PO模式一般使用三层架构分别为基础封装层BasePagePO页面对象层TestCase测试用例层。
15、什么是进程、线程、协程?
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程是操作系统进行资源分配和调度的一个独立单位是应用程序运行的载体。
线程是程序执行中一个单一的顺序控制流程是程序执行流的最小单元是处理器调度和分派的基本单位。
协程是一种基于线程之上但又比线程更加轻量级的存在这种由程序员自己写程序来管理的轻量级线程叫做『用户空间线程』具有对内核来说不可见的特性。
进程与线程的区别
· 线程是程序执行的最小单位而进程是操作系统分配资源的最小单位
· 一个进程由一个或多个线程组成线程是一个进程中代码的不同执行路线
· 进程之间相互独立但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号)某进程内的线程在其它进程不可见
· 调度和切换线程上下文切换比进程上下文切换要快得多。
协程的特点
· 线程的切换由操作系统负责调度协程由用户自己进行调度因此减少了上下文切换提高了效率。
· 线程的默认Stack大小是1M而协程更轻量接近1K。因此可以在相同的内存中开启更多的协程。
· 由于在同一个线程上因此可以避免竞争关系而使用锁。
· 适用于被阻塞的且需要大量并发的场景。但不适用于大量计算的多线程遇到此种情况更好是用线程去解决。
16、如何把自动化测试在公司中实施并推广起来的
1.项目组调研选择自动化工具并开会演示demo案例我们主要是演示selenium和robotframework两种。
2.搭建自动化测试框架在项目中逐步开展自动化。
3.把该项目的自动化流程、框架固化成文档
4.推广到公司的其它项目组应用
17、请描述一下自动化测试流程
1.编写自动化测试计划
2.设计自动化测试用例
3.编写自动化测试框架和脚本
4.调试并维护脚本
5.无人值守测试
6.后期脚本维护添加用例、开发更新版本
18、上一个项目中自动化测试的执行策略
上一个项目中是定时执行的设置的执行时间是晚上12点执行完毕后会自动发送邮件通知
19、自动化测试发现BUG多吗
不多因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试它主要是保证已经测试通过的功能在新版本更新后没有问题。
20、你觉得自动化测试的价值在哪里你们公司为什么要做自动化测试
引用自动化测试之后能代替大量繁琐的回归测试工作把业务测试人员解放出来既而让业务测试人员把精力集中在复杂的业务功能模块上自动化测试一般是对稳定下来的功能进行自动化保证不会因为产品的更新导致之前稳定下来的功能出现BUG
21、自动化测试有误报过bug吗产生误报怎么办
有误报过有时候自动化测试报告中显示发现了bug,实际去通过手工测试去确认又不存在该bug。
误报原因一般是
1.元素定位不稳定需要尽量提高脚本的稳定性
2.开发更新了页面但是测试没有及时更新维护!
22、在selenium自动化测试中你一般完成什么类型的测试自动化覆盖率
主要是冒烟测试和回归测试。回归测试主要写一些功能稳定的场景通过自动化手段去实现节约测试时间。因为自动化测试用例也是在不断的更新和迭代没有刻意去统计大概在30%-40%左右
23、在执行脚本过程如何实现当前元素高亮显示
这个其实就是利用javaScript去修改当前元素的边框样式来到达高亮显示的效果
24、元素定位方法你熟悉的有哪些
id name classname link_text css xpath
25、如何处理下拉菜单
在Selenium中有一个叫Select的类这个类支持对下拉菜单进行操作。使用方法如下
1.定位元素
2.把定位的元素转化成Select对象。
sel Select(定位的元素对象)
3.通过下标或者值或者文本选中下拉框。
sel.select_by_index(index);
sel.select_by_value(value);
sel.select_by_visible_text(text);
26、关闭浏览器中quit和close的区别
简单来说两个都可以实现退出浏览器session功能close是关闭你当前聚焦的tab页面而quit是关闭全部浏览器tab页面并退出浏览器session。知道这两个区别我们就知道quit一般用在结束测试之前的操作close用在执行用例过程中关闭某一个页面的操作。
27、在Selenium中如何实现截图如何实现用例执行失败才截图
在Selenium中提供了一个get_screenshot_as_file()的方法来截图的一般结合try/except捕获异常时使用进行错误截图。
28、如何实现文件上传
定位元素后直接使用send_keys()方法设置就行参数为需要上传的文件的路径。
29、 如何分层自动化测试
· UI自动化回归
· 接口自动化
· 单元测试-白盒测试 总结
如果你对此文有任何疑问如果你也需要接口项目实战如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们加入方式在文章的最后面 自动化测试相关教程推荐 2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂_哔哩哔哩_bilibili 2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华学完年薪40W_哔哩哔哩_bilibili 测试开发相关教程推荐 2023全网最牛字节测试开发大佬现场教学从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili postman/jmeter/fiddler测试工具类教程推荐 讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程学jmeter接口测试一套教程就够了_哔哩哔哩_bilibili 2023自学fiddler抓包请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程_哔哩哔哩_bilibili 2023全网封神B站讲的最详细的Postman接口测试实战教学小白都能学会_哔哩哔哩_bilibili 总结 光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。
如果对你有帮助的话点个赞收个藏给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片博主也希望和志同道合的测试人员一起学习进步
在适当的年龄选择适当的岗位尽量去发挥好自己的优势。
我的自动化测试开发之路一路走来都离不每个阶段的计划因为自己喜欢规划和总结
测试开发视频教程、学习笔记领取传送门