从0到1,你的第一个GUI自动化测试

发表于:2021-3-30 09:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wuwei丶    来源:博客园

  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小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号