web自动化测试系列-selenium的安装和运行(一)

目录

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. 测试效率低下,有时候回归测试的时间可能占总时间的1/5 ~ 1/3 。

  2. 回归测试时,最容易出现人为的漏测 ,导致可能出现bug流到线上 。

  3. 长时间的回归测试可能会导致测试人员觉得测试工作枯燥,对测试工作失去兴趣 。

怎么办 ? 最好的方案就是自动化解决 ,而如果你的系统是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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/488842.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【No.17】蓝桥杯图论上|最短路问题|Floyd算法|Dijkstra算法|蓝桥公园|蓝桥王国(C++)

图的基本概念 图: 由点(node,或者 vertex)和连接点的边(edge)组成。图是点和边构成的网。 树:特殊的图树,即连通无环图树的结点从根开始,层层扩展子树,是一种层次关系,这种层次关系&#xff0…

【C++】哈希应用之位图

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.位图的概念 2.位…

一道很有意思的题目(考初始化)

这题很有意思,需要你对初始化够了解才能解出来 ,现在我们来看一下吧。 这题通过分析得出考的是初始化。关于初始化有以下知识点 (取自继承与多态(继承部分)这文章中) 所以根据上方那段知识点可知&#xf…

【linux网络(一)】初识网络, 理解四层网络模型

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux网络 1. 前言2. 初识网络…

【Java程序设计】【C00361】基于Springboot的考勤管理系统(有论文)

基于Springboot的考勤管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 🍅文末点击卡片获取源码🍅 开发环境 运行环境:推荐jdk1.8; 开发工具:eclipse以及idea&…

RWTH-PHOENIX Weather数据集模型说明和下载

RWTH-PHOENIX Weather 2014 T数据集说明: 德国公共电视台PHOENIX在三年内(2009 年至 2011 年) 录制了配有手语翻译的每日新闻和天气预报节目,并使用注释符号转录了 386 个版本的天气预报。 此外,我们使用自动语音识别和手动清理来转录原始德语语音。因此,该语料库允许训练…

电脑控制面板在哪?5招教你快速打开!

“我在执行一个任务时要进入电脑的控制面板中查看,但是我不知道电脑的控制面板在哪,谁能帮帮我呀?” 电脑控制面板是一个系统文件夹,它提供了各种对计算机系统进行设置和管理的工具。控制面板允许用户查看并操作基本的系统设置&am…

SAP ABAP-BOPF基础训练-01简介与架构

1. 介绍-Introduction ① BOPF是什么?BOPF(the Business Object Processing Framework):业务对象处理框架 提供了一种增量和模块化的方法,以符合企业面向服务体系结构(eSOA)的方式实现业务对象; 部分平台基础层,软件组…

【笔记】深入理解JVM机制

🎥 个人主页:Dikz12📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 JVM 运⾏流程图 JVM 中内存区域划分 方法区 / 元数据区 堆 栈 程序计数器 本地方法栈 内存区域总结 JVM 中类加载过程 …

python网络爬虫实战教学——requests的使用(2)

文章目录 专栏导读1、POST请求2、响应3、Cookie设置 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》,本专栏针对大学生、初级数据分析工程…

【c++】类和对象(二)this指针

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本节内容来到类和对象第二篇,本篇文章会带领大家了解this指针 目录 1.this指针1.1this指针的引出1.2this指针的特性1.3思考题1.4C语言和C实现Stack的对…

Qt|多线程串口通信

前篇:Qt|串口通信之同步数据收一包发一包数据 文章目录 创建工程添加串口通信类添加线程类主函数运行结果需求:串口下方的一些耗时操作并不想阻塞主进程的推进; 环境:windows10+VS2017+Qt5.14.2; 写在最前: 串口不支持跨线程操作,需要写信号槽形式传递;选择COM口下发指…

Allegro之轻松绕等长

如大家所见,这个世界通信的速率越来越快,生活的节奏也在飞驰,如果工作还是慢条斯理,你将是下一个淘汰的人。 高速PCB设计避免不了的要绕等长,然而有时候一个单板需要绕等长的总线很多,一个一个的绕下去&…

独立游戏《星尘异变》UE5 C++程序开发日志3——UEC++特供的数据类型

本篇日志将介绍FString,FText、FName的用法和相互转换,以及容器TMap,TArray的增删查改 一、字符串相关数据类型:FString、FText、FName FString是最接近std::string的类型,字符串本身可以看做一个存储char型的动态数…

数据容器-dict以及总结-Python

师从黑马程序员 字典的定义 同样使用{},不过存储的元素是以个个的:键值对,如下语法: #定义字典 my_dict1{"王力宏":99,"周杰伦":88,"林俊杰":77} #定义空字典 my_dict2{} my_dict3dict() print(f"字典1…

HarborCDN技术分析

一、介绍 简要介绍 ​​Harbor​​ 是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker C…

直击GDC 2024 (二):网易智企首次揭秘篮球游戏AI智能体!

近几日,世界级游戏开发者盛会 GDC(Game Developers Conference)2024 正在美国举行。全球游戏行业的精英都汇聚于旧金山,共同探索前沿的游戏开发技术、洞察行业最新趋势,并互相交流对未来发展的深刻见解。 (…

校园跑腿小程序源码系统多校园版 跑腿达人入驻接单 带完整的安装代码包以及系统部署教程

在数字化时代的浪潮中,校园生活的便捷性和高效性成为了广大师生的共同追求。为了满足这一需求,罗峰给大家分享一款适用于多校园的跑腿小程序源码系统——校园跑腿小程序源码系统多校园版。该系统不仅提供了完整的安装代码包,还附带了详尽的系…

你以为的富贵包其实是脂肪瘤 整形外科医生为你科普脂肪瘤

脖子后面长的包都是富贵包吗?西安国际医学中心医院整形外科门诊主任冯登超曾接诊过一位七旬老人,他的颈部后方有一个直径约13厘米的巨大肿块,核磁共振检查提示右侧劲后皮下软组织内巨大囊性肿块。“他们以为是富贵包,实际上是脂肪…

C语言:给结构体取别名的4种方法

0 前言 在进行嵌入式开发的过程中,我们经常会见到typedef这个关键字,这个关键字的作用是给现有的类型取别名,在实际使用过程中往往是将一个复杂的类型名取一个简单的名字,便于我们的使用。就像我们给很熟的人取外号一样&#xff…