内容简介: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注入机制原理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python for Data Analysis
Wes McKinney / O'Reilly Media / 2012-11-1 / USD 39.99
Finding great data analysts is difficult. Despite the explosive growth of data in industries ranging from manufacturing and retail to high technology, finance, and healthcare, learning and accessing d......一起来看看 《Python for Data Analysis》 这本书的介绍吧!