全网最牛,接口自动化测试实现详细总结,23年测试进阶之路...

news2024/11/15 7:52:26

目录:导读

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


前言

为什么要做接口自动化?

UI能模拟用户的真实行为,但是受外部的原因,如电脑卡顿,浏览器卡顿,网速,需求变动等,从而容易造成脚本执行失败,维护成本较高,投入较高等问题
接口测试直接验证模块逻辑的正确性,去除UI干扰

接口测试难度低于UI测试,执行效率高于UI,可测试的代码覆盖率高,维护成本低,属于低成本,高收益

有些项目产品数据列表的内容比较多,不好定位,难以开展UI自动化测试
接口自动化能够解放人力,提升工作效率

了解一波接口

什么是接口?
接口一般来讲分为两种:
程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。

系统对外的接口:从别人的网站或服务器上获取资源或信息,对方不会提供数据库共享,只能提供一个写好的方法来获取数据。

如购物网站和第三方支付之间,购物网站支付时可选择第三方支付方法,但第三方不会提供自己的数据库给购物网站,只会提供一个接口,供购物网站进行调用。

常用接口:
http接口走http协议,通过路径来区分调用方法,请求报文一般是key-value形式的,返回报文一般是json串,常用的是get和post方法来请求。

webservice接口走的soap协议,通过http传输,请求报文和返回报文都是xml格式的。

http登录接口文档范例

21

获取接口关键信息

开发提供接口文档/接口规范(正规流程),如上接口文档范例;
说明:如果没有接口规范/文档(不正规流程),需要使用抓包工具,如Fiddler、wireshark、httpwatch或直接在谷歌或火狐浏览器F12等获取接口关键信息;

接口关键信息:
协议类型:http/htts
请求URL/IP:如:网址:https://www.baidu.com/;ip:127.0.0.1
端口:http默认端口:80,https默认端口:443或自定义端口
请求方式:如post/get/put/delete
表头信息:如内容类型Content-Type:application/json
请求参数:注意参数的传参类型如json;参数的属性如名称、类型、是否必填,参数的个数;
响应结果:注意输出内容的类型如json

返回状态描述
1xx请求已被成功接收、理解、接受
2XX成功,操作被成功接收并完成响应
3xx重定向–要完成请求必须进行更进一步的操作
4xx客户端错误–请求有语法错误或请求无法实现
5xx服务器端错误–服务器未能实现合法的请求

什么项目适合做接口自动化测试?

任务需求明确,不会频繁变动;
项目周期较长,回归测试频繁(>=5次),开展自动化确实能提升测试效率及质量;
产出的效益高于投入;
测试预留的时间比较充裕;

接口自动化关键点

开发测试脚本需充分考虑脚本的复用性;
业务与数据分离;
五 什么时候可以做接口自动化;
需求评审完毕,接口需求明确稳定;
版本升级项目发布之前的全流程回归测试;

与开发同步进行接口用例脚本开发

软件开发未完成,接口还无法调试,测试如果需要同步开发接口,需根据接口文档规范,利用MOCK SERVER等接口模拟工具模拟接口,从而进行接口自动化用例调试开发

接口自动化测试的流程

业务流程:
评估投入与收益比,是否需要进行接口自动化;
根据项目组成员的能力及项目属性,选取适当的自动化工具或开发语言;
分析业务,在功能测试用例提取主业务场景;
先开发一个主业务场景脚本,根据需要补充其他业务场景;

开发流程:
提取脚本可重复项,封装简化脚本,利用公共类或公共函数等方法,提高脚本的利用率、可读性及可维护性;
提取脚本中可变的参数,修改成变量;
利用csv、Excel、ini、数据库、yaml等参数化数据信息,使业务与数据分离,实现数据驱动测试;
引入日志,出现问题能迅速定位;
添加断言并生成可视化报告;
利用Jenkins持续集成工具,实现自动打包,按时发布并执行,生成结果邮件发送给项目相关人;

自动化测试框架

接口自动化测试:Python+requests+pytest+yaml+alluer+Jenkins;

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

生命如同一本书,奋斗是其中的精彩篇章,努力是翻开新一页的钥匙。不要畏惧失败与困难,用勇气与毅力书写自己的传奇,让每一天都成为梦想的跃动,绽放出无限的可能与光芒。

在漆黑的夜晚,星辰依然璀璨;在荆棘的道路上,勇者仍将前行。不论困难与挫折,坚持奋斗,收获将如春风般温暖心田。相信自己的力量,追逐梦想,扬帆起航。

每一次努力都是自我超越的机会,每一次挑战都是成长的新起点。相信自己的潜能与坚持,勇敢面对困难,奋斗不息,就能化凡人为英雄,绽放出属于你的耀眼光芒。

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

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

相关文章

Java String类【超详细】

文章目录 1. 字符串构造2. String对象的比较2.1 比较是否引用同一个对象2. 2boolean equals(Object anObject) 方法:按照字典序比较2.3 int compareTo(String s) 方法: 按照字典序进行比较2.4 int compareToIgnoreCase(String str) 方法:与compareTo方式…

图像 处理 - 开源算法集合

图像 处理 - 开源算法集合 1. 图像 检测 - MMDetection 简介2. 图像 分割 - MMSegmentation 简介3. 图像 其他 - MMPreTrain 以下介绍的每个 开源算法集合 均包含多种 开源算法 1. 图像 检测 - MMDetection 简介 简介:MMDetection 是一个基于 PyTorch 的目标检测开…

【C++进阶之路】map与set的基本使用

文章目录 一、set系列1.set①insert②find③erase④lower_bound与upper_bound 2.multiset①count②equal_range 二、map系列1.map①insert1.插入pair的四种方式2.常用两种方式 ②[]2.multimap①count②equal_range 一、set系列 1.set ①insert 函数分析(C98&…

解决Windows:Call to undefined function exif_imagetype()

很明显,是php安装时没有打开某些扩展,以致不能执行exif_imagetype()这个方法,因此需要打开。 网上很多人说需要打开下面这两个扩展: extension=php_exif.dll extension=php_mbstring.dll 但只说对了一半,我一开始也按照网上文章说的打开这两个扩展,但是还是同样错误。…

2. 软件需求 面向对象分析

目录 1. 软件需求 1.1 需求分类 1.2 需求获取 1.3 需求分析 2. 面向对象分析(OOA) 2.1 统一建模语言 UML 2.2 用例模型 2.2.1 用例图的元素 2.2.2 识别参与者 2.2.3 合并需求获得用例 2.2.4 细化用例描述 2.3 分析模型 2.3.1 定义概念类 …

3.1线程之间共享数据的问题

线程之间共享数据的问题 从整体上来看,所有线程之间共享数据的问题,都是修改数据导致的。如果所有的共享数据都是只读的,就没有问题,因为一个线程所读取的数据不受另一个线程是否正在读取相同的数据而影响。然而,如果…

慧算账的千亿财税市场之旅,从当好中小企业财税之友开始

数字化转型浪潮下,各个行业都在不断升级进化。不过,各领域中头部企业与中小企业数字化的方式有所不同。头部企业资金实力雄厚,对于数字化架构的搭建,往往会以内设部门加外部合作的方式来推进,而中小企业在可投入研发资…

Vscode无法写入文件 NoPermissions (FileSystemError): Error: EACCES: permission

用Vscode想要新建一个index.html的时候遇到了下图问题,说没有权限无法写入文件。 没有权限,咱们给他加上权限哈哈哈,博主是Mac电脑,如下操作: 1.找到你项目的根目录,右键,点击“显示简介”。 …

2023华数杯C题总结

前言 对这次比赛中遇到的问题和卡住的思路进行复盘,整理相关心得,供以后比赛参考 🧡1.认识数据类型🧡 连续变量:母亲年龄、妊娠时间、CBTS、EPDS、HADS、整晚睡醒时间、婴儿年龄 无序分类变量:婚姻状态、…

Java中ArrayList常用方法的学习

Java中ArrayList常用方法的学习 需求分析代码实现小结Time 需求分析 ArrayList集合的常用方法学习 代码实现 java.util.ArrayList;/*** Author:LQ* Description:* Date:Created in 16:45 2023/8/9*/ public class ListTest {public static void main(String[] args) {ArrayLis…

哪个版本的FL Studio更适合我?2023年到底应该入手哪一款FL Studio?

很多打算入手正版FL Studio的新手朋友都会纠结一个问题:哪个版本的FL Studio更适合我,2023年到底应该入手哪一款FL Studio?本文会介绍每个版本之间的差异点,并带大家选择适合自己的FL Sudio版本。 FL Studio Mac-安装包&#xff…

B2B2C线上直播购物商城开源搭建--多语言+自带商品库

要搭建一个B2B2C线上直播购物商城,可以考虑以下步骤: 1. 确定技术需求:确定前端和后端使用的技术栈。 2. 搭建基础环境:购买一个域名和服务器空间,安装和配置相应的操作系统和数据库。 3. 开发商城平台:…

LeetCode150道面试经典题--罗马数字转整数(简单)

目录 1.题目 2.示例 3.思路 4.案例代码(Java) 1.题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L …

UE 5 GAS Gameplay Ability System

游戏技能系统 简称(GAS),是一个健壮的,高度可扩展的gameplay框架,通常用于构件RPG、MOBA等游戏的完整战斗逻辑框架。 通过GAS,可以快速地制作游戏中的主动/被动技能、各种效果Buff、计算属性伤害、处理玩家…

openGauss学习笔记-31 openGauss 高级数据管理-索引

文章目录 openGauss学习笔记-31 openGauss 高级数据管理-索引31.1 语法格式31.2 参数说明31.3 示例 openGauss学习笔记-31 openGauss 高级数据管理-索引 索引是一个指向表中数据的指针。一个数据库中的索引与一本书的索引目录是非常相似的。 索引可以用来提高数据库查询性能&…

我在VScode学Java多态(Java多态、instanceof)

Java的多态(Polymorphism)是面向对象编程中的一种特性,它允许不同的对象能够以统一的方式进行访问和操作。它允许一个类的实例在运行时表现出多种形态。 Java多态的实现主要依赖于两个基本概念:继承和方法重写。在Java中&#xff…

程序员的趣闻:神奇Bug与不可思议的技术世界

文章目录 Bug本身情况发现Bug的过程怎么对待这个Bug其他感受 程序员的世界充满了各种离奇而又难以置信的趣闻,其中不乏那些令人目瞪口呆的神奇Bug。有时候,这些故事不仅令人捧腹大笑,还展现了技术世界的多姿多彩。让我们走进这个充满惊奇的领…

Java集合容器详解:ArrayList、LinkedList和HashMap、HashTable及其区别

文章目录 一、简介二、ArrayList详解2.1 动态数组2.2 扩容机制2.3 特点2.4 操作 三、LinkedList详解3.1 双向链表结构3.2 双向链表结构3.3 操作 四、HashMap详解4.1 概述4.2 内部实现4.2.1 哈希表结构4.2.2 散列冲突解决4.2.3 扩容机制 4.3 版本差异4.4 实操 五、HashTable5.1 …

安卓:LitePal操作数据库

目录 一、LitePal介绍 常用方法: 1、插入数据: 2、更新数据: 3、删除数据: 4、查询数据: 二、LitePal的基本用法: 1、集成LitePal: 2、创建LitePal配置文件: 3、创建模型类…