自动化测试selenium(1)

目录

什么是自动化测试

自动化测试

单元测试

接口测试

UI自动化测试

适合做自动化测试的项目

如何实施自动化测试

自动化测试需要了解的技能

selenium介绍

特性

原理


什么是自动化测试

自动化测试

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

下面是自动化测试的金字塔.

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

单元测试

最大的投入应该在单元测试上单元测试运行的频率也更加高.

java的单元测试框架是Junit.

接口测试

接口测试就是API测试, 相对于UI自动化,API自动化更容易实现, 执行起来也更加稳定.

接口自动化的有以下特点:

可在产品前期, 接口完成后介入;

用例维护量小;

适合接口变动较小, 界面变动频繁的项目.

常见的接口自动化测试工具有RobotFramework, JMeter, SoapUI, TestNG+HttpClient, Postman.

UI自动化测试

虽然测试金字塔告诉我们尽量多做API层的自动化测试, 但是UI层的自动化测试更加贴近用户的需求和软件系统的实际业务. 并且有时候我们不得不进行UI层的测试. 

UI自动化的特点:

用例维护量大

页面相关性强, 必须后期项目页面开发完成后介入

UI测试适合与界面变动较小的项目.

UI自动化测试的好处:

降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入, 这可能是自动化测试主要的任务, 特别是在程序修改比较频繁, 效果是非常明显的, 自动化测试前期人力投入比较多, 但后期进入维护期后, 可节省大量人力, 而手工测试后期需要增加大量人力用于回归测试.

减少重复测试时间, 实现快速回归测试.

创建优良可靠的测试过程, 减少人为错误.

可以运行更多更繁琐的测试.

可以执行一些手工测试困难或不可能进行的测试.

更好地利用资源.

测试脚本的重要性.

UI自动化测试的适用对象:

实施自动化测试的前置条件: 需求变动频繁, 项目周期足够长, 自动化测试脚本可重复使用.

适合做自动化测试的项目

1.产品型项目. 产品型的项目, 新版本是在旧版本的基础上改进, 功能变动不大的项目, 但项目的新老功能都必须重复的进行回归测试. 回归测试是自动化测试的强项, 它能够很好地验证你是否引入了新的缺陷, 老的缺陷是否改过来了. 在某种程度上可以把自动化测试的工具叫做回归测试工具.

2.机械并频繁的测试. 每次输入相同, 大量的一些数据, 并且在一个项目中运行周期较长的测试, 比如兼容性测试. 

以下情况的项目不适合做自动化测试:

1.需求变动频繁的项目, 自动化脚本不能重复使用, 维护成本太大, 性价比低.

2.项目周期短, 自动化脚本编制完成后使用次数不多, 性价比低.

3.交互性较强的项目, 需要人工干预的项目, 自动化项目无法实施.

如何实施自动化测试

单纯地讲, 自动化测试的具体实现, 应该包含以下七个过程:

1.分析: 总体把握系统逻辑, 分析出系统的核心体系架构.

2.设计: 设计测试用例, 测试用例要足够明确和分析, 覆盖面广而精.

3.实现: 实现脚本, 有两个要求: (1)断言. (2)合理运用参数化.

4.执行: 执行脚本远没有想象的那么简单. 脚本执行过程中的异常需要我们仔细地去分析原因.

5.总结: 测试结果的分析,和测试过程中的总结是自动化测试的关键.

6.维护: 自动化测试脚本的维护是一个难以解决但必须解决的问题.

7.分析: 在自动化测试过程中深刻分析自动化用例的覆盖风险和脚本维护的成本. 

 

自动化测试需要了解的技能

了解测试系统的基本业务

了解业务的技术框架

懂得功能测试

懂得一种编程语言

懂数据库, 操作系统.

了解常见的测试框架. 

selenium介绍

Selenium是web应用中基于UI自动化测试框架, 支持多平台, 多浏览器, 多语言.

特性

1.跨浏览器兼容性: Selenium支持多种主流的Web浏览器, 包括Chrome, Firefox, Edge Safari等, 可以在不同浏览器上运行相同的测试用例.

2.多语言支持: Selenium支持多种编程语言, 如Java, Python等, 开发人员可以根据自己的偏好选择合适的语言编写测试脚本

3.灵活性: Selenium提供了灵活的API和丰富的操作方法, 可以模拟用户在浏览器中的各种操作, 包括点击, 输入, 下拉选择等, 从而实现对Web应用程序的完整测试.

4.集成性: Selenium可以与其它测试框架和工具集成, 如JUnit, TestNG, Maven等, 可以与持续集成工具结合, 实现自动化测试的持续集成和持续部署.

5.定位策略: Selenium提供了多种定位元素的策略, 如ID, 名称, XPath, CSS选择器等, 开发人员可以选择合适的定位策略.

原理

不再赘述, 直接给出原理图:

这个过程就像你喜欢一个女神, 但是你并不认识她, 并且比较内向, 不敢与其直接交流, 但你有一个朋友恰好认识她, 这是你就可以让你的朋友作为一个传话员, 将自己的想法传递给女神,从而间接交流(让朋友帮忙约她, 传递好意, 要微信什么的).

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

标准 I/O 库

直接使用系统调用的缺点: (1) 影响系统性能 系统调用比普通函数调用开销大 因为,频繁的系统调用要进行用户空间和内核空间的切换 (2) 系统调用一次所能读写的数据量大小,受硬件的限制 解决方案:使用带缓冲功能的标准I/O库&#x…

RocketMQ笔记(七)SpringBoot整合RocketMQ发送事务消息

目录 一、简介1.1、流程图1.2、事务消息流程介绍 二、Maven依赖三、生产者3.1、application配置3.2、员工表3.3、实体3.4、持久层3.5、监听器 四、测试4.1、普通消息4.2、事务消息4.2.1、消费者4.2.2、正常提交4.2.3、异常提交 五、其他5.1、接口说明5.2、checkLocalTransactio…

智能传真机触摸屏中应用的触摸感应芯片

智能传真机是应用扫描和光电变换技术,把文件、图表、照片等静止图像转换成电信号,传送到接收端,以记录形式进行复制的通信设备。智能传真机将需发送的原件按照规定的顺序,通过光学扫描系统分解成许多微小单元(称为像素…

AXS4110 单节锂电池保护芯片 爱协生 兼容XB6042/CM1124 低成本

概述 AXS4110系列产品是一种针对锂离子或聚合物电池保护的高集成解决方案芯片。AXS4110系列包含先进的功率MOSFET、高精度电压检测电路和延时电路。AXS4110系列采用DFN1x1x0.37_4封装,使其成为小体积电池保护的理想解决方案。 AXS4110具有过充、过放、过流、0V充电…

SpirngBoot开发常用知识

springboot开发常用知识 命令行打包SpringBoot打包插件window端口命令临时属性设置热部署启动热部署热部署范围 常用计量单位数据校验加载测试的专用属性Web环境模拟测试如何发送虚拟请求业务层测试回滚随机产生测试用例内置数据源 命令行打包 对SpringBoot项目进行打包命令行…

液冷是大模型对算力需求的必然选择?|英伟达 GTC 2024六大亮点

在这个以高性能计算和大模型推动未来通用人工智能时代,算力已成为科技发展的隐形支柱。本文将重点探讨算力的演进,深入分析在不同领域中算力如何成为推动进步的基石;着眼于液冷如何突破算力瓶颈成为引领未来的先锋,对液冷散热的三…

智慧城市中的物联网革命——青创智通

工业物联网解决方案-工业IOT-青创智通 得益于物联网 (IoT)的变革力量,智慧城市的概念正在迅速成为现实。物联网正在从根本上改变城市的运作方式,为城市居民带来更高的效率、可持续性和生活质量。在本文中,我们将探讨物联网在智慧城市中的作用…

小程序商城免费搭建之java商城 电子商务Spring Cloud+Spring Boot+二次开发+mybatis+MQ+VR全景

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

面对DDOS攻击,有哪些解决办法

随着互联网带宽的持续增长以及DDOS黑客技术的发展,DDOS拒绝服务攻击的实施变得愈发容易。商业竞争、打击报复、网络敲诈等多种因素,各行各业的用户都曾受到DDOS攻击的威胁。 一旦遭受到DDOS攻击,随之而来的就是业务宕机,用户无法…

【必看】网络安全从业者书单推荐

推荐几本网络安全从业者必读的书籍 一、计算机基础 《网络硬件设备完全技术宝典》(第3版) 本书共768页,包括交换机、路由器、安全设备、网络设备等重要和常用的网络设备,图文并茂,语言流畅,内容及其丰富…

NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理

NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理 Text-to-SQL(或者Text2SQL),顾名思义就是把文本转化为SQL语言,更学术一点的定义是:把数据库领域下的…

MQ之————如何保证消息的可靠性

MQ之保证消息的可靠性 1.消费端消息可靠性保证: 1.1 消息确认(Acknowledgements): 消费者在接收到消息后,默认情况下RabbitMQ会自动确认消息(autoAcktrue)。为保证消息可靠性,可以…

如何用Python编写简单的网络爬虫(页面代码简单分析过程)

一、什么是网络爬虫 在当今信息爆炸的时代,网络上蕴藏着大量宝贵的信息,如何高效地从中获取所需信息成为了一个重要课题。网络爬虫(Web crawler)作为一种自动化工具,可以帮助我们实现这一目标,用于数据分析…

发挥自定义表单开源优势,助力实现流程化办公!

在数字化发展进程中,利用低代码技术平台、自定义表单开源的优势特点,可以让企业实现流程化办公,从而实现提质增效的办公目的。作为一种新兴的应用开发模式,低代码技术平台获得了很多新老客户朋友的青睐和喜爱,正以它自…

静力水准仪如何进行数据获取及转换?

静力水准仪作为现代测量技术中的一项重要工具,通过利用磁致伸缩效应实现了对被测物体沉降量的高精度测量。本文将介绍磁致式静力水准仪数据获取的原理与方法,以及数据转换的过程,探讨其在工程安全监测领域的应用价值。 数据获取原理 静力水准…

【QT入门】 Qt自定义控件与样式设计之QPushButton点击按钮弹出菜单

往期回顾: 【QT入门】 Qt自定义控件与样式设计之QPushButton实现鼠标悬浮按钮弹出对话框-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QComboBox样式表介绍-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QCheckBox qss实现按钮开关-CSDN博客 【QT入门】 Qt自定义…

ai智能问答免费API接口

智能对话API接口,可以为网站或其他产品提供强大的智能交互功能,无需自行开发复杂的语义分析和自然语言处理算法。这使得开发者能够更专注于产品的核心功能和用户体验,加速产品上线速度并降低开发成本。 智能对话API接口的功能还包括对话内容…

德勤:《中国AI智算产业2024年四大趋势》

2023年《数字中国建设整体布局规划》的发布,明确了数字中国是构建数字时代竞争优势的关键支撑,是继移动互联网时代以来经济增长新引擎。当我们谈论数字中国的构建,不仅仅是在讨论一个国家级的技术升级,而是关乎如何利用数字技术来…

AI时代,搜索引擎的巨头地位恐怕不保了

兄弟们,你们使用搜索网站的频率有降低吗? ChatGPT 已经流行了一年多了,这期间数个大模型都发展了起来。 搜索引擎本质上也属于问答系统,所以,在大模型成熟之后,我使用搜索的频率越来越低了。 主要是因为…

苍穹外卖Day12——总结12

前期文章 文章标题地址苍穹外卖Day01——总结1https://lushimeng.blog.csdn.net/article/details/135466359苍穹外卖Day02——总结2https://lushimeng.blog.csdn.net/article/details/135484126苍穹外卖Day03——总结3https://blog.csdn.net/qq_43751200/article/details/1363…