51Testing软件测试论坛

标题: 从0到1,你的第一个GUI自动化测试 [打印本页]

作者: lsekfe    时间: 2021-3-30 13:06
标题: 从0到1,你的第一个GUI自动化测试
Selenium的实现原理
  Selenium2.0的工作原理,又称SeleniumWebDriver,它利用的原理是:使用浏览器原生的WebDriver实现页面操作。下图为SeleniumWebDriver的执行流程。

  1、当使用Selenium2.0启动浏览器WebBroser时,后台会同时启动基于WebDriverWire协议的WebService作为Selenium的RemoteServer,并将其与浏览器绑定。
  绑定完成后,RemoteServer就开始监听Client端的操作请求。
  2、执行测试时,测试用例会作为Client端,将需要执行的页面操作请求以HttpRequest的方式发送给RemoteServer。该HTTPRequest的body,是以WebDriverWire
  协议规定的JSON格式来描述需要浏览器执行的具体操作。
  3、RemoteServer接收到请求后,会对请求进行解析,并将解析结果发给WebDriver,由WebDriver实际执行浏览器的操作。
  4、WebDriver可以看做是直接操作浏览器的原生组件(NativeComponent),所以搭建测试环境时,通常都需要先下载浏览器对应的WebDriver。
  测试脚本和数据的解耦
  数据驱动(Data-driven)测试
  ”测试脚本和数据解耦”的本质是实现了数据驱动的测试,让操作相同但是数据不同的测试可以通过同一套自动化测试脚本来实现,只是在每次测试执行时提供不同的测试输入数据。
  页面对象(PageObject)模型
  页面对象模型的核心理念是,以页面(WebPage或者NativeAppPage)为单位来封装页面上的控件以及控件的部分操作。而测试用例,更确切地说是操作函数,基于页面封装对象来完成
  具体的界面操作,最典型的模式是“XXXPage.YYYComponent.ZZZOperation”。
  业务流程抽象
  业务流程抽象是,基于操作函数的更接近于实际业务的更高层次的抽象方式。基于业务流程抽象实现的测试用例往往具有较好的灵活性,可以根据实际测试需求方便地组装出各种测试用例。
  业务流程的核心思想是,从业务的维度来指导测试业务流程的封装。由于业务流程封装通常很贴近实际业务,所以特别适用于组装面向终端用户的端到端(E2E)的系统功能测试用例,
  尤其适用于业务功能非常多,并且存在各种组合的E2E测试场景。
  为了加深印象,我再来总结一下业务流程的优点:
  1.业务流程(BusinessFlow)的封装更接近实际业务;
  2.基于业务流程的测试用例非常标准化,遵循“参数准备”、“实例化Flow”和“执行Flow”这三个大步骤,非常适用于测试代码的自动生成;
  3.由于更接近实际业务,所以可以很方便地和BDD结合。BDD就是BehaviorDrivenDevelopment,即行为驱动开发。





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2