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()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】vector介绍

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. vector的介绍3. Member functions3.1 (constructor)3.2 (destructor) 4. Capacity4.1 resize4.2 reserve4.3 shrink_to_fit 5. vector 增删查改5.1 push_back5.2 insert5.3 pop_back5.4 find5.5 erase 1. 前…

【C++】模板与泛型编程

文章目录 1. 泛型编程2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化 4. 非类型模板参数5. 模板的特化5.1 概念5.2 函数模板特化5.3 全特化5.4 偏特化5.5 类模板…

Docker 搭建Redis集群

目录 1. 3主3从架构说明 2. 3主3从Redis集群配置 2.1关闭防火墙启动docker后台服务 2.2 新建6个docker容器实例 2.3 进去任意一台redis容器,为6台机器构建集群关系 2.4 进去6381,查看集群状态 3. 主从容错切换迁移 3.1 数据读写存储 3.1.1 查看…

【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

java switch用法

满足那个条件,就从那个入口进入,没有break就继续(是这样设计的,需要自己加break;),一般都是要加break的。 switch (表达式) 表达式只能是【整型、char、String.】 import java.util.Scanner;public class…

微服务day07 -- ES集群

4.集群 单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点 单点故障问题:将分片数…

Review(一)

🌈个人主页:Rookie Maker 🔥 系列专栏:Rookie review 🏆🏆关注博主,随时获取更多关于IT的优质内容!🏆🏆 😀欢迎来到小田代码世界~ &#x1f601…

DRC检查及丝印的调整

DRC检查及丝印的调整 综述:本文主要讲述AD软件中DRC检查、丝印的调整以及logo的添加的相关步骤,附加logo添加的脚本链接和大量操作图片,使步骤详细直观。 1. 点击“工具”→“设计规则检查”→“运行DRC”。(一开始可以只开启电…

一个程序从编译到运行的全过程

一个程序从编译到运行的全过程 一个程序从编译到运行的全过程编译预处理编译 汇编链接载入虚拟内存用户空间 总结 一个程序从编译到运行的全过程 每次用编译器写完一个程序后,我们会进行调试和执行,将代码的结果输出在我们的电脑屏幕上,但是…

Python爬虫学习完整版

一、什么是爬虫 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析也成为如今主流的爬取策略。 1 爬虫可以做什么 你可以爬取网络上的的图片&#…

全民采矿石赚钱小程序源码,附带详细搭建教程

安装教程 1、环境用宝塔Nginxphp7.0或者以下版本 2、可以更换各种模板,懂代码和标签的可以改模板,不懂的可以直接上站 3、上站前记得添加关键词和内容库 4、伪静态在绑定完百度站长之后再添加 目录说明: data/keyword 放关键词 标签&#xff…

OpenLayers基础教程——WebGLPoints图层样式的设置方法

1、前言 前一篇博客介绍了如何在OpenLayers中使用WebGLPoints加载海量数据点的方法,这篇博客就来介绍一下WebGLPoints图层的样式设置问题。 2、样式运算符 在VectorLayer图层中,我们只需要创建一个ol.style.Style对象即可,WebGLPoints则不…

浅谈Webmail邮件还原

Webmail还原,其实也就是HTTP协议的还原,而HTTP协议的还原,核心部分是TCP会话的重组。在TCP会话进行重组之后,再对重组的报文进行HTTP解析,得到Webmail中相应的信息。 由于每个邮件服务商实现Webmail的方式都各不相同&a…

LabVIEW智能降噪系统

LabVIEW智能降噪系统 随着噪声污染问题的日益严重,寻找有效的降噪技术变得尤为关键。介绍了一种基于LabVIEW平台开发的智能降噪系统,该系统能够实时采集环境噪声,并通过先进的信号处理技术实现主动降噪,从而有效改善生活和工作环…

CV论文--2024.3.26

1、DiffusionMTL: Learning Multi-Task Denoising Diffusion Model from Partially Annotated Data 中文标题:DiffusionMTL:从部分注释的数据中学习多任务去噪扩散模型 简介:最近,人们对于从部分标注数据中学习多个密集场景理解任…

qt table 简易封装,样式美化,以及 合并表格和颜色的区分 已解决

在需求中&#xff0c; 难免会使用 table 进行渲染窗口&#xff0c;做一个简单的封装。美化表格最终效果&#xff01;&#xff01;&#xff01; 代码部分 // 显示 20行 20列CCendDetailsInfoTableWidget* table new CCendDetailsInfoTableWidget(20,10);for (int i 0; i < …

蓝桥杯2023年第十四届省赛真题-买瓜|DFS+剪枝

题目链接&#xff1a; 0买瓜 - 蓝桥云课 (lanqiao.cn) 蓝桥杯2023年第十四届省赛真题-买瓜 - C语言网 (dotcpp.com) &#xff08;蓝桥官网的数据要求会高一些&#xff09; 说明&#xff1a; 这道题可以分析出&#xff1a;对一个瓜有三种选择&#xff1a; 不拿&#xff0c…

Hbase解决ERROR: KeeperErrorCode = ConnectionLoss for /hbase/master报错

在使用hbase时出错&#xff0c;错误如下图&#xff1a; 错误原因&#xff1a; 返回去检查启动的Hadoop与zookeeper&#xff0c;发现zookeeper的状态不对&#xff0c;重新启动了一下zookeeper&#xff0c;确保所有机器的zookeeper都启动起来了就可以了。

微服务(基础篇-004-Feign)

目录 http客户端Feign Feign替代RestTemplate&#xff08;1&#xff09; Feign的介绍&#xff08;1.1&#xff09; 使用Feign的步骤&#xff08;1.2&#xff09; 自定义配置&#xff08;2&#xff09; 配置Feign日志的两种方式&#xff08;2.1&#xff09; Feign使用优化…

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

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