小黄鸡欢迎同学前来面试自动化篇
引言:自动化永远是避不开的,反正你入职的岗位要不要用自动化,你必须得会一点,加分项。这一块包括,自动化一些理念和自动化的工具使用。有同学说问题太多难消化,那就每天只推送十题之内。
a.自动化测试框架都有哪些?
1.模块化框架(test script modularity)
2.函数库结构框架(test library architecture)
3.关键字驱动测试框架(keyword-driven/table-driven testing)
4.数据驱动测试框架(data-driven testing)
5.混合型框架(hybrid test automation)
b.id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?
css 、xpath 几乎所有的元素都可以定位到
c.如何去定位页面上动态加载的元素?
触发动态加载元素的事件,直至动态元素出现,进行定位
加油鸭
d.如何去定位属性动态变化的元素?
xpath或者css通过同级、父级、子级进行定位
e.提到Selenium和Sikuli有什么区别?
Selenium:
它不能自动化视频播放器,音频播放器等闪存对象。
它有复杂的API
它没有视觉匹配
它只能自动化Web应用程序
f.如何提高selenium脚本的执行速度?
Selenium脚本的执行速度受多方面因素的影响:
- 网速;
- 操作步骤的繁琐程度;
- 页面加载的速度;
- 脚本中设置的等待时间;
- 运行脚本的线程数;
- 能稳定的视线回归测试是关键;
提高速度的方法:
减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。
中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。
在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。
配置testNG实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,尽量设置多线程运行,提高执行速度。
g.做自动化测试是否需要连接数据库做数据校验?
UI自动化测试不需要,接口自动化测试需要;