python⾃动化测试⾯试题及答案_⾃动化测试⾯试题及答案⾃动化测试是什么?⾃动化测试学什么?⾃动化测试⾯试题及答案?--看完后吊打⾯试官!
⼀、前⾔
最近有童鞋和我抱怨,说⽹上很难搜到那些全⾯⼜合适的⾃动化测试⾯试题,这⾥根据我个⼈的经验以及收集整理的:
你没看错,不慌,慢慢来。
先从什么是⾃动化测试开始说起哈!
⼆、什么是⾃动化测试?
什么是⾃动化测试?
当我第⼀次知道⾃动化测试的时候,除了知道“⾃动化”这三个有些⾼⼤上的称呼之外,我对⾃动化测试⼀⽆所知,正如谈恋爱⼀样,⼥朋友之前要知道她是谁。
⾃动测试就是把以⼈为驱动的测试转化为机器执⾏的⼀种过程,它是⼀种以程序测试程序的过程。嗦嘎!那么...
三、⾃动化测试需要学什么技能?
这是我以前在知乎写的,可以详细的了解2020年⾃动化测试攻城狮需要学什么技能了!
temporary与transient四、2020年全⽹最全的⾃动化测试⾯试题和答案,原来⼲货都在这⾥
1、你会封装⾃动化测试框架吗?
这个问得最多,甚⾄有很多公司直接写在招聘要求中!
当然可以,⾃动化框架主要的核⼼框架就是分层+PO模式:分别为:基础封装层BasePage,PO页⾯对象层,TestCase测试⽤例层。然后再加上⽇志处理模块,ini配置⽂件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。
2、如何把⾃动化测试在公司中实施并推⼴起来的?
1.项⽬组调研选择⾃动化⼯具并开会演⽰demo案例,我们主要是演⽰selenium和robotframework两种。
2.搭建⾃动化测试框架,在项⽬中逐步开展⾃动化。
3.把该项⽬的⾃动化流程、框架固化成⽂档
4.推⼴到公司的其它项⽬组应⽤
3、请描述⼀下⾃动化测试流程?
1.编写⾃动化测试计划
2.设计⾃动化测试⽤例
3.编写⾃动化测试框架和脚本
4.调试并维护脚本
五种常见的触发器5.⽆⼈值守测试
6.后期脚本维护(添加⽤例、开发更新版本)
4、⾃动化测试⽤例如何编写?以下答案⼆选⼀即可:
1.⽤例是⾃动化测试⼯程师⾃⼰设计的,⼀般刚开始已基本业务流程为主(登录--完成⼀个业务--退出)
2.从系统测试⽤例中进⾏筛选或由业务⼯程师提供
5、上⼀个项⽬中⾃动化测试的执⾏策略?
上⼀个项⽬中是定时执⾏的,设置的执⾏时间是晚上12点,执⾏完毕后会⾃动发送邮件通知
6、⾃动化测试发现BUG多吗?
不多,因为之前项⽬组是把已经测试通过的基本功能再进⾏⾃动化脚本编写和在后续版本执⾏⾃动化测试,它主要是保证已经测试通过的功能在新版本更新后没有问题。
7、你觉得⾃动化测试的价值在哪⾥?你们公司为什么要做⾃动化测试?
引⽤⾃动化测试之后,能代替⼤量繁琐的回归测试⼯作,把业务测试⼈员解放出来,既⽽让业务测试⼈员把精⼒集中在复杂的业务功能模块上,⾃动化测试⼀般是对稳定下来的功能进⾏⾃动化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG
8、⾃动化测试有误报过bug吗?产⽣误报怎么办?
有误报过,有时候⾃动化测试报告中显⽰发现了bug,实际去通过⼿⼯测试去确认⼜不存在该bug。
误报原因⼀般是:layers中文什么意思
1.元素定位不稳定,需要尽量提⾼脚本的稳定性;
2.开发更新了页⾯但是测试没有及时更新维护!
9、⾃动化测试过程中,你遇到了哪些问题,是如何解决的?
1.频繁地变更页⾯,经常要修改页⾯对象类⾥⾯的代码
2.⾃动化测试偶尔出现过误报
3.⾃动化测试结果出现覆盖的情况:Jenkins根据时间建⽴⽂件夹
4.⾃动化测试代码维护⽐较⿇烦
5.⾃动化测试进⾏数据库对⽐数据
10、在上⼀家公司做⾃动化测试⽤的什么框架?
可以说出以下⾃⼰擅长的⼀种:
1.python+selenium+unittest+htmltestrunner
2.python+selenium+pytest+allure
3. robotframework+Selenium2Library
11、你们⾃动化团队有⾃⼰的吗?
当然有:我们使⽤的号是:695458161 有很多软件测试和⾃动化⼤神解决项⽬中的问题,还会不定时的发放免费资料。
12、在selenium⾃动化测试中,你⼀般完成什么类型的测试?⾃动化覆盖率?
主要是冒烟测试和回归测试。回归测试主要写⼀些功能稳定的场景,通过⾃动化⼿段去实现,节约测试时间。因为⾃动化测试⽤例也是在不断的更新和迭代,没有刻意去统计,⼤概在30%-40%左右!
13、在执⾏脚本过程,如何实现当前元素⾼亮显⽰?
这个其实就是利⽤javaScript去修改当前元素的边框样式来到达⾼亮显⽰的效果,
14、如果⼀个元素⽆法定位,你⼀般会考虑哪些⽅⾯的原因?
1.页⾯加载元素过慢,加等待时间
2.页⾯有frame框架页,需要先跳转⼊frame框架再定位
3.可能该元素是动态元素,定位⽅式要优化,可以使⽤部分元素定位或通过⽗节点或兄弟节点定位。
4.可能识别了元素,但是不能操作,⽐如元素不可⽤,不可写等。需要使⽤js先把前置的操作完成,
15、元素定位⽅法你熟悉的有哪些?
id name classname link_text css xpath
16、遇到frame框架页⾯怎么处理?
先⽤driver.switch_to.frame()跳转进去frame,
然后再操作页⾯元素,
操作完后使⽤driver.swith_to.default_content()跳转出来
17、遇到alert弹出窗如何处理?
使⽤driver.switch_to.alert⽅法先跳转到alert弹出窗⼝
然后再通过accept点击确定按钮,通过dismiss点击取消难,通过text()获得弹出窗⼝的⽂本。
18、如何处理多窗⼝?
这个多窗⼝之间跳转处理,我们在项⽬中也经常遇到。就是,当你点击⼀个链接,这个链接会在⼀个新的tab打开,然后你接下来要在新tab 打开的页⾯查元素,
1.我们在点击链接前使⽤driver.current_window_handle获得当前窗⼝句柄。
2.再点击链接。点击后通过driver.window_handles获得所有窗⼝的句柄,
3.然后再循环到新窗⼝的句柄,然后再通过driver.switch_to.window()⽅法跳转到新的窗⼝。
19、怎么验证元素是enable/disabled/checked状态?
定位元素后:分别通过isEnabled(),isSelected(),isDisplayed()三个⽅法进⾏判断。
20、 如何处理下拉菜单?
在Selenium中有⼀个叫Select的类,这个类⽀持对下拉菜单进⾏操作。使⽤⽅法如下:
1.定位元素
2.把定位的元素转化成Select对象。
sel = Select(定位的元素对象)
3.通过下标或者值或者⽂本选中下拉框。
sel.select_by_index(index);
sel.select_by_value(value);
sel.select_by_visible_text(text);
21、在⽇历这种web 表单你是如何处理的?
⾸先要分析当前⽹页试⽤⽇历插件的前端代码,看看能不能通过元素定位,点击⽇期实现,如果不能,可能需要借助javascript。还有些⽇历控件⼀个⽂本输⼊框,可以直接sendKeys()⽅法来实现传⼊⼀个时间的数据。
晨星ll学霸的黑科技系统22、举例⼀下说明⼀下你遇到过那些异常
常见的selenium异常有这些:
web前端基础面试题NoSuchElementException:没有该元素异常
TimeoutException : 超时异常
ElementNotVisibleException :元素不可见异常
NoSuchAttributeException :没有这样属性异常
NoSuchFrameException :没有该frame异常
23、关闭浏览器中quit和close的区别
简单来说,两个都可以实现退出浏览器session功能,close是关闭你当前聚焦的tab页⾯,⽽quit是关闭全部浏览器tab页⾯,并退出浏览器session。知道这两个区别,我们就知道quit⼀般⽤在结束测试之前的操作,close⽤在执⾏⽤例过程中关闭某⼀个页⾯的操作。
24、在Selenium中如何实现截图,如何实现⽤例执⾏失败才截图
在Selenium中提供了⼀个get_screenshot_as_file()的⽅法来截图的,⼀般结合try/except捕获异常时使
⽤,进⾏错误截图。
25、如何实现⽂件上传?
定位元素后,直接使⽤send_keys()⽅法设置就⾏,参数为需要上传的⽂件的路径。
26、⾃动化中有哪三类等待?他们有什么特点?
1.线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执⾏后续的代码。建议少⽤。
2.imlicitlyWait(隐式等待)会在指定的时间范围内不断的查元素,直到到元素或超时,特点是必须等待整个页⾯加载完成。
3.WebDriverWait(显式等待)通常是我们⾃定义的⼀个函数代码,这段代码⽤来等待某个元素加载完成,再继续执⾏后续的代码
27、你写的测试脚本能在不同浏览器上运⾏吗
当然可以,我写的⽤例可以在在IE,⽕狐和⾕歌这三种浏览器上运⾏。实现的思路是封装⼀个⽅法,
分别传⼊⼀个浏览器的字符串,如果传⼊IE就使⽤IE,如果传⼊FireFox就使⽤FireFox,如果传⼊Chrome就使⽤Chrome浏览器,并且使⽤什么浏览器可以在总的ini配置⽂件中进⾏配置。需要注意的是每个浏览器使⽤的驱动不⼀样。
函数fscanf的功能是28、什么是PO模式,为什么要使⽤它
PO是Page Object 模式的简称,它是⼀种设计思想,意思是,把⼀个页⾯,当做⼀个对象,页⾯的元素和元素之间操作⽅法就是页⾯对象的属性和⾏为,PO模式⼀般使⽤三层架构,分别为:基础封装层BasePage,PO页⾯对象层,TestCase测试⽤例层。
五、预祝⾯试成功,给您的OFFER,请收下!
最后预祝每⼀位求职者都能到⾃⼰如意的⼯作!马上实现升职加薪!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论