初识web自动化--webdriver

那么目前用的比较多的web自动化框架无非就是QTP和selenium了。
当然主要的区别就是一个收费,一个开源免费了,qtp对界面支持比较好,并且发展了这么多年,各方面都是应该非常完善的。webdriver则是一个规范,可以和多种框架结合,更加自由、灵活,要学习的话选择selenium是最为适合的,而且app端的一个自动化框架appium正是基于webdriver协议规范去写的,appium在最近还是很火的。

Selenium这套框架接触的时候已经进化到2.0了,也就是我们说的webdriver,所以我们简单回顾一下它的前辈吧。
Selenium是04年发明的,Selenium Core是一个基于表格语法建模的,称为Selenese,并且是绑定在远程控制浏览器的,所以把这个工具称为 Selenium Remote Control”或者“Selenium RC”。除外,还编写HTTP代理,为多语言支持打下了基础。
初识web自动化--webdriver_第1张图片
流程:
1.本地编写的testcase通过通过提供的api发送请求到selenium-rc server
2.服务端的launcher启动一个浏览器,然后把selenium-core注入到浏览器页面中,并设置http代理
3.执行的时候发送请求到selenium-core中并进行js注入
4.http代理的目的是为了绕过同源策略请求

总结:说了这么多,其实只要记住selenium1.0这个图就行了,并且1.0的selenium的原理是通过js注入的方式操作元素的,http代理也为多语言支持划下了基础。

之后就是webdriver了,也叫selenium2.0,在第一次看到就听人说webdriver是一套规范标准,使用的是webdriver wire协议进行传输的,和1.0其实大体还是比较像的,都是客户端发送指令到服务端,然后服务端执行翻译和动作执行,都是一个套路,不同的是selenium操作调用的是浏览器的api。

所以,我们配置webdriver环境的时候,只需要下载对应语言的api库+下载要测试的driver server就行了,意味着我们的用例管理和报告,可以依赖与市面上任何框架,比如testng、junit。这也正是webdriver的灵活之处,同时也表示将支持多种浏览器,所以也是支持兼容测试的。
在了解了一些基本原理后,剩下的问题和传统的自动化没啥区别了:
通过api查找控件–动作执行–断言–生成报告。
其中前两部是webdriver提供给我们的api支持,后两个是选定的第三方框架支持。

于是,剩下的直接学习webdriver提供的api就可以了,那么将会在下一篇学习一下查找和执行的常用api。

你可能感兴趣的:(转帖备忘)