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

news2024/9/24 7:15:03
重点/难点
  • 重点:理解自动化测试的原理及其流程
  • 难点: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接口

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


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

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

相关文章

数据结构初阶(C语言)-二叉树

一,树的概念与结构 树是⼀种非线性的数据结构,它是由 n(n>0) 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,而叶朝下的。 1.有⼀个特殊的结点&a…

ubuntu22安装拼音输入法

专栏总目录 一、安装命令: sudo apt update sudo apt install fcitx sudo apt install fcitx-pinyin 二、切换输入法

吴恩达深度学习笔记1 Neural Networks and Deep Learning

参考视频:(超爽中英!) 2024公认最好的【吴恩达深度学习】教程!附课件代码 Professionalization of Deep Learning_哔哩哔哩_bilibili Neural Networks and Deep Learning 1. 深度学习引言(Introduction to Deep Learning) 2. 神 经 网 络 的 编 程 基 础…

数据库安全:MySQL安全配置,MySQL安全基线检查加固

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们需…

【目标检测】Anaconda+PyTorch(GPU)+PyCharm(Yolo5)配置

前言 本文主要介绍在windows系统上的Anaconda、PyTorch、PyCharm、Yolov5关键步骤安装,为使用yolo所需的环境配置完善。同时也算是记录下我的配置流程,为以后用到的时候能笔记查阅。 Anaconda 软件安装 Anaconda官网:https://www.anaconda…

微软蓝屏事件:网络安全与系统稳定性的反思与前瞻

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MFC:以消息为基础的事件驱动系统和消息映射机制

以消息为基础的事件驱动系统和消息映射机制 (1)消息 A.What(什么是消息) 本质是一个数据结构,用于应用程序不同部分之间进行通信和交互 typedef struct tagMSG {HWND hwnd; // 接收该消息的窗口句柄UINT message; // 消息标…

二分查找的实现

前提&#xff1a;数组是有序的 #include <stdio.h>//作用&#xff1a;利用二分查找法查找数据 //返回值&#xff1a;数据在数组中的索引 //找到了&#xff1a;真实索引 没找到&#xff1a;返回-1 int search(int arr[], int num, int len) {//查找范围int min 0;int …

DC系列靶场---DC 2靶场的渗透测试(一)

信息收集 Nmap扫描 nmap -sV -p- -sC -T4 172.30.1.141 域名解析 echo 172.30.1.141 dc-2 >> /etc/hosts 目录枚举 gobuster dir -u http://172.30.1.141 -w work/lab/CTF/ATT_CK_01/SecLists-master/Discovery/Web-Content/big.txt -x .php,.rar,.html,.zip -t 20 -b…

将代码转换为图表的 6大工具

文章目录 将代码转换为图表的 6大工具 - 前言1、[Diagrams](https://diagrams.mingrammer.com/) - Python2、[Go-Diagrams](https://github.com/blushft/go-diagrams) - Go3、[Mermaid ](https://mermaid.js.org/) - JavaScript4、[PlantUML](https://plantuml.com/zh/) - Java…

VUE之---slot插槽

什么是插槽 slot 【插槽】&#xff0c; 是 Vue 的内容分发机制&#xff0c; 组件内部的模板引擎使用slot 元素作为承载分发内容的出口。slot 是子组件的一个模板标签元素&#xff0c; 而这一个标签元素是否显示&#xff0c; 以及怎么显示是由父组件决定的。 VUE中slot【插槽】…

Druid【基础 01】是什么+主要特点+设计原则+架构+数据结构(简单入门Druid)

Druid入门 1. 是什么2. 主要特点3. 三个设计原则4. Architecture 架构5. 数据结构5.1 DataSource 结构5.2 Segment 结构 Druid 非中文官网&#xff0c;内容不少且介绍的挺详细的&#xff0c;需要英文阅读能力或者翻译工具进行辅助。 1. 是什么 先看看官网怎么说&#xff1a; A…

C#初级——基础语法

前言 学习Unity游戏编程开发会使用到两种语言&#xff0c;一种是C#&#xff0c;另一种是Javascript。有学习C语言基础和想学unity游戏开发的萌新一般都推荐学习C#基础编程&#xff0c;以此来快速上手unity的学习。 本次学习使用到的工具为&#xff1a;VS2022 环境安装 首先&a…

对比预测编码表示学习

对比预测编码表示学习 引言 文章主要提出如下几点&#xff1a;首先将高维数据压缩到更加紧凑的潜在嵌入&#xff08;latent embdding&#xff09;空间&#xff0c;在这个空间中条件预测更容易被建模。第二&#xff0c;在这个潜在空间中使用自回归模型&#xff0c;以对未来的多…

PingCAP 王琦智:下一代 RAG,tidb.ai 使用知识图谱增强 RAG 能力

导读 随着 ChatGPT 的流行&#xff0c;LLMs&#xff08;大语言模型&#xff09;再次进入人们的视野。然而&#xff0c;在处理特定领域查询时&#xff0c;大模型生成的内容往往存在信息滞后和准确性不足的问题。如何让 RAG 和向量搜索技术在实际应用中更好地满足企业需求&#…

【C++11】智能指针深度详解(什么是智能指针?为什么需要智能指针?如何使用智能指针?)

目录 一、前言 二、 智能指针的引入 --- 内存泄露 &#x1f4a2;什么是内存泄漏&#xff1f;&#x1f4a2; &#x1f4a2;内存泄漏有那些危害&#xff1f;&#x1f4a2; &#x1f4a2;内存泄漏的原因&#xff1f;&#x1f4a2; &#x1f4a2;解决内存泄漏的方法 &#x…

go-kratos 学习笔记(3) google buf 管理proto

google buf 管理proto&#xff0c;以及从新归档文件的目录结构 什么是 BSR&#xff1f; BSR 将 Protobuf 文件作为版本化模块进行存储和管理&#xff0c;以便个人和组织可以轻松使用和发布他们的 API。 BSR 带有可浏览的 UI、依赖项管理、API 验证、版本控制、生成的文档以及…

手把手教你CrossOver 24.0.0 for Mac 破解版安装激活2024图文教程

兔八哥爱分享要和大家分享的是一款可以让我们直接在Mac上安装和运行Windows软件和游戏的软件——CrossOver。兔八哥爱分享这次带来的是24.0.0 测试版本。 CrossOver已支持相当多的Windows应用&#xff0c;如Office、AutoCAD、Windows Media Player 9、Photoshop、Dreamweaver、…

Java并发的笔记

打算记录自己的学习情况&#xff0c;尽量不摆烂&#xff0c;另外一件事要有始有终&#xff0c;要弄完 如果多个线程处理同一个变量&#xff0c;读跟写都保证不了 2024.7.22》》》》》》》》》》》》 2.1.1volatile的实现原理 volatile不会引起线程上下文的切换和调度 一致性更…

《0基础》学习Python——第十八讲__爬虫/<1>

一、什么是爬虫 爬虫是一种网络数据抓取的技术。通过编写程序&#xff08;通常使用Python&#xff09;&#xff0c;爬虫可以自动化地访问网页&#xff0c;解析网页内容并提取出所需的数据。爬虫可以用于各种用途&#xff0c;如搜索引擎的索引&#xff0c;数据分析和挖掘&#x…