自动化面试
作者:互联网
面试系列篇之UI自动化
文章目录
前言
话说,这天隔壁小王,上街游玩,在这茫茫人海中,一眼相中了那个日思夜想的梦中情人小花,经多方打听,原来小花是一家公司的前台,为了追求小花,隔壁小王怒发冲冠,前去面试小花公司的自动化测试,只为了结相思之苦
一、情史基础篇
这天小王盛装打扮,来到小花公司,经苦苦等待,终于等来了面试官,只见这面试官面无表情,仿佛一眼看穿小王动机,小王见此那是冷汗直流啊,只见双方对坐,一场没有硝烟的战争由此展开
:
面试官:简历上说做过自动化,都做过什么呀!
小王: 哦,做过接口,做过UI,移动端,服务端都做过。
面试官: 那我先问你几个UI方面的问题吧,selenium 用过没。
小王: 用过,用过,大佬。
面试官: 那你说说selenium 中如何判断元素是否存在的?
小王:(内心独白:嘿嘿,太简单了吧) 可以通过匹配元素列表,列表为空,则不存在,列表不为空,则存在。或者用try…except…和用elements定义一组元素方法判断,当然,这些我平常都不用,我用的是这个方法(我要开始装逼了),通过WebDriverWait和expected_conditions判断
面试官: 来点实际的,代码怎么写,思路是啥,别瞎装逼
小王:容我慢慢道来
def is_element_exsist(driver, locator):
#判断元素是否存在,存在返回True,不存返回False
eles = driver.find_elements(*locator)
if len(eles) < 1:
return False
else:
return True
面试官:嗯,那你说说元素定位有哪几种方式,你最常用那几个?
小王:(想问我定位元素优先级就直说,还尼玛这么委婉)是这样的,面试官,
我所常用的元素定位方式优先级有:
1、优先级最高:ID
2、优先级其次:name
3、优先级再次:css selector
4、优先级最次:xpath
面试官:那你说说为什么css的效率更高 为什么css优先级在xpath之上
小王: 第一方面 css是配合html工作的,它实现的原理是匹配对象;而xpath是配合xml工作的,xpath的实现原理遍历,所以两者在设计上,css性能更加优秀 ,第二方面 相对xpath来说,css的语法更加简洁、优美,最后,前端多用css,不用xpath,所以在技术方面我们有更多的可能获取到帮助。
面试官:你在测试过程中,遇到验证码这类问题如何处理呢?
小王:(尼玛,说好的背背面试题,咋老问实际项目,还好老子有准备)嗯,,,,获取动态验证码,肯定不用图像识别,成本高,且成功率低,如果有服务端的数据权限,去服务端读取,一般来说,这个验证码的值是存在redis的,性能要求不严格的,用户数极少的系统,也可能会存在mysql,如果没权限,可以在测试环境不做验证码。
面试官:selenium 如何提高元素操作的成功率
小王:
1 对于元素等待的处理,显示等待和隐士等待的使用
2、尝试更加稳定的定位方法
3、手工操作能成功的,UI自动化操作就不能成功的,一般是由于前端开发实现不标准,当异常产生后,可以换一个表达式定位,或用鼠标事件代替click,一定程度,我们还可以补上鼠标悬停,或用JavaScript点击代替click。
用 JavaScript 去点击代码:
ele = driver.find_element_by_xxx(“表达式”) driver.execute_script(“argument[0].click;”, ele)
面试官:测试过程中,ui 自动化做不做数据校验
小王:(尼玛,还有完没完)只做用户看得见的数据校验,比如某列表,在新增一条之后,列表总数要加一,不做用户看不见的数据校验,比如数据库,这个是接口测试应该做的事情
面试官:你们公司 ui 自动化的覆盖率是多少
小王:参考自己公司的测试用例库,冒烟用例和回归用例占比大概多少,就回这个数字
面试官: 你写自动化用例,写了多少case,用了多长时间
小王: 数量:自己回去数一下公司的冒烟用例,用了多长时间:初步实现,两个人用了一周,后期维护,基本一直在维护,具体多少时间我没计算过
面试官: 你们公司多久执行一次自动化
小王: (尼玛,你是不是就想看看我又没有做过自动化)ui自动化的代码,每次冒烟都跑一下,版本提交跑一下,从测试环境提交到预生产环境跑一下
面试官:小伙子,看来你是有点小料的,那啥今天的问答就先到这吧,回去等二面吧
小王:嘿嘿,老子那是为了红颜豁出去了
总结
以上就是最基本的小面,预知小王中级情史篇,请看下回分解!
标签:xpath,面试官,优先级,面试,自动化,小王,css 来源: https://blog.csdn.net/Beyond_zhangtian/article/details/114699326