1. WebDriver原理
webDriver是按照client/server模式设计,client就是我们的测试代码,发送请求,server就是打开的浏览器来打开client发出的请求并做出响应。
具体的工作流程:
·webdriver打开浏览器并绑定到指定端口。启动的浏览器作为remote server.
·client通过commandExecuter发送httpRequest给remote server的的侦听端口(the webdriver wire control通信协议)
·Remote server根据原生的浏览器组件来转化为浏览器的native调用。
备注:启动浏览器的时候,使用的是http: hyper test transfer protocol
这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、
爬虫、数据分析、数据可视化、机器学习等。
小编这里推荐加小编的python学习群:895,817, 687
2. Selenium 特点和组成
Selenium是一个针对web应用的开源测试框架,它的测试用例可以用html table或者html 代码或者编程语言进行开发,而且他能在几乎所有的现在的浏览器上执行。Selenium可以被部署到windows.linux.mac平台上,支持的语言有java/python/ruby/.net/perl
特点:
- 支持录制回放
- 多种方式对页面元素进行定位并操作
- 能够及进行debug和设置断点
- 能够把测试脚本保存成html/ruby或者其他语言
- 支持user-extensions.js形式的用户扩展
- 能够进行页面的断言
-
Selenium IDE: 是firefox的插件,可以录制/回放/测试脚本
-
Selenium RC:支持程序语言(java/C#/python/ruby)编写测试用例; selenium和其他测试框架集成,比如java环境下将selenium和Junit集成,利用selenium来书写测试用例,用Junit来实现测试用例的自动化运行。
-
Selenium Core:是selenium的核心,是有js和html文件组成,它是selenium IDE和selenium RC的核心引擎。
-
Selenium Grid:是selenium的扩展,可以将一批selenium脚本分配到不同的测试机上同步运行。即selenium grid可以在不同的主机上建立主节点(hub)和分支节点(node), 可以使主节点上的测试用例在不同的分支节点上运行。对于不同的节点来说,可以搭建不同的测试环境(操作系统/浏览器)。
3. 如何提高自动化脚本稳定性
找原因
1)网速原因,增加时间等待
2)函数原因,尽量少使用容易冲突的函数
3)配置testNG实现多线程,在编写测试用例