软件测试之自动化测试的四个阶段

第一阶段:API自动化

之前的想法是:通过API创建数据,访问数据,进行数据操作,存储数据库,通过模拟前端的操作来想象API的访问流程。

然后,验证数据库是否存储正确。后来发现该想法流程就是错误的。

问题:

1、模拟前端的操作需要对每个前端操作后调用的API非常熟悉,这已经超过了测试的范围,属于开发的范畴。

2、每个API的集成测试应该是独立的,有顺序的对API的测试使得API之间存在相互依赖的关系。然而每个API的正确性并不能保证。

3、API本身是具有很强的独立性,不应该通过前端模拟操作来对其进行相对的验证,操作逻辑应该由前端负责。

总结:

1、使得API具有健壮性,对正常的数据传输和异常的数据传输,服务器端都能正确的响应和返回正确的响应码。

2、对于API的集成,务必使得每个API都独立验证,不能具有相互依赖性。

3、API的正确性为前端逻辑的自动化验证提供了稳定的基础。

4、工具可使用:unittest,pytest(推荐)

在这里插入图片描述

第二阶段:自动创建测试数据

前端的一些UI验证,需要一些组合数据,每次更新环境,版本迭代,自动化创建需要的数据。

此时需要依据测试用例(UI显示部分)来保证每种情况,包括边界,越界情况的显示正常。此些数据在每次新环境都需要验证的情况下,手动创建太过于浪费时间,通过Python读取excel预先设计好的,通过API或者直接写入数据库的方式自动化创建批量的数据。写入的方式通过具体的业务来选择。

第三阶段:前端操作自动化

第二阶段和第三阶段的顺序不太重要,也可以先执行第三阶段。

这里的前端操作自动化,通俗的讲是对前端控件响应的一些自动化验证,属于基础的前端测试。如文本的输入,按钮点击响应,表单提交后的正常显示等。

依据就是需求文档,覆盖需求文档的一些基本的点就可以。不需要太多的复杂的流程和操作。

工具使用appium。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:1150305204【暗号:csdn000】

第四阶段:用户实操自动化

用户实操依据是使用该软件的过程中,用户操作的真实场景,为最后的收尾自动化测试。

如用户可能在使用的过程中,停留在该页面10分钟,然后锁屏,然后解锁,查看该APP是否还在生存中。

如用户可能在使用的过程中,是程序退入后台。这里的具体操作需要了解不同的平台对程序生命周期的定义阶段不同。

前端自动化和接口自动化

之前一直在思考前端自动化和接口自动化分别侧重点是什么。

前端自动化侧重点在于组建的响应,数据显示(包括长度,小数正确取位等),后端侧重在于数据处理的正确性验证。

之前主要通过Appium检验前端的各个按钮响应是否都正确,某个元素是否显示出来了,忽略了一个动作操作完后对其他界面数据显示的影响检测。其实前端和后端的自动化侧重点不同,但是对于数据的检测可以是双重检测。这样测试完后的数据更有保障。

关于数据生成(准备)

数据生成(准备)与测试放在分开的模块中,混到一起,容易中断测试代码。

先数据生成测试需要的数据然后再运行测试代码。

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

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

相关文章

2024/1/2 C++ work

全局变量,int monster 10000;定义英雄类hero,受保护的属性string name,int hp,int attck;公有的无参构造,有参构造,虚成员函数 void Atk(){blood-0;},法师类继承自英雄类,私有属性 …

十大排序的个人总结之——冒泡排序、插入排序

同样,这两几乎也是被淘汰了的算法,尽管它们是稳定的,但是时间复杂度没人喜欢,了解一下就好,没啥好说的,注意最后一句话就行了 一,冒泡排序 1. 算法步骤 共n-1趟,谁两敢冒泡就换了…

Tomcat服务为什么起不来?

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 服务跑在Tomcat下面,有时候会遇到Tomcat起不来的情况。目前为止常遇到的情况有如下几种: 1. Tomcat服务…

【VSCode】关闭双击shift出现搜索

原因 有时候总是手滑按两下shift,每次都会弹出如下图的搜索框,导致很不方便 解决办法 找到该文件 C:\Users\admin\.vscode\extensions\k--kato.intellij-idea-keybindings-1.5.12\package.json(admin是自己的用户名) 然后关键字…

前端文件上传组件最全封装+删除+下载+预览

前言&#xff1a;使用的是若依的框架element uivue2封装的。如果有不对的地方欢迎指出。后台管理使用&#xff0c;文件需要上传。回显列表&#xff0c;详情也需要回显预览 // 开始封装组件&#xff1a;封装在 src/components/FileUpload/index.vue中 <template><div c…

slf4j+logback源码加载流程解析

slf4j绑定logback源码解析 Logger log LoggerFactory.getLogger(LogbackDemo.class);如上述代码所示&#xff0c;在项目中通常会这样创建一个Logger对象去打印日志。 然后点进去&#xff0c;会走到LoggerFactory的getILoggerFactory()方法&#xff0c;如下代码所示。 public …

Maven介绍安装和配置详解

点击下载《Maven介绍安装和配置详解》 1. Maven介绍 Maven是一个自动化构建工具&#xff0c;主要用于Java项目的构建和管理。它使用一种基于项目对象模型&#xff08;POM&#xff09;的概念&#xff0c;使得开发者能够使用一种统一的方式来管理项目的构建、报告和文档。 以下…

大模型提效105篇必读论文和代码汇总,涵盖预训练、注意力、微调等7个方向

大型语言模型&#xff08;LLMs&#xff09;在NLP领域中具有显著的优势&#xff0c;它们在语言理解和生成方面表现出了强大的能力&#xff0c;甚至可以进行复杂的推理任务。这些能力能让大模型在许多领域都有广泛的应用前景&#xff0c;比如文本生成、对话系统、机器翻译、情感分…

【WinForm.NET开发】如何验证用户输入

本文内容 MaskedTextBox 控件事件驱动的验证隐式和显式验证关闭窗体和重写验证 用户在应用程序中输入数据后&#xff0c;建议在应用程序使用数据之前验证数据是否有效。 可以要求某些文本字段的长度不能为零&#xff0c;字段应设置为电话号码格式&#xff0c;或者字符串中不得…

论文阅读——EfficientViT(cvpr2023)

EfficientViT: Memory Efficient Vision Transformer with Cascaded Group Attention 1、 从三个角度探讨如何提高vision transformers的效率&#xff1a;内存访问、计算冗余和参数使用。 2.1. Memory Efficiency 红色字体表示操作所花费的时间主要由内存访问决定&#xff0c;…

C语言 linux文件操作(一)

文章目录 一、linux文件权限1.1文件描述符1.2文件描述符的范围和默认值1.3打开文件和文件描述符1.4标准文件描述符1.5文件描述符的重定向和关闭1.6I/O 操作1.7使用文件描述符进行进程通信1.8资源限制 二、C语言文件读写2.1open 函数2.2 flags参数详解2.3 lseek 函数 一、linux文…

c# 并行处理

以下是一个使用 C# 并行处理来读取大量小文件的例子&#xff0c;这个例子中我们使用 Parallel.ForEach 方法并结合 File.ReadAllLines 来提高读取速度&#xff1a; using System; using System.Collections.Concurrent; using System.IO; using System.Linq;class Program {st…

Javaweb之数据库连接池以及lombok类库的详细解析

3. 数据库连接池 在前面我们所讲解的mybatis中&#xff0c;使用了数据库连接池技术&#xff0c;避免频繁的创建连接、销毁连接而带来的资源浪费。 下面我们就具体的了解下数据库连接池。 3.1 介绍 没有使用数据库连接池&#xff1a; 客户端执行SQL语句&#xff1a;要先创建一…

JS + CSS 实现高亮关键词(不侵入DOM)

之前在做关键词检索高亮功能的时候&#xff0c;研究了下目前前端实现高亮的几种方式&#xff0c;第一就是替换dom元素实现高亮&#xff0c;第二就是利用浏览器新特性Css.highlights结合js选区与光标与CSS高亮伪类实现&#xff0c;实现功能如下&#xff1a; 一、页面布局 一个…

2023春季李宏毅机器学习笔记 02 :机器学习基本概念

资料 课程主页&#xff1a;https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.phpGithub&#xff1a;https://github.com/Fafa-DL/Lhy_Machine_LearningB站课程&#xff1a;https://space.bilibili.com/253734135/channel/collectiondetail?sid2014800 一、機器學習基本原理…

Resource Autowire

Resource注入 Java自带的注解&#xff0c;javax.annotation.resource,Spring支持该注解默认按照byName注入方式&#xff0c;通过反射机制自动注入的策略装配策略&#xff1a; ①如果同时指定了name和type&#xff0c;则从Spring上下文中找到唯一匹配的bean进行装配&#xff0c…

位乘积计数-蓝桥

题目链接&#xff1a;1.位乘积计数 - 蓝桥云课 (lanqiao.cn) 解题思路&#xff1a;10的5次数量级暴力居然过了&#xff0c;看来测试样例很水&#xff0c;直接1遍历到n&#xff0c;再用一个循环判断每位数相乘乘机是否等于m即可。 下面是c代码&#xff1a; #include <iost…

叫板GPT-4的Gemini,我做了一个聊天网页,可图片输入,附教程

先看效果&#xff1a; 简介 Gemini 是谷歌研发的最新一代大语言模型&#xff0c;目前有三个版本&#xff0c;被称为中杯、大杯、超大杯&#xff0c;Gemini Ultra 号称可与GPT-4一较高低&#xff1a; Gemini Nano(预览访问) 为设备端体验而构建的最高效模型,支持离线使用场景。…

什么是数据结构?

1、一种非常经典的数据结构。 栈数据结构&#xff1a;stack 2、什么是数据结构&#xff1f; 数据结构通常是&#xff1a;存储数据的容器。而该容器可能存在不同的结构。 数据结构和 java 语言实际上是没有关系&#xff0c;数据结构是一门独立的学科。 在大学计算机专业中&#…

[Redis实战]分布式锁

四、分布式锁 4.1 基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程进行&#xf…