【编测编学】自动化测试面试必背(上)

1、你会封装自动测试框架吗?
这个问得最多,甚至有很多公司直接写在招聘要求中。
自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。
2、如何把自动化测试在公司中实施并推广起来的?
①项目{ ] 8 b z G % o Y组调研选择自动化工具并开会演示demo案例,我们主要是演示selenium和robotframework两种。
②搭建自动化测试框架,在项目中逐步开展自动化G Z * k B C v
③把该项目的自动化流程、框架固化成文档
④推P # z广到公司的其它项目组应用
3、请描述一下自动化测试流程?
①编写自动化测试计划
②设计自动化测试用例
③编写自动化测试框架和脚本
④调试并维护脚本
无人值守测试
⑥后期脚本维护(c b A 6 b添加用例、开发更新版本)
4、自动化测试用例如何编写?( ` p Y以下答案二选一即T [ d A =可:
①用例是自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录--完成一个业务--退M U G _ * l r出)
②从系统测试用例中进行筛选或由业务工程师提供
5、上一个项目中自动化测试的执行策略?
上一个项目中是定时执行的,设置的执行时间是晚上b L [ f L12点,执行 { = % G V完毕` C , 7 r d B B后会自动发送邮件通知
6、自动化测试发现BUG多z v V吗?
不多,因为之前项目组是把已经测试通过的基本功能再进b j l { M y行自动化脚本编写和在后续A T C版本执行自动化测试,它主要是保证已经测试通过的功能在新版本更新后没有问题。
7、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?
引用自动化测试之后,能代替大量繁琐的回归测试工作,把业务测试人员解放出来,既而让业务测试人员把精力集中在复杂的业务功能模块P m 6 -上,自动化测试一般是对稳定下来的功能进行自动, K 3 U d , b化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG
8、自动化测试有误报过bug吗?产生误报怎么办?
有误报过,有时候自动化测试报告中显V 3 L w {示发现了bug,实际去通过手工测试去确认又不存在该bug。
误报原因一般是:
② 元素定位不稳定,需要尽量提高脚本的稳定性;
②开发更新了页面但是测试没有及时更新维护!
9、自动化测试过程中,你遇到了哪些* Y h , p 问题,是如何解决的?
①频繁地[ ( p h , - / J W变更页面,经Q g % D B p K常要修改页面对象类里面的代码
②自动化测试偶尔出现过误报
③ 自动化测试结果出现覆盖的情况:Jenkins根据时间建立文件夹e O H h + V H
④ .自动化测试代码维护比较麻烦
⑤自动化测试M R M f . b y B进行数据库对比数据
10、在上一家公司做自动化测试用的什么框架?
可以说出以下自己擅2 U J ! Y & % t长的一种:
① python+selenium+unittest+htmltestrunner
② python+selenium+pytest+allure
③ robotframework+Selenium2Library
11、在selenium自动化测试中,你一般完成什么类型的测试?自| g 6 [ n 9 T V动化覆盖率?
~ % R I q ? L要是冒烟测试和回归测试。回归测试主要写? c c a U T 7 p一些功能稳v m 6 S ] C & t定的场景,通过自动化手段去实现,节约测试时间。因为自动化测试用例也是在不断的更新和迭代,没有刻意去统计,大概在30%-40%左右!
12、在执行脚本过程,如何实现当前元素高亮显示?
这个其实就是利用jav9 t V . o C =aScript去修改S R X k t $ h当前元素的边框样式来到达高亮显示的效果,
13、如果一个元素无法定位,你一般会s w w ~ c考虑哪些方面的原因?
①页面加载元素过慢,加等待时间
②页面有frame框架页,需要先跳转入frame框架再定位
③可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。
④可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成,
14、元素定位方法你熟悉的有哪些?
id 、name、 class_name 、link_text 、css 、xpatG & b 4 F 1 Rh
15、遇到fr| 1 B tame框架页面怎么处理?
c c | -用driver.sC N / c O q 1 E Mwitch_to.frame()跳转进去frame,
然后再操作页面元素,
操作完后` * _ 7 - p i Q使用driver.swith_t6 p | io.m 3 j ( [ 8 `default_content()跳转出来
16、遇到alert弹出窗如何处理?
使q K ! S r用driver.switch4 a B M g D , 0_to.alert方法先跳转到alert弹出窗口
然后再通过accept点击确定按钮,通过dismiss点击取消难,通过text()获得弹出窗口的文本。
17、如何处理多窗口?E D } r
这个多窗口之间跳转处理,我们在项目中也经常遇到。就是,当你点击一个链接,这个链接会在一个新的tab打开,然后你接下来要在新tM q . I f * i cab打开的页面查找元素,
①我们在点击链接前使用driver.current_window? U a a x H q B i_handle获得当前窗口句柄。
②再点击链接。点击后通过driver.wiU | B t zndow_handles获得所有窗口的句柄,
③然后再循环找到新窗口的句D 2 Z柄,然后再通过driver.switch_to.window()方法跳转到新的窗口。

【编测编学】 教学内容为:

测试基础知识、项目实战、测试管理、敏捷测试、探索式测试、APP测试、Linux、数据库、测试环境搭建、Pytho r o y E HnW ^ } x : ] G =编程、WEB端UI自动化测试、APP端UI自动化、X p s接口功能测试、性能测试、接口自动化测试、Jenkins持续集成 等内容。

通过学习,学员能 掌握软件测试企业最新技术,对标一线互联网4 9 } ( I * x C企业项目要求,使学员达到中高级测试工程师的水平,毕业后可快速融入企业实际工作中。R u . 7

不管你是 文科生、专科生、0基础、女同学 都可以轻松学会!