深信服面试问题:
- 你的自动化测试是怎么实现的?(必问)
根据自己的情况说吧,有些会设计的框架细分目录后,分别实现了什么功能?
接口自动化 python+unittest+ddt+HtmlRunnerNew
web自动化python+selenium+pytest+Allure
- 你对 selenium 二次封装的关键字,是怎么封装的?挑了一个等待元素的关键字问设计了哪些参数?
- 简述一下三大等待吧?
①显性等待:WebDriverWait,针对元素设置的等待时间,并只针对该元素有效,用来等待某个条件满足,默认会每隔 0.5 秒去找元素,检查是否满足条件,超时报异常。(面试官问的很细这个间隔时间是通过什么参数去控制的,当时记不住没答出来,回来看了,才知道是poll_frequency=POLL_FREQUENCY)
②隐形等待:implicity_wait,通过 driver 对象给所有元素设置的全局等待,在设置的时间范围内一直不断找元素,超时报异常。
③强制等待:sleep,不管什么情况都需要等
- Web 自动化编写了多少用例?执行一次需要多长时间?遇到过什么问题?针对这些问题你是如何解 答:编写了 xxx 多条(因为我的项目时间比较长,有的面试官会说这么多,我说系统的功能较多, 而且用例的颗粒度涉及的比较细较细),用例和时间根据自己实际写吧,切记 web 自动化需要等待时间,时间不要说的太短?遇到问题,一般是 1.元素难以定位,比如一些动态的元素,改用 CSS 定位;2.脚本不是很稳定,有些用例经常失败,但实际并不是 BUG,增加等待、改用相对定位、加入失败重运行、减少用例的依赖保证独立性、创建环境和清理环境走接 口.....
- 你做自动化的时候有没有遇到什么比较难解决的问题?(问题和上面的差不多)
①元素难以定位,比如一些动态的元素,改用 CSS 定位;②脚本不是很稳定,有些用例经常失败,但实际并不是 BUG,增加等待、改用相对定位、加入失败重运行、减少用例的依赖保证独立性、创建环境和清理环境走接口.....
- 如果你做接口测试,接口返回成功,但是实际数据库却没有相对应的数据?你觉得有可能是什么问题?如何定位?
① 如果此接口未对数据库数据进行操作,那个就可以忽略
② 如果此接口是修改数据数据,接口返回成功,而数据