前言:
要明白Robotframework的原理,就要首先明白以下几点:
<u>selenium原理</u>和<u>pageObject模型 以及关键字驱动方式</u>
维基百科-简介:
Robot Framework是一款python编写的功能自动化测试软件框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于重复性的回归测试以及验收测试驱动开发(ATDD),同时还可以支持行为驱动开发(BDD)。
java/Python等脚本语言并没有直接与Browser Drivers进行通信,而是通过了JSON WireProtocol,这就是webdriver协议;
代码中直接 new ChromeDriver() 将会启动一个 ChromeDriver进程,ChromeDriver是一个独立的服务,它是 google为网站开发人员提供的自动化测试接口,它是 selenium 和chrome浏览器进行通信的桥梁。chromeDriver解析webdriver协议,然后根据解析结果,调用与之对应的Remote Debugging协议来操控chrome浏览器,它可以和浏览器内核进行交互进而操控浏览器
二、pageObject模型:
Page Object设计模式
在测试自动化领域,针对界面做自动化测试最大挑战就是界面修改时,测试脚本也必须要做对应的修改,因此如何降低脚本的工作量,尽量减少修改的范围或者更有效率的管理界面的修改。Page Object Model的应用就是将网页界面元素与自动化测试逻辑分离。
1、为什么用Page Object Model
传统的自动化方法最常见的问题是随着测试套件的增长,测试的脚本维护变得越来越困难。其中维护成本最高的就是定位器的维护,导致定位器维护痛苦的原因有两个:一个是界面变化频繁,另外一个是测试脚本设计问题导致开发测试用例脚本代码中产生大量重复代码。一旦业务逻辑或者界面发生改变,测试人员就需要查看所有的源代码重新改写定位器;这些都使测试代码效率极其低下。
Page Object是解决上述问题的设计模式,利用Page Object设计模式只要用很少的代码就可以维护测试用例。
2、什么是Page Object Model
Page Object Model页面对象模型 是Selenium中广泛使用的设计模式,用于提高测试脚本维护工作量和减少测试代码重复。其实设计模式就是代码的架构,页面对象模型(POM)可用于任何类型的框架,如模块化,数据驱动,关键字驱动,混合框架等。一个页面就是一个面向对象的类,作为应用程序测试的页面(AUT)的接口。
3、Page Object Model的优点
开发频繁改动的时候,设计模式的优势就出来了,比如开发改了元素的ID,那么只要修改相应ID就行,所有和这个元素直接关联的定位器就都修改了,而原来的方式需要修改代码,涉及到的地方可能会有很多,改动起来很麻烦。
代码可重用性:通过编写代码一次来实现代码的可重用性,并将其用于不同的测试。
代码可维护性 :测试类代码和页面类代码(如定位器)分离,这使维护代码变得非常容易。UI发生更改时,仅在页面类代码中更改。这么做减少了大量重复测试代码
对象库 : 每个页面将被定义为一个类。页面中所有元素被作为类成员在类中定义。
可读性 :由于测试代码和UI操作分离,提高了代码可读性
三、关键字驱动
关键字驱动框架(Keyword Driven Framework)
关键字驱动顾名思义,它提供了一系列通用的关键字,用户通过调用这些关键字并输入一些参数可以实现单个操作,比如,打开浏览器、打开某个网页、点击某个链接等等,然后通过组织这些关键字形成一个完整的测试流程。