8. 自动化测试 selenium

news2025/2/4 14:56:45

目录

1. 什么是自动化

2. 自动化测试金字塔

2.1 单元测试

2.2 接口自动化

2.3 UI自动化 

3. 什么是 selenium

4. selenium 工作原理(重点)


1. 什么是自动化

自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。

自动化的优点: 

  • 可以提高测试效率
  • 可以提高测试质量

那么,自动化测试和手工测试哪个更好呢?

        不能说哪个好或者哪个不好,只要适合当前业务的测试类型就是一个好的测试方法。

自动化测试能否完全代替手工测试?

        不能。

2. 自动化测试金字塔

自动化测试包括UI自动化,接口自动化,单元测试自动化。
按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(ROI ),可以用较少的投入获得很好的收益。

越往上越靠近用户、测试方法越简单、问题出现之后定位问题的成本越高。

2.1 单元测试

最大的投入应该在单元测试上,单元测试运行的频率也更加高。
java 的单元测试框架是 Junit。

2.2 接口自动化

接口测试就是 API 测试,相对于 UI 自动化 API 自动化更加容易实现,执行起来也更稳定。
接口自动化的有以下特点:
  • 可在产品前期,接口完成后介入
  • 用例维护量小
  • 适合接口变动较小,界面变动频繁的项目
常见的接口自动化测试工具有, RobotFramework JMeter SoapUI TestNG+HttpClient Postman 等。

2.3 UI自动化 

虽然测试金字塔告诉我们尽量多做 API 层的自动化测试,但是 UI层的自动化测试更加贴近用户的需求和软件系统的实际业务。
UI自动化的特点:
  • 用例维护量大
  • 页面相关性强,必须后期项目页面开发完成后介入
  • UI测试适合界面变动较小的项目
UI自动化测试的好处:
  1. 降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入,这可能是自动化测试最主要的任务,特别是在程序修改比较频繁,效果是非常明显的,自动化测试前期人力投入较多,但后期进入维护期后,可节省大量人力,而手工测试后期需要增加大量人力用于回归测试
  2. 减少重复测试的时间,实现快速回归测试
  3. 创建优良可靠的测试过程,减少人为错误
  4. 可以运行更多更繁琐的测试
  5. 可以执行一些手工测试困难或不可能进行的测试
  6. 更好的利用资源
  7. 测试脚本的重用性

UI层的测试框架 比较多,比如 Windows 客户端测试的 AutoIT web测试的selenium 以及 TestPlant
eggPlant Robot framework QTP 等。

3. 什么是 selenium

selenium 是自动化测试框架,主要针对 web 项目进行 UI 自动化。

selenium 的特点:

  • 免费
  • 小巧
  • 支持多语言:Java、Python、JS、Ruby、C#
  • 支持多平台:一套代码可以在 Linux、mac、Windows 上运行
  • 支持多种浏览器:Edge、chrome、Firefox
  • 有丰富的 API
  • 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器执行,相当于分发机的功能

4. selenium 工作原理(重点)

代码:通过编译器写的代码(自动化测试脚本)

浏览器驱动:

什么是驱动:类似于汽车有了驱动才可以跑起来

浏览器:我们下载的浏览器

我们可以看到在运行我们上篇文章的代码后,打印了如下的日志:

表明驱动也连接成功了。

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

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

相关文章

51单片机学习--LED流水灯

#include <REGX52.H> #include <INTRINS.H>void Delay1ms(int t) //11.0592MHz {while(t --) {unsigned char i, j;_nop_(); //需要添加头文件i 2;j 199;do{while (--j);} while (--i);} }//延时1ms执行t次void main() {while(1){P2 0xFE; //1111 1110Delay1ms…

【Javascript】前端对文件进行md5计算再上传,以节省OSS云端存储空间

安装插件 browser-md5-file browser-md5-file 用于计算文件md5&#xff0c;文档介绍较少&#xff0c;看看就能使用↓ 使用例子 比如我用 el-upload 组件上传图片 <el-uploadaction""class"upload-box":show-file-list"false"accept"…

找回删除的MP3文件不再难,这三种方法让你轻松应对

在数字时代&#xff0c;我们常常将歌曲、照片和文档等重要数据存储在电脑或移动设备中。然而&#xff0c;有时我们会不小心删错了文件&#xff0c;比如误删了一首喜欢的MP3歌曲。这时&#xff0c;如何恢复这些被误删除的文件就变得至关重要。本文将介绍一些常见的方法和技巧&am…

labview 弹窗(子vi)

如果你遇到了需要在主vi运行时需要弹窗某个窗口(或者称为子vi,子画面)&#xff0c;而且要主画面和子画面能独立运行各自的循环程序&#xff0c;本文能给你帮助。 本文的精髓在于: wait until Donefalse,表示子VI运行的同时&#xff0c;主vi也继续运行后面的代码&#xff0c;主…

Devops7实验环境搭建(terraform-kind-k8s-argocd)

Devops7实验环境搭建(terraform-kind-k8s-argocd) 目录 实验环境 操作系统&#xff1a; CentOS8 Linux &#xff08;我本次用centos7.6&#xff09; 内存资源&#xff1a;32GB &#xff08;自己nuc机器32G内存&#xff09; 实验软件版本&#xff1a; 工具名称Version描述信息…

【正点原子STM32连载】第五十八章 T9拼音输入法实验摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第五…

Kubernetes - HPA-VPA - metrics介绍和安装 - HPA实验

目录 参考文章&#xff1a;(97条消息) Kubernetes-自动扩展器HPA、VPA、CA_hpa vpa_SRE运维充电站的博客-CSDN博客 HPA VPA 官方网址&#xff1a;autoscaler/vertical-pod-autoscaler at master kubernetes/autoscaler GitHub HPA和VPA进行扩缩容的区别&#xff1a; me…

绿水青山,节水护水我先行

为了树立人人珍惜水&#xff0c;人人节约水的良好风尚 绿萝志愿团队在7月16日在常庄刺猬河开展了2023年卫生环保志愿活动主要项目是宣传节水&#xff0c;护水志愿活动。 早上志愿者们早早的来到刺猬河旁&#xff0c;用自己带的工具准备清理河道旁的垃圾。志愿者们顶着炎炎的烈日…

Servlet 开发技术

文章目录 前言创建Servlet项目处理请求并响应处理请求text/plain&#xff0c;纯文本text/html&#xff0c;html代码application/json&#xff0c;JSON格式字符串 Servlet 生命周期Servlet在整个生命周期中被调用的方法Servlet运行原理 CORS跨域设置 前言 提示&#xff1a;这里…

rust的cargo和基本数据类型

一、cargo 1、cargo 比较大的项目就不适合用rustc进行编译了&#xff0c;此时就需要使用cargo 在安装包的时候&#xff0c;会遇到网速慢卡住的问题&#xff0c;这时候就要更换国内源或者设置代理 方法一&#xff1a;设置命令行代理 方法二&#xff1a;换源 进入用户目录下的…

linux 安装redis、配置密码及简单使用

1&#xff1a;官网下载压缩包 这里我下载的是6.2.13版本。 2&#xff1a;上传到linux服务器 a:创建redis文件夹 b:进入当前redis文件夹 c:解压缩文件 d:进入 redis-6.2.713 e:使用make 命令进行编译将.c文件编译成.o文件 编译成功之后会出现“Its a good idea to run make test…

微信原生实现一个简易的图片上传功能

一、实现原理 wx.showActionSheet()&#xff1a;显示操作菜单&#xff0c;选择是从相册选择还是相机拍摄照片wx.chooseImage()&#xff1a;从本地相册选择图片或使用相机拍照。wx.uploadFile()&#xff1a;将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求&#xff0c…

在自定义数据集上微调Alpaca和LLaMA

本文将介绍使用LoRa在本地机器上微调Alpaca和LLaMA&#xff0c;我们将介绍在特定数据集上对Alpaca LoRa进行微调的整个过程&#xff0c;本文将涵盖数据处理、模型训练和使用流行的自然语言处理库(如Transformers和hugs Face)进行评估。此外还将介绍如何使用grado应用程序部署和…

分型(一)

一点想法&#xff1a; 坐标系本来就是人头脑当中的东西&#xff0c;可以根据需要动态调整&#xff0c;图像处理中&#xff0c;用动态的波看静态的图像&#xff0c;进而找出图像的特征&#xff0c;分型是不是把动态的过程呈现出静态的特征呢&#xff1f; 芒德布罗集&#xff1…

Python(十五)数据类型——bool型

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【动手学深度学习】--08.实战:Kaggle房价预测

文章目录 实战&#xff1a;Kaggle房价预测1.访问和读取数据集2.数据预处理2.1标准化数据2.2离散数据处理 3.训练4.K折交叉验证5.模型选择 实战&#xff1a;Kaggle房价预测 1.访问和读取数据集 # 如果没有安装pandas&#xff0c;请取消下一行的注释 # !pip install pandas%matp…

华为云CodeArts产品体验的心得体会及想法

文章目录 前言CodeArts 的产品优势一站式软件开发生产线研发安全Built-In华为多年研发实践能力及规范外溢高质高效敏捷交付 功能特性说明体验感受问题描述完结 前言 华为云作为一家全球领先的云计算服务提供商&#xff0c;致力于为企业和个人用户提供高效、安全、可靠的云服务。…

基于SpringBoot+vue的在线答疑系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

《实战AI低代码》:普元智能化低代码开发平台发布,结合专有模型大幅提升软件生产力

在7月6日举办的“低代码+AI”产品战略发布会上,普元智能化低代码开发平台正式发布。该平台融合了普元自主研发的专有模型,同时也接入了多款AI大模型的功能。它提供了一系列低代码产品,包括中间件、业务分析、应用开发、数据中台和业务流程自动化等,旨在简化企业的复杂软件生…

Linux网络基础 — 传输层

目录 再谈端口号 端口号范围划分 认识知名端口号 netstat pidof UDP协议 UDP协议端格式 UDP的特点 面向数据报 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 TCP协议 TCP协议段格式 几个问题&#xff1a; 确认应答(ACK)机制 6个标记位 超时重传机制 连接…