UI自动化(七)selenium简述

时间:2022-05-18 15:22:44

1、什么是ui自动化
模拟人用代码的方式去操作页面
2、为什么要做ui自动化
后期迭代的时候,老功能比较多,人工维护成本大这时候考虑引入ui自动化
3、什么时候做ui自动化
项目稳定,不在修改的某些老功能,为这些老功能提供ui自动化,来提高的效率

4、市面上主流的ui自动化方式
 ****** 基于selenium,基于webdriver Selenium3.x,uirecorder

5、from selenium import webdriver
生成浏览器服务
driver = webdriver.Chrome()
像服务发送http请求 post 将参数携带过去
这个get不是用get方式请求 是Selenium封装的一个get方法,名字叫get

6、 1、Selenium 架构 基于 server-client  

2、底层通过http发送请求的方式实现  

3、代码(客户端) 向服务端浏览器(server) 发送请求,浏览器处理返回结果,客户端根据服务端返回结果判断是否继续执行或抛异常

7. 我们要学什么?
Selenium怎么去调用服务端接口的

selenium

前世

Selenium RC

早期的Selenium使用的是JavaScript注入技术与浏览器打交道,需要Selenium RC启动一个Server,将操作Web元素的API调用转化为一段段Javascript,在Selenium内核启动浏览器之后注入这段Javascript。开发过Web应用的人都知道,Javascript可以获取并调用页面的任何元素,自如的进行操作。由此才实现了Selenium的目的:自动化Web操作。这种Javascript注入技术的缺点是速度不理想,而且稳定性大大依赖于Selenium内核对API翻译成的Javascript质量高低。

今生

WebDriver

当Selenium2.x 提出了WebDriver的概念之后,它提供了完全另外的一种方式与浏览器交互是。利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类)。由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等。(甚至包括了AndroidDriver和iOS WebDriver)

Selenium3.0发布后,最大更新点就是干掉了对selenium rc的支持,这标志着webdriver协议最终一统江湖,rc毕竟是继子,webdriver才是亲儿子,假儿子给真儿子让路,豪门继承权尘埃落定。

selenium3.0的意味着什么

webdriver 协议现在已经成为业内公认的浏览器UI测试的标准实现。简而言之,做浏览器ui测试,请认准selenium webdriver商标。各种官方支持意味着以后的浏览器UI测试的速度和稳定性会有较大的提升。selenium 2.0时代只有chrome driver是官方出品,其它实现均是第三方。从稳定性上说,2.0时代最稳定的测试浏览器是chrome和firefox,其它浏览器支持均或多或少有些问题。浏览器UI自动化测试已经成为了行业标配。这也是为什么几乎所有浏览器厂商都推出自己官方driver的原因。