关于Web端 —— UI自动化测试

在手工测试阶段,针对项目输出了测试用例,如果这些测试用例需要在版本迭代的过程中,需要进行回归测试,通过手工重复地执行测试用例,将会耗费大量的人力。

为此应运而生就有了自动化测试,通过使用自动化工具,将按照测试用例进行点点操作,校验的工作,交给代码程序来执行,测试工作,就变得省心省力了。

  • 重点:测试用例是自动化测试脚本的依据,一切不基于测试用例而写的自动化脚本都是耍流氓。
关于UI自动化测试
UI 自动化的本质
  • 定位元素
  • 操作元素
  • 模拟页面动作
  • 断言结果
  • 生成报告

基于以上5个本质,自动化测试的整体流程是这样的,这里百度登陆功能的测试用例为例:

  1. 对于这条测试用例,需要找到它的定位元素:用户名输入框,密码输入框,登陆按钮
  2. 操作元素:对于这3个定位元素的操作有2种,分别是“输入”与“点击”
  3. 模拟页面动作,也就是测试用例的步骤:

    1. 输入用户名
    2. 输入密码
    3. 点击登陆按钮
  4. 判断结果:将用例中的预期结果与实际结果进行比对,如果一致,代表成功,否则代表失败。对于这条测试用例,登陆成功的标志是,页面右上角出现了用户的头像与用户名,那么,可以通过获取网页中用户名的文本信息,与登录账户的用户名对比,一致的话,代表这条用例通过。

  5. 根据执行结果,自动生成报告,常用的第三方模块:HtmlTestRunnerAllure2 等
适合UI自动化测试的场景

当然,不是所有的测试场景都适合用自动化测试来实现。

 
  1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。

  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受

  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛

  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙

  5. 可以免费学习!划重点!开源的!!!

  6. qq群号:680748947

对此,可以参考以下的标准辅助判断:

  1. 项目的需求不会频繁变动
  2. 页面的 UI 已经进入稳定阶段
  3. 项目周期足够长
  4. 大量回归的测试任务

其中,有一些项目是明显不适合使用 UI 自动化测试的,例如视频播放器(暴风影音,腾讯视频,爱奇艺等),音乐播放器(例如网易云音乐,QQ 音乐等)等交动性强,并发依赖强的软件。

原因是,这一类软件,判断视频内容对不对,判断音乐声音与歌词对不对,难度极大。

另外,延伸一个话题:关于自动化测试的覆盖率,面试会问到的一个点。

国内大多数互联网公司的项目迭代周期比较短,因此自动化覆盖率一般都不高。

具体还是要根据项目迭代周期进行描述,参考标准是:

  • 迭代周期是半年或者一年以上的项目,每次需求变动很少,自动化测试的覆盖率一般是60%-70%,主要是覆盖之前的旧功能以及核心场景
  • 迭代周期为一个月的项目, 覆盖率大概是25-30%,主要是覆盖 P0(极重要)级别的绝大多数用例,与 P1(重要)级别中的部分用例
  • 1~2周一个迭代的项目,覆盖率大概是10%,主要是覆盖 P0(极重要)级别,可能会对用户造成严重影响的核心场景

其次,UI 自动化测试的时间切入点主要有2个:

  1. 冒烟测试阶段
  2. 回归测试阶段
UI 自动化测试设计原则
  1. 一个测试用例完成一个功能点测试(常用):一个手工用例对应一个自动化测试用例
  2. 一个脚本是一个完整的场景
  3. 脚本之间独立,不能有依赖(脚本间相互隔离):例如与登陆状态相关的用例:个人中心、订单详情、下单购物等,如果脚本之间不独立,相互依赖,在登陆的测试脚本失败的情况下,会导致个人中心、订单详情、下单购物的测试脚本全军覆灭,后续修复与维护成本高
  4. 设置合适的检查点:通过断言判断用例的成功与否
  5. 设计良好的框架:Python 常用的测试框架有 unittest 与 pytest,利用框架,及对共用的测试模块进行封装,减少自动化测试脚本维护的工作量
总结

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

【docker】Docker打包SpringBoot镜像

📝个人主页:五敷有你 🔥系列专栏:中间件 ⛺️稳中求进,晒太阳 前置说明 最为原始的打包方式spring-boot-maven-plugin插件jib-maven-plugin插件dockerfle-maven-plugin插件 最为原始的方式 也就是使用Docker的打…

从哈希桶角度看 unordered_map 与 unordered_set 的实现

文章目录 一、引言二、C unordered系列的无序关联式容器概览三、基于哈希桶的C unordered系列数据结构模拟实现1、unordered_map的模拟实现2、unordered_set的模拟实现3、哈希桶及其迭代器实现的代码 四、扩展与应用1. 自定义哈希函数2. 其他unordered数据结构unordered_multim…

蓝桥杯/慈善晚会/c\c++

问题描述 热心公益的G哥哥又来举办慈善晚会了,这次他邀请到了巴菲特、马云等巨富,还邀请到了大V、小C等算法界泰斗。晚会一共邀请了n位尊贵的客人,每位客人都位于不同的城市,也就是说每座城市都有且仅有一位客人。这些城市的编号为…

大模型知识库

一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。 1. 下载Langchain-chatchat git clone https://github.com/chatchat-space/Langchain-Chatchat/ 2. 下载大模型和embe…

c++ 自己实现一个迭代器

具体代码 /*自定义迭代器的实现 */ #include <iostream> using namespace std; class num {int val; //具体的数字int length; //数字的位数void calculate_length(){if(val/100){ //这个数字只有1位length1;return;}int x10; //这里就是不断重复除直…

python连接mysql数据库步骤

连接MySQL数据库通常需要使用第三方库&#xff0c;而在Python中&#xff0c;mysql-connector-python 是一个常用的 MySQL 连接库。以下是连接 MySQL 数据库的步骤&#xff1a; 安装 MySQL 连接库&#xff1a; 使用以下命令安装 mysql-connector-python&#xff1a; pip insta…

汽车电子零部件(8):T_Box

前言: 网联汽车(Connected Vehicles ,CV)是一个广泛的概念,四个主要的CV线程已发展起来:互联、自主、共享和电动。这些应用于包括CV在内的垂直领域:汽车、通信、互联网和共享手机服务。中国汽车工程师学会(SAEC)提倡将车载ADAS(高级驾驶员辅助系统)与通信技术相结合…

gitlab仓库使用流程(开发)

1.1.GitLab代码提交流程&#xff1a; 1.1.1准备阶段&#xff1a; 确保已经安装了Git&#xff0c;并且配置了正确的用户名和邮箱地址。 在本地创建一个新的文件夹&#xff0c;用于存放即将开发的代码。 1.1.2.拉取代码&#xff1a; 使用git clone命令从GitLab上拉取项目代码…

基于python的在线学习与推荐系统

技术&#xff1a;pythonmysqlvue 一、系统背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大…

java数据库关系数据库设计(下)

目录 1.概念模型:E-R图 1.实体 2.属性 3.联系 4.实体间的映射关系 2.物理模型:数据库模型图 3.数据库规范设计 1.常见数据库设计问题 2.三大范式 1.第一范式 2.第二范式 3.第三范式 3.规范化和性能的关系 1.概念模型:E-R图 在数据库需求分析阶段&#xff…

阿里5年经验之谈 —— 接口测试用例如何编写?

接口测试用例如何编写&#xff1f;下面简单给大家讲解一下。 接口测试用例是目前软件开发中不可或缺的一个重要部分&#xff0c;因此编写接口测试用例同样重要。 接口测试用例的作用非常明显&#xff0c;它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品…

每日一题:C语言经典例题之求n!

题目描述 输入一个正整数n&#xff08;1<n<12)&#xff0c;求n!。 输入 输入一个正整数n。 输出 输出n!。 样例输入&#xff1a; 3 样例输出&#xff1a; 6 代码&#xff1a; #include <stdio.h> int f(int n) {if(n1)return 1;else{return n*f(n-1);} } int main(…

01|模型IO:输入提示、调用模型、解析输出

Model I/O 可以把对模型的使用过程拆解成三块&#xff0c;分别是输入提示&#xff08;对应图中的Format&#xff09;、调用模型&#xff08;对应图中的Predict&#xff09;和输出解析&#xff08;对应图中的Parse&#xff09;。这三块形成了一个整体&#xff0c;因此在LangCha…

VScode 设置个性化背景(保姆级教程)

VS Code设置个性化背景的作用主要体现在以下几个方面&#xff1a; 提升编程体验&#xff1a;个性化背景能够让编程环境更符合个人的审美和习惯&#xff0c;使得长时间在VS Code中进行代码编辑时&#xff0c;能够保持愉悦的心情&#xff0c;从而提高编程效率。减少视觉疲劳&…

【工具】Mermaid + 大模型画流程图

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 引入使用画TCP三次握手了解历史人物 总结 引入 最近看面试文章关于TCP三次握手和…

数据预处理:重复值

数据重复值处理 数据重复值出现情况重复的记录用于分析演变规律重复的记录用于样本不均衡处理重复的记录用于检测业务规则问题 数据重复值出现情况 数据集中的重复值包括以下两种情况&#xff1a; 数据值完全相同的多条数据记录。这是最常见的数据重复情况。数据主体相同但匹…

云贝教育 |【技术文章】POSTGRESQL FDW应用

注: 本文为云贝教育 刘峰 原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。 前言 Wrapper&#xff08;FDW&#xff09;是一项关键特性&#xff0c;它赋予数据库用户直接通过SQL语句访问存储于外部数据源的能…

【AcWing】蓝桥杯集训每日一题Day6|多路归并|贪心|1262.鱼塘钓鱼(C++)

1262.鱼塘钓鱼 1262. 鱼塘钓鱼 - AcWing题库难度&#xff1a;简单时/空限制&#xff1a;1s / 64MB总通过数&#xff1a;3449总尝试数&#xff1a;5251来源&#xff1a;《信息学奥赛一本通》算法标签枚举贪心堆多路归并 题目内容 有N个鱼塘排成一排&#xff0c;每个鱼塘中有一…

XAI之TDB:transformer-debugger的简介、安装和使用方法、应用案例之详细攻略

XAI之TDB&#xff1a;transformer-debugger的简介、安装和使用方法、应用案例之详细攻略 导读&#xff1a;小语言模型在处理一些任务时会出现无法明确解释的行为&#xff0c;难以细致追踪模型内部各个组件如神经元、注意力头等在推理过程中的作用。2024年3月12日&#xff0c;Op…

第二十六天-统计与机器学习SciPy,Scikit-Leaen

目录 1.介绍 2.使用scipy 1. 安装 2.拟合曲线 3.随机变量与概率分布 4.假设检验 5.参数检验 3.使用Scikit-Learn 1. 机器学习库&#xff0c;建立在numpy,scipy,matplotlib基础上 2.包含功能 3.安装 1.官网&#xff1a;https://scikit-learn.org 2.下载 3.线性回归…