内容简介:Selenium WebDriver 原理
WebDriver 是按照server – client 的经典 设计模式 设计的。
server 端就是remote server,可以是任意的浏览器。当我们的脚本启动浏览器后,该浏览器就是remote
server,它的职责就是等待client 发送请求并做出相应。
client 端简单说来就是我们的测试代码,我们测试代码中的一些行为,比如打开浏览器,转跳到特定
的url 等操作是以http 请求的方式发送给被测试浏览器,也就是remote server;remote server 接受请求,
并执行相应操作,并在response 中返回执行状态、返回值等信息。
webdriver 的工作流程:
1. WebDriver 启动目标浏览器,并绑定到指定端口。该启动的浏览器实例,做为WebDriver 的remote
server。
2. Client 端通过CommandExcuter 发送HTTPRequest 给remote server 的侦听端口(通信协议: the
webriver wire protocol)
3. Remote server 需要依赖原生的浏览器组件(如:IEDriverServer.exe、chromedriver.exe),来转化转
化浏览器的native 调用。
总结:
对于碰到的一些常见功能,如何通过技巧来定位它们,
但是在实际的自动化脚本开发中,不管是新手还是具有一定经验的老手,所遇到最多的问题仍然是元素的
定位。
有时元素定位非常简单,例如,我们只要知道这个元素有的id 和name 就可以轻松的来定位到它;有
时元素的定位却非常的令人头疼,尽管我们想尽了办法,仍然无法定位到它。在这里笔者也没万能的方法
来帮你解决这些实际问题。
对于不同的web 项目,所用到的前端技术也不同,有些项目会用到EXT(一个强在的js 类库),有
些会用到AJAX(一种创建交互式网页应用的网页开发技术),这些技术的应用无疑对于前端开发人员可
以快速的生成所需要的页面,但对于UI 自动化测试人员来说,增加了定位页面元素的难度。
所以,在进行项目实现UI 自动化评估的时候,页面元素的定位难度也是一个评估标准,如果处处都
是很难定位的元素,那么无疑会增加脚本的开发与维护的成本,得不偿失。这个时候我可以考虑将更新多
的精力放在单元或接口层的自动化上。
对于自动化测试人员来说,如果熟悉前端技术也会大大降低你定位元素的难度,熟练使用XPath 和
CSS 技术会使你的定位变得容易很多,如果精通javascript、jquery 等技术,那么使你的定位之路变得更加
随心所欲。
在我们尝试开展自动化的web 项目中,大多数在设计初期并没有考虑是否易于进行自动化,所以更多
的会以实现功能为目的,这个也是后期开展自动化困难重重的重要原因。如果开发人员在设计代码的时候
就考虑是否容易自动化,为必要的元素加上id 和name 属性的话,那么我们自动化工作会变得容易很多。
测试人员如何更顺利的实施自动化测试工作。一方面要努力学好技术,克服技术难题。另一方面,我
们要清楚的认识到,自动化技术的应用与实践不是一个人的战斗。一定要得到整个团队的配合与支持。
当然,站在公司的立场,不能带来收益的事情是很难得到支持的,这个就需要读者去综合评估目前的
产品真的是否适合引入自动化,或者目前的阶段是否真的迫切需要开展自动化。
假如,你已经动手开始进行自动化了,笔者再提几点建议。
1、熟练掌握xpath\CSS 定位的使用,这样在遇到各种难以定位的属性时才不会变得束手无策。
2、准备一份selenium-2.5.0-java-api,及时查阅WebDriver 所提供的方法。
3、学习掌握JavaScript 语言,掌握JavaScript 好处前面已经有过阐述,可以让我们的自动化测试工作
更加游刃有余。
4、自动化测试归根结底是与前端打交道,多多熟悉前端技术
以上所述就是小编给大家介绍的《Selenium WebDriver 原理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- java反射原理, 注解原理
- Webpack 原理(二):加载原理
- Docker原理之 - CGroup实现原理
- 【Vue原理】响应式原理 - 白话版
- Docker实现原理之 - OverlayFS实现原理
- UAV MOF工作原理之Agent注入机制原理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。