admin 管理员组

文章数量: 887021


2024年2月27日发(作者:模版天空)

selenium 工作原理

1 使用Selenium实现自动化测试,主要包括:

1)测试脚本,一般指脚本程序,也称client端

2)浏览器驱动,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本,也称:服务端,如:(chrome)

3)浏览器,目前selenium支持大多数浏览器,如:火狐,谷歌,IE等

解析:

步骤1:对于每一个Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动(测试人员执行测试脚本后,就创建了一个session, 通过http 请求向webservice发送了restfull的请求)

步骤2:浏览器驱动中包含一个HTTP Server,用来接收发送的http请求,HTTP Server接收到请求后根据请求来具体操控对应的浏览器(webservice翻译restfull的请求为浏览器能懂的脚本,然后接受脚本执行结果)

步骤3:浏览器将步骤执行结果返回给HTTP Server,HTTP Server又将结果返回给Selenium的脚本。若是错误,可在控制台看到对应的报错信息(webservice将结果进行封装--json 给到客户端client/测试脚本 ,然后client就知道操作是否成功,同时测试也可以进行校验了)

2 相关协议

1)HTTP协议是一个浏览器和Web服务器之间的通信的标准协议,几乎每一种编程语言都提供了丰富的http libraries,可方便的处理客户端Client和服务端Server之间的请求request及响应response。WebDriver的结构中是典型的C/S结构,WebDriver API相当于是客户端,浏览器驱动才是真正的服务端。

2)WebDriver协议:JSON Wire protocol,是在HTTP协议基础上,对HTTP请求及响应的body部分的数据进一步规范。常见HTTP请求及响应包括:http请求方法,http请求及响应内容body,http响应状态码等。

3)常见的http请求方法:GET(用来服务器获取信息,如:网页的标题信息)、POST(用来服务器发送操作请求,如:findElement,Click等)

4)HTTP 响应代码:在WebDriver中进行了明确的反馈信息,细化了HTTP响应的状态码,如:7:NoSuchElement,11:ElementNotVisible等

5)Body部分主要传送具体的数据,WebDriver中数据都是以JSON形式存在并进行传送(Selenium是将各个浏览器的API封装成,即The WebDriver Wire Protocol),称作:JSON

Wire protocol的Webdriver API

6)打开chromedriver,可以看到开启一个Server,并开启端口:9515


本文标签: 浏览器 请求 脚本 响应