Web自动化测试框架Selenium

什么是自动化测试

自动化测试就是,假定一些预设值,由机器自动化完成的测试。

web自动化测试,将自动化测试技术艺能用到web测试中,是假定一些预设值,由程序驱动浏览器来完成web程序的测试,如下图:

Selenium

web自动化测试的技术手段和框架很多,这里我们主要介绍Selenium

Selenium官网 4

Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像用户在操作一样。

我们通常所说的Selenium是对Seleninum的总称,其中包括三个项目,分别是:

  1. 1. Selenium WebDriver

  2. 2. Selenium IDE

  3. 3. seleninum Grid

后续相关的文章我们只关注Seleninum WebDriver

Selenium WebDriver

selenium webdriver 其实就是不同语言基于实现了W3C WebDriver协议从而达到能控制浏览器的代码库,它提供了简单的API接口使测试人员可以很方便的控制浏览器的各种行为。

运行自动化的几种方式

运行机理:webdriver通过driver(浏览器驱动)将执行命令发送给浏览器;同样的浏览器在执行玩命令之后通过相同的通道将信息返回给webdriver。

整体就是一个C/S架构,我们的webdriver是作为客户端存在。


这种方式是Seleninum Webdriver和浏览器驱动程序和浏览器在同一台主机


当然我们也可以将webdriver独立到另外一台服务器,然后通过Remote进行自动化。


远程连接我们还可以通过Seleninum Server或者Seleninum Grid来实现,从而进行分布式的测试。

环境安装

Python

Selenium

浏览器驱动: 相关地址 7

简单实例

  1. from selenium import webdriver

  2. import time

  3. driver = webdriver.Chrome(executable_path='./chromedriver')

  4. driver.maximize_window()

  5. driver.get('https://www.baidu.com')

  6. driver.find_element_by_id('kw').send_keys('python')

  7. driver.find_element_by_id('su').click()

  8. time.sleep(2)

  9. driver.quit()

代码分析:
其实实例化driver的核心代码是这段,我们可以通过IDE进入到源码中,看到首先建立Service,其实就是通过命令行将浏览器驱动运行起来
self.service = Service( executable_path, port=port, service_args=service_args, log_path=service_log_path) self.service.start()
服务启动后,创建一个连接,从而进行后续的操作
try: RemoteWebDriver.__init__( self, command_  executor=ChromeRemoteConnection( remote_server_addr=self.service.service_url, keep_alive=keep_alive), desired_  capabilities=desired_capabilities)   except Exception: self.quit()   raise

正如我们介绍Selenium的时候说过Selenium Webdriver其实是实现了The WebDriver Wire Protocol协议,而协议其实就是一些Http相关的请求,具体信息我们可以在这 1查看。

下面我们通过requests来实现相同的功能,首先我们需要启动Service,这里我们可以使用Selenium Server来代替,或者我们也可以直接运行chromedriver等浏览器驱动程序。这里我使用Selenium来完成。

首先下载selenium-server-standalone-{VERSION}.jar,下载地址 1

然后启动

java -jar selenium-server-standalone-{VERSION}.jar

启动后控制台会给我们打印相关的服务地址

这个时候我们去浏览器访问一下这个地址: http://127.0.0.1:4444/wd/hub

我这里会被自动跳转到

我们点击Create Session,创建成功后就会发现启动了一个浏览器

其实如果您打开了chrome的检查面板,发现其实就是发送了一个Post请求,相关的信息都是同协议相同,那我们就以postman来调用这些接口看看效果。

在发送这些请求的时候,浏览器是在做相应变化的

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值