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