ui自动化
一、ui自动化讲解方式(递减)
1、自动化线性脚本:python+selenium
2、自动化框架:python+selenium+unittest (pytest)
3、po框架(pom模型)
==============================================
二、面试题
1、你做过自动化吗? 做过,ui自动化、接口自动化、app自动化
2、你讲下你是做ui自动化?
==============================================
三、自动化讲解的规则
1、熟悉的场景详细讲,不熟悉不讲或一句带过
2、尽可能结合项目来讲解自动化
==============================================
方式一:
讲解:我就拿最近做的项目xxx中的,我给你讲下我们登陆---提交贷款资料的流程;开始导入selenium
案例:
1、以设计一个场景来讲解UI自动化
2、概括性的讲解ui自动化(讲解定位元素,控件)
==============================================
方式二:
1、讲解框架的结构
2、讲解具体的框架案例
==============================================
方式三:
讲解po框架中的6个包
==============================================
四、自动化中遇到哪些问题?你是如何解决的?
==============================================
五、自动化面试题
1、 自动化中有遇到一些无法定位问题吗?你是如何解决的(准备两个问题)
比如:隐藏元素、变化的id、动态元素、(不要讲fame框)因为大家都讲
答:有,比如一些动态元素,或者alert弹框。 动态元素尽量使用固定元素进行定位,或者采用xpath的定位方法进行定位。 Alert弹框则是需要先用switch_to_alert的方法进入到alert弹框,才能对元素进行定位
2、你们公司用什么框架?自动化的框架是你搭建的?你结合你的项目讲下自动化框架?
Unittest框架,也就是po模式。是我自己搭建的
3、你们有多少自动化测试用例?
这个没有具体的数量,主要还是看接口的参数,就比如我负责的模块,大概有100多条
4、你们自动化用例主要来做什么?
主要用来测试前端页面的返回数据是否准确
5、你们项目中自动化的覆盖率是多少?
Ui自动化主要是正向及反向的业务流程,一般覆盖率在百分之30-百分之40
6、什么样的项目适合做自动化?
需求比较稳定,不会频繁的变更,ui界面稳定性较强,不会频繁改动,软件的维护周期长
7、自动化用例你们是如何维护?
数据参数化,以及定期的维护与检查,对经常失败的代码进行修改,定期对代码进行执行操作
8、自动化中如何断言?
一般是采用title文本的形式用if语句进行断言,或者用assert
9、自动化中含有验证码的功能进行自动化测试?
第一种、开发把验证码功能去掉、第二种,开发把验证码固定,第三种采用第三方抓取验证码的程序
10、如何优化和提高selenium 脚本的执行速度?
少用sleep,多用隐式等待,尽量使用css定位方法,在一些判断语句if elif 把尽可能发生的条件写在前面,减少程序判断的次数,提高效率
11、如何提高脚本的稳定性?
1.对测试脚本异常处理进行增强,比如在某 UI 元素不可操作时,可以通过增加等待条件,重新加载等操作进行增强。
2.降低 UI 自动化复杂度,UI 自动化测试更多的是在验收测试或回归测试中,完全可以降低测试功能覆盖率,仅对主功能进行回归验证。
12、元素定位有哪些?
Id、name、class、css、link_text、xpath、
13、自动化用例有哪些缺点?
后期维护成本较高
成本大、试用功能有限、有些功能操作相对复杂、维护成本高、不稳定
14、自动化中如何切换句柄?
先通过driver.window_handles 方法获取全部页面句柄,再通过switch_to的方法用索引去切换页面句柄
15、强制等待、隐性等待、显性等待的区别?
强制等待是不管页面有没有加载出来都要需要等待;隐式等待是作用于全局的,页面如果加载出来了则进行下一步,如果超过等待时间页面还没有加载出来则报错;显性等待是作用于指定元素的等待指令,页面如果加载出来了则进行下一步,如果超过等待时间页面还没有加载出来则报错