为什么用Selenium做自动化测试,你真的知道吗?

news2024/11/19 17:25:09

目录

手工测试的问题

为什么用自动化

选择合适的测试方式

什么时候引入自动化测试

以Jmeter为代表的测试工具

编程能力既重要又不重要

为什么是Selenium

没有最好的技术,只有合适的技术

web自动化测试效率不高


手工测试的问题

手工操作点点点借助的是人脑的反应和聪明,为什么不用手点了呢?手会酸,脑子会累,会占据太多的时间。想一想为什么会学习自动化测试。我们都希望通过工具来解放我们的双手,大脑,眼睛。

为什么用自动化

自动化是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。

平时我们会接触很多的自动化工具,比如按键精灵自动加血加蓝,搜索引擎,以前找一篇文章要把所有的资料摊开,一页一页翻,现在直接列出来了。可以再编辑器里实现以下搜索。

使用了自动化测试软件以后还是觉得不够,因为有的测试需求比较复杂,包含几十上百个步骤,用软件测不出来,就算能实现也比较麻烦,这时候我们面临的问题就是:用软件定制化不高,对于复杂场景实现不了。

代码的定制性就非常高了,想实现什么功能可以自己去实现。到后面实现完以后那些不会编程的测试人员怎么办?不能让他们闲着,就要编写测试平台,让不太会代码的同学也可以轻松使用。

自动化测试是通过使用机器系统来鉴定软件的正确性、完整性、安全性和质量。我们的目标是通过编写代码,能够代替我们日常用手去操作的测试工作,要求你尽可能的掌握编程语言和相关代码库的使用和实现原理。

这些都非常容易成为面试中的常考问题。这些高频问题我平时也比较喜欢收集,有一线大厂一些大佬的面试心得,也有一些刚入行时候的面试题,特意整理了一下,有需要的点击下方名片免费领取。 

    selenium自动化测试视频教程:2023最新的Selenium自动化测试实战,没有比这个更详细的了_哔哩哔哩_bilibiliicon-default.png?t=N3I4https://www.bilibili.com/video/BV1xv4y1D7ku/?spm_id_from=333.999.0.0

 

选择合适的测试方式

自动化测试的目的不是完全取代手工测试,而是解放手工,让人不再每天重复做枯燥的点点点工作,把这些枯燥的工作交给自动化程序执行,人则转而去做更有创造性的工作。

在一个项目当中的测试工作主要分为以下几类: 1、探索式的手工测试 2、依赖脚本的手工测试 3、生成脚本的测试工具 4、代码方式 大多数情况下,都是这四种方式的组合,但是我们如何分配这 4 种方式呢?有没有一种模式让我们合理的安排这四种方式?

什么时候引入自动化测试

自动化测试不是凭空来的,它需要建立在手工测试的基础上。通常来说,在引入自动化测试之前,测试团队已经实施过几轮手工测试。

这种手工测试可以用探索式的方式,更多的是依赖脚本的手工测试。我们会根据用例设计方法设计每一个用例的操作脚本,然后按照脚本执行每个用例。

当用例越来越多,而产品迭代周期不变的情况下,总有一天,现有团队无法在上线之前把所有的用例执行完,我们需要更有效率的用例执行方式。 同时,测试人员总是需要重复执行同样的用例,时间长了会产生疲惫感,我们也会想办法把一些枯燥的工作交给自动化程序去执行。

那么,什么时候引入自动化测试呢?其实就是当测试团队已经很难应付这么多用例的情况下,通过挑选一些适合交给自动化程序执行的用例出来,从而过渡到自动化测试阶段。

以Jmeter为代表的测试工具

jmeter 在测试界有很高的地位,他的表现稳定,扩展能力强,可以支持接口测试、网页测试,性能测试等多方位的测试,而且操作也不是很复杂。

因此,很多测试团队在用代码去搭建测试框架前,一般都会先尝试用 Jmeter 来做自动化测试。具体的操作方式在这里我不展开讲了,感兴趣的私聊吧。

如果是很小型的测试团队,没有太多技术储备去做代码维护,用测试框架或者现有平台是比较合适的方式。

但是这种方式对于测试从业人员不太友好,比如换了一家公司,这家公司不在用之前的工具了,那在找工作的时候会遇到比较大的麻烦。在技术领域,每天都有新的工具冒出来,挑战现有工具的市场地位,每家公司倾向的技术选型都不一样,要找到一种通用的方式来应对面试和招聘,是测试人员面临的难题。

我个人的想法是,熟练掌握一两种市场占有率非常高的测试工具,以后遇到了新工具,可以简单学一下,除非是现有公司需要,否则不用花太多心思在市场占有率很低的新奇工具上,他们可能会提供很多看起来很厉害的功能,可以学习他们的思路,但是很有可能在公司里用不到。

编程能力既重要又不重要

编程,可以说是解决自动化测试的万金油方式。编程提供的灵活性,是所有现有工具都无法比拟的,只要技术允许,你几乎可以通过编程实现任何的测试工具,覆盖任何的测试场景。

那为什么又说编程又不重要呢?因为无论通过什么方式,自动化的目的都是为了解放人力,如果一个测试团队花了很多精力编程,覆盖多种测试场景,投入大量的人力物力和金钱,但是效果和之前没什么两样,那反而是对人才的束缚,而不是解放人力。

在编程领域,你可以使用已有的框架,站在巨人的肩膀上,实现自动化测试,比如可以用 selenium 实现网页自动化测试。 如果有一天 Selenium 不再流行,你可以把它的实现思路快速的转移到其他的框架中,只要有编程能力,一般都不要慌。

视频教程

2023最新的Selenium自动化测试实战,没有比这个更详细的了_哔哩哔哩_bilibiliicon-default.png?t=N3I4https://www.bilibili.com/video/BV1xv4y1D7ku/?spm_id_from=333.999.0.0        

 

为什么是Selenium

目前,在web自动化测试中,用得较多的主要有以下框架:

  • Selenium
  • Cypress
  • Playwright
  • Puppeter 这些框架或者工具我都接触过,机会合适,我都会去编写具体的操作笔记。 虽然有很多的挑战者,但是Selenium还是用得最多的,他的技术架构也在不停的演化。有的人说selenium过时了,他们说的都是对的,它确实有点老,不过如果让我选型,我还是会优先选择 selenium。

在学它之前,只需要问几个问题:

  • Selenium 能解决 web 自动化测试问题吗?
  • Selenium 容易学吗?
  • Selenium 资料丰富吗?
  • Selenium 方便迁移和扩展吗?
  • Selenium 方便团队协作吗?

我都能得到肯定的答案。当然它也有些缺点,但这些缺点现在都无伤大雅,Selenium 目前的缺点:

  • 截图、录制、回溯不方便
  • 没有流量拦截
  • 没有 mock
  • 在反爬中会被识别,当然其他工具也是。

无论如何,Selenium 只是一个自动化辅助工具,需要对他有清晰的认识: selenium只是一个浏览器自动化工具需要结合测试工具使用。 selenium 无法提高你的测试水平 帮助你快速定位bug

没有最好的技术,只有合适的技术

我大概列举了一下平时技术选型时需要考虑的问题,一个技术,是不是新,是不是好看当然可以做为参考指标,不过也可以看点更实际的: 是否能解决你的问题

  • 跑 Demo
  • 环境搭建
  • 学习成本低
  • 友好的文档
  • 丰富的教程
  • 完善的解决方案
  • 大量的案例
  • 完善的生态
  • 社区活跃
  • 更新活跃
  • API成熟
  • 企业很愿意用,大量招聘岗位
  • 方便迁移和扩展
  • 支持多平台
  • 支持多语言
  • 是否开源
  • 方便团队协作
  • 手工测试团队
  • 开发团队
  • 你能接受他的缺点吗
  • 没有十全十美的技术
  • 没有最好的测试工具,没有最好的测试语言
  • 只有适合的场景

web自动化测试效率不高

对整个web端进行自动化测试主要的目的是更贴近用户使用场景,因为界面是用户直接和软件接触的载体。用户几乎所有的操作都是通过 ui 实现的,因此 ui 测试最能模拟实际的用户使用情况,进行 ui 测试需要站在用户的立场,考虑用户的痛点,模拟用户的行为进行操作。 用户使用产品的功能,是想获得某种能力,因此应该通过功用设计测试用例,而不是单纯的从产品特性和说明来考虑。

web端做测试有两个问题,第一是前端界面变化快,第二是执行的效率低。通过现有的技术手段只能做到优化,却不能避免这两个问题, 在做自动化测试的时候要尤其注意。

selenium自动化测试视频教程

2023最新的Selenium自动化测试实战,没有比这个更详细的了_哔哩哔哩_bilibiliicon-default.png?t=N3I4https://www.bilibili.com/video/BV1xv4y1D7ku/?spm_id_from=333.999.0.0

 

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

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

相关文章

知识变现海哥|这3种课程定价最容易爆单

这3种课程定价最容易爆单 一门课怎么才能卖到100万,定价很关键。我卖了160万的课,总结了3种课程定价,组合起来最容易爆单!引流课定价0、1、9.9、19.9一般讲3天结束,用低价吸引大量潜在学员 信任课定价99、699、999等…

C++—非递归【循环】遍历二叉树(前序,中序,后序)思路讲解+代码实现

非递归遍历二叉树 前序中序后序 接下来我们在研究如何使用循环实现遍历二叉树时,以下面的二叉树为例: 在下文的讲解中,不对如何构建这颗二叉树做讲解,直接给出代码,如果有不懂的地方欢迎私信我。 文章中的完整源代码链…

一篇文章搞定《Android内存泄漏》

------《Android内存泄漏》 什么是内存泄漏常见的内存泄漏以及规避方式单例模式引用Activity非静态内部类注册的反注册定时器TimerWebView的内存泄漏资源未关闭属性动画 怎么定位内存泄漏LeakCanary接入:使用:检测: Android Proflier开始检测…

Linux驱动编程(分层分离编程思想)

1、面向对象 ⚫ 字符设备驱动程序抽象出一个 file_operations 结构体; ⚫ 我们写的程序针对硬件部分抽象出 led_operations 结构体。 2、分层 上层实现硬件无关的操作,比如注册字符设备驱动:leddrv.c 下层实现硬件相关的操作,比如…

【R语言】鉴于计算10亿以内训练模型记录for循环的加速

文章目录 1 前言2 几个循环2.1 100以内的和2.2 100以内奇数和/偶数和 3 多重循环3.1 向量化3.2 合并循环3.3 apply函数3.4 矩阵运算3.5 foreach分解任务 4 讨论 1 前言 笔者主力机是MBAM1芯片(8256),某个下午巩固循环突然思考到个问题&#…

App违反Google数据安全政策,解决方案

前言 google隐私政策阶段性会进行更新,时长关注隐私政策变化,避免app被强制下架,影响后续运营工作。 邮件内容 摘录邮件详情 我们在以下区域发现了问题: SPLIT_BUNDLE 2:政策声明,数据安全部分:“https:…

中国社科院与美国杜兰大学金融管理硕士项目,引领你走在金融行业前沿

作为金融领域从业人员时刻都在关注行业最新资讯,只有掌握一手的前沿讯息,才能在职场上无往不胜。针对在职的你,如何利用业余时间让自己更增值呢,中国社科院与美国杜兰大学金融管理硕士项目引领你走在金融行业前沿。 金融管理硕士…

ecology9-嵌入第三方系统,特定情况下在嵌套页提示“登录超时,请重新登录”

ecology9-嵌入第三方系统,特定情况下在嵌套页提示“登录超时,请重新登录” 问题描述尝试1尝试2尝试3√尝试4参考 问题描述 A系统对接了ecology9的单点登录。A系统在某个边栏菜单嵌入ecology9的流程页面。当清空浏览器缓存时,A系统在单点登录…

从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题

目录 1. 日期类详细实现 1.1 构造函数和打印函数 1.2 六个比较运算符重载 1.3 日期天数 和 日期天数 1.4 日期 - 天数 和 日期 - 天数 1.5 日期 和 日期 1.6 日期-- 和 --日期 1.7 日期 - 日期 operator- 1.8 打印*this是星期几 2. 日期类完整代码 Date.h: Date.…

计算机智能系统有哪些SCI期刊? - 易智编译EaseEditing

计算机智能系统是计算机科学中的一个重要分支,其主要研究计算机智能和人工智能等方面的问题。以下是一些SCI期刊的推荐: IEEE Transactions on Neural Networks and Learning Systems: 该期刊是IEEE计算智能学会的官方期刊,涵盖了…

JavaWeb——数据链路层详解

目录 一、以太网 1、定义 2、以太网格式帧 二、MTU 1、定义 2、MTU对IP协议的影响 3、MTU对UDP协议的影响 4、MTU对TCP协议的影响 三、ARP协议 1、定义 2、ARP协议的作用 3、ARP协议的工作流程 一、以太网 1、定义 "以太网" 不是一种具体的网络&#xff…

谷歌浏览器 | Chrome DevTools系统学习篇-概述

Chrome DevTools是一套直接内置到谷歌Chrome浏览器的web开发工具。DevTools可以帮助您即时编辑页面并快速诊断问题,最终帮助您更快地构建更好的网站。我们今天的概述主要讲述谷歌浏览器的日常使用和几大常见控制面板的介绍。 目录 1.打开谷歌浏览器 2.谷歌浏览器的…

MySQL 页、页结构、页目录、索引

MySQL中,数据存到了什么地方? 存储到了硬盘的文件上,被称为:数据文件 或 表空间 每个数据库都是由 一组数据文件 组成,这些文件包含了:所有表、索引、其他相关对象的数据 MySQL 以什么样的方式访问&#…

安卓联发科MT6737手机开发核心板 开发模块

MT6737核心板是一款基于联发科MT6737T平台高性能、可运行安卓操作系统的4G智能模块。它支持多种制式,包括LTE-FDD/LTE-TDD/WCDMA/TD-SCDMA/EVDO/CDMA/GSM等。此外,它还支持WiFi 802.11a/b/g/n和BT4.0LE近距离无线通信,并支持GPS/GLONASS/北斗…

机器学习笔记之计算学习理论(二)PAC学习

机器学习笔记之计算学习理论——PAC学习 引言回顾:霍夫丁不等式霍夫丁不等式的问题及其优化 PAC \text{PAC} PAC引出新问题——霍夫丁不等式无法通过直接比较获取最优假设函数问题的解决方法新方法对于霍夫丁不等式的约束证明 总结 引言 上一节从霍夫丁不等式为切入…

STC32G12K128单片机的 moubus-rtu 从机测试工程

简介 STC32G12K128 是STC 推出的一款32位的 C251 的单片机。最近拿到一块官方申请的 屠龙刀-STC32G开发板,就用它的提供的库函数,查考安富莱提供的 modbus 例程移植了一个 modbus-rtu 从站的工程。 modbus-rtu slave 移植注意点 modbus-rtu 功能配置 …

每日学术速递5.3

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Learning Locally Editable Virtual Humans 标题:学习本地可编辑虚拟人 作者:Hsuan-I Ho, Lixin Xue, Jie Song, Otmar Hilliges 文章链接:htt…

【分享】7-Zip解压缩软件的超详细使用攻略

常用的解压缩软件,除了WinRAR之外,7-Zip也是不错的选择。 7-Zip不仅是一款完全免费的开源解压软件,它的解压缩功能也很强大,可以支持视频、文档、文件夹、图片等文件进行压缩操作。 今天小编就来分享一下,7-Zip解压缩…

python一键登录srun校园网(以深圳技术大学为例)

全世界最(不)好的目录 一、需求分析二、实现过程2.1 分析api2.1.1 连接到校园网,自动弹出登录认证界面2.1.2 先输入错误的账号密码,按F12看会获取哪些信息2.1.3 api 2.2 分析加密2.3 流程总结 三.模拟登录3.1 编写配置文件3.2.功能…

【微软Bing王炸更新】无需等待,人人可用,答案图文并茂,太牛了

🚀 AI破局先行者 🚀 🌲 AI工具、AI绘图、AI专栏 🍀 🌲 如果你想学到最前沿、最火爆的技术,赶快加入吧✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆&am…