目录
web自动化系列之如何安装selenium
1.web自动化中的三大亮点技术
2.web自动化能解决什么问题 ?
3.为什么是selenium ?
4.selenium特点
5.selenium安装
6.下载浏览器及驱动
7.测试代码
web自动化系列之如何安装selenium
web自动化 ,一个老生常谈的话题 ,很多人的自动化之路就是从它开始 。它学起来简单 ,但做起来又比较难以驾驭 ;它的执行效率慢 、但又是最接近于用户的操作场景 ;
接下来本人计划写一个关于web自动化系列 ,打算从零基础开始写 ,直到写完整个进阶部分,进阶部分也正是我当年做测试开发的框架原型,靠着它我当年月入35K 。
1.web自动化中的三大亮点技术
我们先聊聊 ,在web自动化中都有哪些亮点技术 ?这里就不得不谈的以下三种技术,分别为 :
-
PO模式 :页面对象模型 ,将页面对象和操作逻辑分离 ,解决的是代码扩展性的问题 。
-
数据驱动 : 通过添加不同数据 ,让测试用例循环运行 ,达到同一测试用例验证不同数据的目的 ,解决数据覆盖问题 。
-
关键字驱动 :通过编写关键字 ,驱动测试用例运行 ,解决用例编写效率问题 。
当然 ,在框架中再结合上用例的配置方式 ,就能最大化的解决编写效率问题、减少人工编写用例时间 ,比如:
2.web自动化能解决什么问题 ?
在做功能测试时,经常会出现如下的情况:
-
每次测试都要进行大量的回归测试 ,回归耗时耗力 。
-
做兼容性测试时,也需要对已测试的功能进行各种浏览器的兼容测试 。
以上的测试都有一个共同特点 ,就是重复性的测试 ,且占用时间长 。
那么 ,长时间的这种重复性的测试会导致如下问题 :
-
测试效率低下,有时候回归测试的时间可能占总时间的1/5 ~ 1/3 。
-
回归测试时,最容易出现人为的漏测 ,导致可能出现bug流到线上 。
-
长时间的回归测试可能会导致测试人员觉得测试工作枯燥,对测试工作失去兴趣 。
怎么办 ? 最好的方案就是自动化解决 ,而如果你的系统是B/S架构 ,那无疑就是使用web自动化 。
3.为什么是selenium ?
其实做web自动化的框架或工具有很多 ,比如Robot Framework 、Cypress 、TestComplete等 。那我们为啥要选择selenium呢 ?
第一 : 主流 , 它目前是web自动化中最流行的工具 ,流量大意味着需求广 ,当然在应聘或工作中也就会用到的多 。
第二 :需求适应性好 ,不同项目的自动化需求是不同 ,有的只是做一些流程用例 、有的还想跑兼容 ,有的想在window上跑 ,同样有的想在Linux下跑 。而selenium这些个性化需求都能满足要求 。
4.selenium特点
-
开源 : 完全可以自由下载 ,并且可以根据需求增加某些功能 。
-
跨平台 : Linux ,Windows ,Mac
-
支持多浏览器 : Firefox ,Chrome ,IE ,Edge ,Opera ,Safari 。
-
支持多种语言 : python ,java ,c# ,JavaScript ,ruby,php 。
-
成熟稳定 : 目前已被互联网的各种大小公司所使用 。
-
功能强大 : 基本能实现浏览器中的绝大多数操作 。
5.selenium安装
学习selenium ,肯定离不开语言 ,这里我选用的是python ,所以学习前请安装python 。
python的推荐版本 :3.6~3.9之间的版本
python下载地址 :Download Python | Python.org
-
selenium安装 :
pip install selenium
-
selenium验证 :
pip show selenium
6.下载浏览器及驱动
selenium支持多种浏览器 ,我比较喜欢用chrome浏览器 。但是使用selenium需要下载对应的驱动版本 。
下载地址 :新建标签页 (googlechromelabs.github.io)
-
chrome : 做web自动化所运行的浏览器 ,一般下载window 64位即可
-
chromedriver : 若要在chrome浏览器上运行,必须需要用到这个驱动,下载chrome浏览器对应的驱动版本即可 。
注意 :需要将chromedriver下载后解压,将chromedriver.exe放在python的安装路径下即可 。如下图 。
7.测试代码
目前能否在浏览器中运行 ,你需要编写一段代码进行验证 ,若下面的这段代码能正常运行不报错 ,则代表前面的配置没有问题 ,若报错 ,很可能是前面的配置不正确 ,请检查配置 。
# 1. 导包
from selenium import webdriver
import time
# 2. 创建浏览器驱动
driver = webdriver.Chrome()
driver.maximize_window()
# 3. 打开web页面,输入百度
driver.get("http://www.baidu.com")
time.sleep(3)
# 4. 在浏览器地址栏中输入关键字 :python
driver.find_element_by_id("kw").send_keys("python")
# 5. 点击按钮 :百度一下
driver.find_element_by_id("su").click()
# 6. 暂停
time.sleep(5)
# 7. 关闭浏览器
driver.quit()