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

Posted 程序员小濠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从0到1,你的第一个GUI自动化测试相关的知识,希望对你有一定的参考价值。

elenium的实现原理

  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,即行为驱动开发。

写在最后

  无论选择哪条路,最重要的是明确目标,结合自己的性格、兴趣、实际等多方思量,不要盲从,是对自己最大的尊重;有时候可能选择大于努力,随着年龄和经验见识的增长,一定要考虑的是精准努力、精益发展。 走在最后需要我们在日常开发中不断去发现和优化.路漫漫其修远兮...
        想进阶学习的朋友的可以加群:175317069 群里有免费的公开课,主要内容是讲解自动化测试、功能测试还有不定期发放的软件测试资资料。

以上是关于从0到1,你的第一个GUI自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

从接口自动化测试框架设计到开发--持续集成jenkins

软件测试52讲:22讲从0到1:API测试怎么做?常用API测试工具简介

创建你的第一个webdriver python代码

开发转测试,坚持16 年,转型并没错!

从命令行自动执行 iOS monotouch GUI 测试

测试从0到1 接口测试探讨