自动化测试:对象库VS描述性编程
自动化脚本编写都涉及到对控件的操作,那么是把这些要操作的控件放在一起进行管理,还是把控件放到脚本中在操作时进行描述呢,这一直都是很有争论的问题。两种操作方式都有其优劣,不能绝对的说其中某一种一定比另一种好,根据不同的应用场景,选择不同的操作方式,才能扬长避短。
对象库,就是把控件放在一处地方集中进行描述、管理,使用时只需要使用该控件的别名即可。如:
LoginPage.StandButton.click
它的优点:
一、这样的脚本看起来很简洁
二、控件的描述只需要在对象库做一次,不需要反复的在脚本中做
三、如果控件发生了变化,那么你需要做的仅仅是维护对象库,不需要去维护所有的脚本
四、控件对象可以共享,你做过的工作,不需要别人再来做一次
五、对象库可以提前构建,不依赖对象的具体实现,这样我们的测试脚本也就可以提前编写,推动整个自动化工作前移
六、其它…………
它的缺点:
一、脚本是很简洁了,但其可读性变差了,至少增加了读脚本的成本
二、既然放在一地方进行维护,就涉及到命名规范的建立,否则就会乱
三、维护的时候,加大了评估所带来的影响的难度,因为你可能不知道这个对象在哪里被引用了
描述性编程,就是在编写测试脚本时描述需要操作的控件。如:
p.button(“#name_submit”).click
它的优点:
一、脚本编写很灵活
二、脚本可读性相对对象库来说,会好很多
三、整个自动化测试框架会相对简单,带来的是自动化测试相对稳定
四、一定程度上降低了脚本之间的耦合性,控件的维护不会影响到其它脚本
五、其它…………
它的缺点:
一、最大的缺点是显而易见的,脚本的维护难度加大了,如果控件发生了变化,维护的工作量很大
二、控件的描述要反复的做,不能共享
三、测试脚本相对来说变的复杂了,没有对象库的脚本简洁
四、正是因为脚本的编写依赖着控件的描述,所以脚本的编写也很难提前
上面罗列了部分两种操作模式各自的优缺点,如何做出正确的选择,就需要根据应用场景有所取舍。
对于大型的、持续优化的被测系统,对象库使用的选择要优与描述性编程,这种场景下的自动化测试不是各自独立的,不是临时性的。对象库的前期投入,表面上可能是会加大自动化的成本,但它的共享和维护都降低了后续自动化的成本,而且为自动化测试脚本的关键字驱动打下了基础,并且可以推动控件定义中的一些标准和规范的实施,这是可以提高被测试系统的可测试性以及稳定性。
相关推荐
4.启动命令windows:chrome --remote-debugging-port=9222启动命令mac:Google\ Chrome --remote-debugging-port=9222