当前位置: 首页 > news >正文

软件测试09 自动化测试技术(Selenium)

重点/难点
  • 重点:理解自动化测试的原理及其流程
  • 难点:Selinum自动化测试工具的使用

目录


系统测试

  • 什么是系统测试
  • 什么是功能测试
  • 什么是性能测试
  • 常见的性能指标有哪些

自动化测试概述

测试面临的问题

  • 测试用例数量增多,工作量增大,许多测试用例需重复执行
  • 手工测试占用人力资源,工作重复单调,影响测试人员积极性

自动化测试的概念

  • 通过测试工具和脚本,按预定计划自动进行软件测试
  • 验证软件是否满足用户需求

特点

  • 可重复性
  • 可操作系统
  • 高效率

通常情况下,引入自动化测试需要满足以下条件:
● 项目需求变动不频繁
● 项目周期足够长
● 自动化测试脚本可重复使用


自动化测试的适用范围

  • 非常重要的测试和广泛范围的测试,如组件、功能、性能、安全性、移动APP兼容性测试等
  • 内部系统间的交互点
  • 期望测试结果可预料,测试复用性要求强
  • 加快软件开发周期,通过自动化测试缩短测试周期,提高软件信度
  • 手工测试困难或不可能的测试,如性能测试的负载测试
  • 运行频繁的测试,或短时间内需要大量测试
  • 全面、准确、快速响应的测试,及全面的测试管理

自动化测试的局限

  • 不能代替手工测试
  • 预期结果不确定时
  • 缺乏自动化测试经验时
  • 文档较少或不一致时
  • 发现缺陷能力不足
  • 测试成本较高

自动化测试技术

以用户登录功能为例

  • 执行测试前,完成测试用例设计
  • 模拟手工测试过程:
  • 模拟用户的手工操作
  • 记录执行过程
  • 判断测试结果
  • 统计测试情况
自动化功能测试任务
  • 识别被测系统
  • 驱动被测系统
  • 记录执行过程
  • 设置校验点,判断测试结果
  • 统计测试情况

自动化测试的原理

录制/回放技术

  • 自动录制手工操作,转化为测试脚本
  • 在脚本中插入指令设置校验点
  • 测试工具读取脚本,执行指令,重复制定测试用例

自动化测试的流程

在这里插入图片描述


测试用例模板

在这里插入图片描述
在这里插入图片描述


自动化测试的关键技术

  • 对象识别
  • 脚本技术
  • 自动比较技术
  • 自动化测试框架

对象识别

  • Windows对象

  • 在这里插入图片描述

  • App对象

  • 在这里插入图片描述

  • Web对象

  • 在这里插入图片描述


脚本技术

  • 线性脚本:录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放
  • 结构化脚本:具有逻辑结构、函数调用功能
  • 数据驱动脚本:测试输入存储在独立数据文件中,而不是存储在脚本中
  • 关键字驱动:"填表格"式的关键字驱动封装,测试人员进行自动化测试时只要考虑3个问题就可以了:做什么、对谁做、怎么做。

自动比较技术

  • 验证点命令与对象值的比较
  • 静态比较与动态比较
  • 简单比较与复杂比较
  • 敏感性测试比较与健壮性测试比较
  • 比较过滤器
    在这里插入图片描述

Selenium自动化测试工具

  • 用于Web应用程序测试
  • 测试浏览器兼容性与系统功能
  • 支持IE、Mozilla Firefox、Safari、Google Chrome、Opera等浏览器
  • 这个工具的主要功能包括:
    测试与浏览器的兼容性
    测试系统功能
  • 在普遍的经验中,一般会对具有下列特征的项目开展UI自动化测试:
    软件需求变动不频繁
    项目周期较长

Selenium IDE与WebDriver与Grid

在这里插入图片描述

Selenium IDE

  • 嵌入Firefox的插件,录制与回放Selenium脚本

Selenium WebDriver

  • 操作浏览器的API,支持多种编程语言

Selenium Grid

  • 支持多节点并行执行多个测试,不同浏览器和操作系统

Selenium脚本

  • 接下来编写第一个Selenium Python脚本,本例使用Selenium WebDriver提供的类和方法模拟用户与浏览器的交互,代码如下所示。
    在这里插入图片描述
    不同的浏览器版本需要下载匹配其版本的驱动程序
    谷歌:http://npm.taobao.org/mirrors/chromedriver/
    火狐:https://github.com/mozilla/geckodriver/releases
    Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

WebDriver原理

在这里插入图片描述

  • Selenium-client无法直接操作浏览器
  • WebDriver作为中介,调用浏览器原生组件
  • 实际上是Selenium-client去请求WebDriver,然后WebDriver通过调用浏览器原生组件驱动浏览器操作。

Selenium WebDriver的常用方法

在这里插入图片描述


Selenium WebDriver的功能

在这里插入图片描述


示例:定位一组元素

  • 在百度首页找到所有链接并输出链接文字
  • 在这里插入图片描述

WebElement接口

在这里插入图片描述
在这里插入图片描述


相关文章:

软件测试09 自动化测试技术(Selenium)

重点/难点 重点:理解自动化测试的原理及其流程难点:Selinum自动化测试工具的使用 目录 系统测试 什么是系统测试什么是功能测试什么是性能测试常见的性能指标有哪些 自动化测试概述 测试面临的问题 测试用例数量增多,工作量增大&#xff…...

记录解决springboot项目上传图片到本地,在html里不能回显的问题

项目场景: 项目场景:在我的博客系统里:有个相册模块:需要把图片上传到项目里,在html页面上显示 解决方案 1.建一个文件夹 例如在windows系统下。可以在项目根目录下建个photos文件夹,把上传的图片文件…...

C++ 中 const 关键字

C 中 const 关键字 2009-02-19 2024-07-23 补充C11后的做法 在 C 中,const 是一个关键字(也称为保留字),它用于指定变量或对象的值在初始化后不能被修改。关键字是编程语言中具有特殊含义的词汇,编译器会识别这些词并…...

客梯自动监测识别摄像机

当今社会,随着城市建设的快速发展,客梯作为现代化建筑不可或缺的一部分,其安全性与效率显得尤为重要。为了提升客梯的安全管理水平,智能监测技术应运而生,尤其是客梯自动监测识别摄像机系统的应用,为乘客和…...

为什么那么多人学习AI绘画?工资香啊!

在当今这个科技日新月异的时代,AI绘画作为数字艺术与人工智能融合的璀璨成果,正吸引着无数人投身其中,而“工资香啊!”无疑是这一热潮背后不可忽视的驱动力之一。 AI绘画的高薪待遇是吸引众多学习者的关键因素。随着市场对AI艺术…...

国产JS库(js-tool-big-box)7月度总结

js-tool-big-box开发已经有3个月了,团队内的小伙伴进行了热烈的讨论,持续做了功能迭代。小伙伴们也做了艰苦卓绝的文档分享,有纯功能分享类的,有带有小故事的,有朋友们利用自己独自网站分发分享的。7月份快要结束了&am…...

c++ 高精度加法(只支持正整数)

再给大家带来一篇高精度,不过这次是高精度加法!话不多说,开整! 声明 与之前那篇文章一样,如果看起来费劲可以结合总代码来看 定义 由于加法进位最多进1位,所以我们的结果ans[]的长度定义为两个加数中最…...

python键盘操作工具:ctypes、pyautogui

这里模拟 Win Ctrl L 组合键 1、ctypes ctypes库,它允许我们直接调用Windows API来模拟键盘输入。 import ctypes import time# 定义所需的常量和结构 LONG ctypes.c_long DWORD ctypes.c_ulong ULONG_PTR ctypes.POINTER(DWORD) WORD ctypes.c_ushortclass…...

计算机网络发展历史

定义和基本概念 计算机网络是由多个计算设备通过通信线路连接起来的集合,这些设备能够互相交换数据、消息和资源。计算机网络的核心功能是实现数据的远程传输和资源共享,它使得地理位置的限制被大大减弱,极大地促进了信息的自由流动和人类社…...

记录安装android studio踩的坑 win7系统

最近在一台新电脑上安装android studio,报了很多错误,也是费了大劲才解决,发出来大家一起避免一些问题,找到解决方法。 安装时一定要先安装jdk,cmd命令行用java -version查当前的版本,没有的话,先安装jdk,g…...

Python图形编程-PyGame快速入门

PyGame快速入门 文章目录 PyGame快速入门1、什么是PyGame2、安装PyGame3、创建PyGame窗口4、处理事件5、绘制对象6、移动对象7、加载和显示图像8、播放声音9、处理用户输入10、碰撞检测11、动画精灵12、管理游戏状态13、Pygame 中的典型主游戏循环1、什么是PyGame Pygame 是一…...

邦芒宝典:8种方法调整职场心态

在职场中拼斗当然要有好的心态,您知道职场心态如何调整吗? ​ ​方法1:自我调整 ​“思想可以使天堂变成地狱,也可以使地狱变成天堂。”你不能样样顺利,但可以事事尽心;你不能左右天气,但可以改变心情;你…...

华为OD2024D卷机试题汇总,含D量50%+,按算法分类刷题,事半功倍

目录 专栏导读华为OD机试算法题太多了,知识点繁杂,如何刷题更有效率呢? 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、队列4、链表5、栈6、滑动窗口7、二叉树8、并查集9、矩阵 三、算法1、基础算法① 贪心思维② 二分查…...

Unity UGUI 之 Graphic Raycaster

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 首先手册连接如下: Unity - Manual: Graphic Raycaster 笔记来源于&#xff…...

类和对象——相关的零碎知识

前提提示: 其实C中的类和对象,最重要的是6个默认函数,如有忘记,请移步到:类和对象。本章是对于一些细节知识的补充和拓展。 1. 隐示类型转换 在运算时,运算符左右两边的操作数的类型不同,编译器…...

【hadoop大数据集群 1】

hadoop大数据集群 1 文章目录 hadoop大数据集群 1一、环境配置1.安装虚拟机2.换源3.安装工具4.安装JDK5.安装Hadoop 一、环境配置 折腾了一下午/(ㄒoㄒ)/~~ 1.安装虚拟机 参考视频:https://www.bilibili.com/video/BV18y4y1G7JA?p17&vd_sourcee15e83ac6b22a…...

TQSDRPI开发板教程:实现PL端的UDP回环与GPSDO

本教程将完成一个全面的UDP运行流程与GPSDO测试,从下载项目的源代码开始,通过编译过程,最终将项目部署到目标板卡上运行演示。此外,我们还介绍如何修改板卡的IP地址,以便更好地适应您的网络环境或项目需求。 首先从Gi…...

array.some() ==> 查找数组list中,是否有包含与当前currKey的值不一样的misId

需求: const list [ {misId: e, name: 小白}, {misId: e, name: 小白白}, {misId: r, name: 小王}, {misId: r, name: 小小王} ] let currKey r 查找数组list中,是否有包含与当前currKey的值不一样的misId 解决: 要查找数组lis…...

最简单的typora+gitee+picgo配置图床

typoragiteepicgo图床 你是否因为管理图片而感到头大?是时候了解一下 Typora、Gitee 和 PicGo 这个超级三剑客了,它们可以帮你轻松打造自己的图床,让你的博客图片管理变得简单又有趣。让我们开始这场神奇的图床之旅吧! Typora …...

【黄啊码】GPT的相关名词解释

GPT是一种基于互联网的、可用数据来训练的、文本生成的深度学习模型 GPT的核心技术是‌变换器(Transformer),这是一种神经网络结构,可以有效地处理序列数据,比如文本、语音、图像等。GPT使用了大量的预训练数据&#…...

git stash 命令详解

git stash 描述 git stash 命令用于将当前工作目录中的未提交更改(包括暂存区和工作区的更改)保存到一个栈中,并恢复工作目录到干净的 HEAD 状态。这样您可以在不提交当前更改的情况下,切换到其他分支或进行其他操作。后续可以通…...

txt格式单词导入有道词典生词本 (java代码方式)

txt格式单词导入有道词典生词本 (java代码方式) 首先要求txt文档里单词的格式,大概需要像这种: 每行是一个单词,格式为:英文单词空格词性单词意思。 注意 导出单词本的名字就是你 txt 文件的名字 我这里是 公共英语三级 单词本 …...

轨迹优化 | 基于ESDF的共轭梯度优化算法(附ROS C++/Python仿真)

目录 0 专栏介绍1 数值优化:共轭梯度法2 基于共轭梯度法的轨迹优化2.1 障碍约束函数2.2 曲率约束函数2.3 平滑约束函数 3 算法仿真3.1 ROS C实现3.2 Python实现 0 专栏介绍 🔥课程设计、毕业设计、创新竞赛、学术研究必备!本专栏涉及更高阶的…...

深入浅出WebRTC—ALR

ALR(Application Limited Region)指的是网络传输过程中,由于应用层的限制(而非网络拥塞)导致带宽未被充分利用的情况。在这种情况下,应用层可能因为处理能力、手动配置或其他因素无法充分利用可用带宽&…...

BSV区块链技术现实应用原理解析

BSV区块链以其卓越的可扩展性、坚如磐石的安全性、极低的交易成本等特性,成为满足企业当下需求并为企业未来成功奠基铺路的理想技术。 BSV协会近期发布了一个题为《驾驭数字化转型:在自动化世界中建立信任——区块链在数据保护和交易优化中的角色》的报…...

七大基于比较的排序算法

目录 一、基于比较的排序算法概述 1. 插入排序(Insertion Sort) 2. 选择排序(Selection Sort) 3. 冒泡排序(Bubble Sort) 4. 归并排序(Merge Sort) 5. 快速排序(Qu…...

web前端 React 框架面试200题(四)

面试题 97. React 两种路由模式的区别?hash和history? 参考回答: 1: hash路由 hash模式是通过改变锚点(#)来更新页面URL,并不会触发页面重新加载,我们可以通过window.onhashchange监听到hash的改变,从而处…...

5.Fabric的共识机制

在Fabric中,有以下3中典型共识机制。 Solo共识 solo共识机制只能用于单节点模式,即只能有一个Orderer节点,因此,其共识过程很简单,每接收到一个交易信息,就在共识模块的控制下产生区块并广播给节点存储到账本中。 Solo 模式下的共识只适用于一个Orderer节点,所以可以在…...

【safari】react在safari浏览器中,遇到异步时间差的问题,导致状态没有及时更新到state,引起传参错误。如何解决

在safari浏览器中,可能会遇到异步时间差的问题,导致状态没有及时更新到state,引起传参错误。 PS:由于useState是一个普通的函数, 定义为() > void;因此此处不能用await/async替代setTimeout,只能用在返…...

京准:GPS北斗卫星授时信号安全隔离防护装置

京准:GPS北斗卫星授时信号安全隔离防护装置 京准:GPS北斗卫星授时信号安全隔离防护装置 1、主要特点 ★信号加固功能: GPS/BDS单系统信号拒止情况下(包含受到GPS L1欺骗干扰、GPS L1压制干扰、BDS B1欺骗干扰、BDS B1压制干扰&…...

怎样用记事本做网站/搜索引擎广告图片

从零开始用 Flask 搭建一个网站(二) 从零开始用 Flask 搭建一个网站(一) 介绍了如何搭建 Python 环境,以及 Flask 应用基本项目结构。我们要搭建的网站是管理第三方集成的控制台,类似于 Slack。 本篇主要讲…...

wordpress的头像图标/nba最新交易一览表

今天为了继续玩python,给win10电脑安装MySQL数据库,正常安装后需要将数据库中my.ini配置文件修改一下,如下划红线部分:下面是图中内容部分:[mysql]# 设置mysql客户端默认字符集default-character-setutf8[mysqld]#设置…...

网站管理与建设测试题/免费网页设计制作网站

传奇喜剧二人组扎根于元宇宙平台,将反主流文化体验及其 NFT 带入 The Sandbox 元宇宙 。 经过 50 年在商业和文化上取得的成功,喜剧二人组 Cheech & Chong 正在进入 The Sandbox 元宇宙。朋友们,这对著名的二人组的标志性车辆、外观、反主…...

建设部网站危房鉴定标准规定/免费网站模板网

时间同步: 首先需了解linux内一任务计划工具crontabcrontab可以定时去执行你要做的动作直接用crontab命令编辑crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数crontab -l //列出某个用户cron服务的详细内容crontab -r //删除某个用…...

四方坪网站建设/东莞网站建设最牛

转载:http://www.cnblogs.com/woider/p/5926744.html pymysql 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块。 pymysql 模块可以通过 pip 安装。但如果你使用的是 pycharm IDE,则可以使用 proj…...

真人做a视频网站/网络营销网站建设案例

plantuml类图绘制方法的学习: 1.关于类图的学习: 类图显示了系统的静态结构。 类:类图中的主要元素,用矩形表示。矩形的上层表示类名、中层表示属性、下层表示方法。 类之间的关系:关联、依赖、聚集、泛化和实现五种。…...