自动化测试用例怎么写?最全自动化测试用例设计编写指南...

news2024/11/16 17:42:07

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

Python自动化测试:https://www.bilibili.com/video/BV1MS4y1W79K/

自动化检查应形成一个不可拆分的单元,一个用例只能测试一个功能点。由于测试的颗粒度非常小,这与编写单元测试非常相似。

原子性的测试用例应该是这样的:
该测试用例尽可能少地断言,通常只有一个或两个断言。
测试避免与UI界面交互,最多只能在两个页面上进行。
在通常情况下,测试颗粒度越小。测试用例就会越复杂,但是将测试设计得尽可能小有很多优点。

编写原子性测试可以快速执行得到测试结果。测试报告的反馈是迅速而针对性的。检查功能状态的时间一般都是几秒钟内完成。

对于测试报告中的错误信息,很快能够复现且排查BUG的根源,并迅速解决它。

缩短测试链
如果平均单个测试用例执行的时间能够缩短一半,那么测试效率会提升两倍以上。因为测试的时间越长,误报的可能性越大,随着干扰因素的不断累计,失败的可能也越大。

编写原子测试用例可减少脆弱性,因为它减少了该测试中可能出现的断裂的数量。原子性测试用例能够减少大量误报,这又会促进出现问题的排查时间。

一个例子:
打开网页主页;
断言页面已打开;
断言某个元素存在;
打开搜索页面;
搜索文章;
断言该文章存在;

使用自动化测试时,每一个步骤都有概率出现错误。
例如,定位器或交互机制可能已更改而同步策略可能已过期。

因此一个自动化测试用例中的步骤越多,测试就越有可能中断并产生误报。

测试覆盖率
编写原子测试的第三个好处是,如果原子测试用例失败,它们将不会阻断其他功能用例的测试。

换句话说,自动化测试用例可以对业务功能进行更全面的检查,而不用担心测试链断裂导致后面的功能无法覆盖。

参考上面提到的测试:如果在步骤断言元素存在中失败,则可能永远无法检查搜索页面或搜索功能是否正常。

若是在回归测试场景中,运行大规模测试用例的时候,原子性的测试用例将减少测试范围。编写原子测试用例的另一个巨大好处是,它们在运行时会更快,因为完全可以进行并行化处理。

Web自动化用例拆分

一个简单的场景:
打开购物网站首页;
断言页面打开;
搜索商品;
断言已找到商品;
加入购物车;
断言已添加商品;
订单信息补充;
结算;
断言订单成功;

许多自动化工程师认为这个测试用例必需完整执行整个测试链的流程。
例如必须在搜索之前必需打开首页之前,依此类推。
原因是,如果购物车中没有商品,又如何才能进入结帐流程?

注入测试数据
自动化测试最佳实践方法是在UI交互之前注入数据以填充应用程序的状态。

这将极大地帮助测试过程。

例如:可以通过几个选项控制应用程序的状态:
使用API测试框架的方法将应用程序设置为特定状态;
使用JavaScript修改页面;
将数据注入数据库以将应用程序设置为特定状态;
使用cookie信息;

如果可以在应用程序的接缝之间插入数据,则可以隔离每个步骤并对其进行单独测试。

要考虑的一些选项:
发送网络请求以生成新的测试用户;
发送网络请求以填充购物车中的商品;
使用Selenium打开浏览器到购物车页面;
使用网络自动化执行结帐;
之后清理所有测试数据;

使用HTTP接口
使用API测试与在每个测试步骤中使用自动化的GUI相比,它的功能更加强大且速度更快。
例如,一个HTTP请求可以在大约几十毫秒内执行。
这意味着前置步骤中的需求只需不到一秒钟即可完成。

测试用例需要完成的唯一步骤是使用Selenium(实际要测试的唯一部分)完成结帐过程。

使用JavaScript
登录页面是测试最常见的障碍之一,而且大多数应用程序都有必需经过这一步才能进入系统。

那么,如何从测试中删除它,使测试用例可以是原子性的?

一个例子:
在某一个带有登录屏幕的页面:
使用GUI测试工具打开Web应用;
执行JavaScript脚本;
登录成功;
现在,使用GUI自动化测试工具执行要测试的单个原子测试用例。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每天都是一个新的开始,不要让过去的失败阻碍你前进的步伐。坚持努力,永不放弃,你一定能够实现自己的梦想。成长的路上,有挫折也有收获,相信自己,勇往直前!

每一次的挫折都是成长,每一个努力都值得珍惜。坚定自己的目标,并为之努力奋斗,只有这样才能实现自己的梦想,创造属于自己的辉煌人生!

每一次努力都是为了成为更好的自己,即使前路充满困难和挑战,也要坚定信心,勇往直前。只有不断地跨越障碍,才能够赢得成功的喜悦。让我们一起拼搏,奋斗出精彩人生!

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

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

相关文章

算法系列题目

文章目录 一. 下一个更大元素1. 下一个更大元素 Ⅰ2. 下一个较大元素II 二. 区间问题1. 贪心策略最少射箭问题无重叠区间合并区间划分字母区间 2. 差分数组 三. 设计类题目1. LRU(最近最少使用)缓存2. LFU(最不经常使用)缓存 一. 下一个更大元素 1. 下一个更大元素 Ⅰ 添加链…

磐维数据库panweidb单节点服务器在centos7.9安装(研发环境)

一、系统环境优化 1.1 关闭SELINUX # 修改配置文件 cat /etc/selinux/config | grep -i SELINUX SELINUXdisabled# 关闭SELINUX setenforce 0 1.2 内核参数优化 vi /etc/sysctl.conf 添加# panweidb net.ipv4.tcp_max_tw_buckets 10000 net.ipv4.tcp_tw_reuse 1 net.ipv4.t…

CAS是什么?它的底层原理是什么?

目录 一、CAS概述 二、底层原理 三、总结 一、CAS概述 CAS(Compare and Swap)比较和交换:是一种并发算法,也是一种乐观锁,从JDK5开始,jdk提供了java.util.concurrent.*,此包下面的类在高并发场景下经常使用…

CTF密码学总结

0x01 目录 常见编码: ASCII编码Base64/32/16编码shellcode编码Quoted-printable编码XXencode编码UUencode编码URL编码Unicode编码Escape/Unescape编码HTML实体编码敲击码(Tap code)莫尔斯电码(Morse Code)编码的故事 各种文本加密 换位加密: 栅栏密码(Rail-fence Cipher)曲路密…

第13届蓝桥杯Scratch选拔赛真题集锦

第13届蓝桥杯Scratch选拔赛真题集锦 编程题 第 1 题问答题 跳舞机游戏 题目说明 编程实现 跳舞机游戏。 具体要求: 1).点击绿旗,舞台左上角显示得分0代表玩家分数,在得分右侧倒计时10代表游戏时长(10s) 2).游戏开始倒数计时,在舞台上随…

目标检测的通用实例提取

论文:General Instance Distillation for Object Detection 论文地址:https://arxiv.org/pdf/2103.02340.pdfhttps://arxiv.org/pdf/2103.02340.pdf 摘要 In recent years, knowledge distillation has been proved to be an effective solution for m…

vulnhub靶场之bassamctf

1.信息收集 探测存活主机,输入:netdiscover -r 192.168.239.0/24 ,发现192.168.239.177存活。 对目标主机192.168.239.176进行端口扫描,发现存活22(SSH)、80端口。 在浏览器上输入:http://192.168.239.177&#xff…

网络协议 | 典型协议、B/S模式、C/S模式

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

LeetCode:29. 两数相除

29. 两数相除 1)题目2)思路3)代码1.初始代码2.第一次优化3.第二次优化 4)结果1.初始结果2.第一次优化结果3.第二次优化结果 1)题目 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,…

es 三 安装 es 安装kibana

目录 安装7.3.0 版本 下载地址 一个比一个快 页面测试访问 安装kibana 下载 Config/kibana.yml 配置修改开启中文 页面访问 安装7.3.0 版本 下载地址 一个比一个快 Index of /elasticsearch/ 下载中心 - Elastic 中文社区 下载中心 - Elastic 中文社区 官网下载 开箱…

CANape使用记录(一):CANape新建工程及标定观测

目录 1、概述 2、新建工程 3、添加观测与标定量 1、概述 CANape具有以下主要组件:在线测量,离线分析,诊断,打印机功能,数据管理,闪存编程,校准,CDM Studio和设备数据库编辑器&…

从工地到办公室:一个土木工程师如何学成测试技能?

提桶跑路成功了,这工地我是再也不来了。 ​ 工作中流的汗真的都是报专业时脑袋里进的水。 当时高考完,对于要学什么专业感到很迷茫,因为姨夫是干工地的,零几年土木专业的大学生,在我们这五线城市一个月也能够拿一万多…

汇聚支付APP+技术方案介绍

一、时序图 商户使用汇聚支付的 APP方案,需要两个步骤: 步骤一: 请求汇聚支付的支付接口,https://www.joinpay.com/trade/uniPayApi.action 获取返回的关键参数 rc_Result。 步骤二: 商户 APP 按照微信的 SDK 规范使…

pdf怎么拆分成一页一页的?办公常备工具说明

PDF(Portable Document Format)是一种用于创建和共享文档的文件格式。它由Adobe Systems开发,并已成为电子文档的通用格式。PDF文件可以包含文本、图像、表格、超链接和其他多媒体内容,使其成为一种非常方便的文件格式。 然而&…

ChatGPT国内免费使用的网站

ChatGPT是什么意思? ChatGPT全称:Chat Generative Pre-trained Transformer 在英文中“chat”是聊天的意思,GPT是一种预训练语言模型的缩写。 所以ChatGPT是一款功能非常强大的AI(人工智能)聊天机器人,能…

linux小技巧-如何修改IP(四种方法)

目录 项目场景: 方法分析及步骤介绍 原因分析: 解决方案: 项目场景: 项目上经常遇到修改IP的情况,这里总结一些各个情况下修改IP的方法,尤其时有时候没有主机屏幕显示,借助于命令行的方式修…

MATMacOS安装

MAT MacOS安装 文章目录 MAT MacOS安装第一章 简述第01节 介绍第02节 获取 第二章 配置第01节 显示包内容第02节 MAT配置Java环境变量第03节 MAT兼容低版本Java 第三章 问题第01节 正常启动效果第02节 可能遇到的问题 第一章 简述 第01节 介绍 什么是 MAT 工具? …

【随时更新】知识点回顾

哈夫曼编码和解码 C 哈夫曼编码 【介绍编码过程】 哈夫曼树编码及其图形化的实现 【使用可视化方式展现最终编码效果】 Python中使用哈夫曼算法实现文件的压缩与解压缩 【Python实现】 哈夫曼树 C语言实现 【图解如何生成】 编码过程 1. 使用二进制流,统计当前文件…

如何利用Smartbi电子表格进行财务常用账簿数据的联动查询

财务,是几乎所有企事业单位内部的核心组织。单位今年耗费几何,企业去年赚多少钱,平均成本在什么水平,为国家创造多少税收等等,所有这些信息,最终都通过财务账表的方式来体现。可以说,大家工作辛…

OSI/RM七层网络模型和网络协议

目录 1.OSI/RM七层网络模型1.1 结构图1.2 各层功能 2.OSI七层、TCP/IP四层、五层网络模型对比3.各层对应网络协议3.1 应用层3.2 传输层 1.OSI/RM七层网络模型 OSI/RM(Open System Interconnection/Reference Model,开放式系统互联参考模型)是…