接口自动化测试如何做?测试老鸟总结,接口测试数据构造大全......

news2024/12/23 18:32:58

目录:导读

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


前言

接口参数的数据获取:

接口文档:接口文档通常会包含接口需要的请求参数和返回结果的格式、类型等信息;

Python接口自动化测试:https://www.bilibili.com/video/BV16G411x76E/

测试用例设计:根据测试用例设计的需求,可以确定需要哪些请求参数以及期望的响应结果;
业务数据:从实际业务场景中获取数据,以确保测试数据的真实性和代表性;
数据库:从数据库中获取数据,作为接口测试的输入参数;
随机数据生成器:通过随机数据生成器生成测试数据,以增加测试用例的多样性和覆盖率。

在选择数据来源时,需要根据具体情况进行选择。如果有可靠的接口文档,可以直接从文档中获取请求参数和预期结果;

如果测试用例设计已经明确了需要测试的功能和边界条件,可以根据需求设计测试数据;如果需要模拟实际业务场景,可以从业务数据或者数据库中获取数据。最后,为了提高测试用例的多样性和覆盖率,可以使用随机数据生成器。

在做接口自动化测试的过程中,接口参数的数据应该从哪里来比较好呢?

是写死、从业务流中生成动态数据、还是从数据库获取。

如果是写死,那么一旦切换环境,测试数据可能就无法使用;
如果是从业务流中获取,万一上一个接口出了问题,那么下一个接口不就会跟着出错呢?
如果是从数据库获取,数据库中可能存在脏数据,是否会造成测试接口返回的信息不准确呢?

接口数据生成

1、手动录入
通过手动创建测试数据,包括各种不同的输入、参数组合。

这种方式比较耗费时间和人力成本,适用于数据量较少的情况,不适合大规模的测试,且切换环境后可能就无法使用。

2、动态数据
从用例中生成,或使用数据生成工具生成需要的测试数据。

接口返回数据
在测试用例执行过程中,从接口返回的数据中提取需要的数据,再将这些数据用于下一个接口的测试。这种方法适用于接口之间有依赖关系的情况。比如:上一个接口查询商品,下一个接口添加购物车。

接口之间有依赖关系的场景,可能出现上一个接口报错,导致下一个接口也失败。对于这种情况,照常传参即可,因为多接口串联的用例,本身就是必须要保证每个接口都是正确的。上游控制不稳定,下游自然也会有问题,这个解决的下手点不在于接口如何传参,而是确定前置条件是否满足。

数据生成工具
使用数据生成工具自动生成符合要求的测试数据,例如:Faker、Mock、Mockito 等,可以根据数据类型、长度、规则等条件来生成数据,这些数据可能是时间戳、随机数字、随机字符串等。

这种方式适用于需要大量随机数据的情况,可以加快测试速度,同时提高测试的可复用性。

3、静态数据
静态数据是指一些不变的数据,这些数据可以被硬编码到测试脚本中。

4、配置数据
对于接口地址、端口号、数据库信息等环境相关配置,通常存储在专门的配置文件中,供全局调用。

5、从数据库中获取
在测试用例执行前,通过 SQL 语句查询数据库获取需要的测试数据,再将数据导入测试用例中。

这种方法适用于需要大量数据的情况。

在实际测试中,可能会组合使用以上几种数据来源来生成接口自动化测试数据。

无论使用哪种方式获取测试数据,都需要保证数据的准确性和完整性,以及数据的一致性和合理性。

同时,还需要根据接口的不同情况,设计不同的测试数据,包括正常数据、异常数据、边界数据等。应遵循测试用例之间保持独立性,各个用例不会关联影响的原则。

为避免测试环境出现大量测试数据以及脏数据,可将用例形成闭环,例如在后置操作中进行删除。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有拼尽全力,才能看到最美的风景。奋斗吧,即使路上会有坎坷和挫折,但只要不放弃,就一定能够达到心中所想!

路漫漫其修远兮,吾将上下而求索。每一步都是向着梦想的跨越,每一次努力都是为了更好的自己。只要不放弃,成功就在前方等待着你!

不经历风雨,怎能见彩虹;不经历挫折,怎能成就伟业。让每一次跌倒都成为迈向成功的脚步,坚定前行,奋斗不止!

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

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

相关文章

Linux复习 / 线程相关----线程概念与控制 QA梳理

文章目录前言Q&A线程概念Q:线程和进程的区别?(为什么要有线程,从进程的角度说明这个问题)Q:Linux是如何设计线程的?Q:学习了线程后,你能说说进程和线程最大的区别是什…

博客系统(后端编程)

这里还是这四个页面: 博客列表页 博客详情页 登录页 博客编辑页 一、准备工作: 1.引入依赖 引入mysql,servlet,jackson的依赖,并且把之前的前端页面拷贝进去. 2.创建目录 并且把相关代码复制进去. 此时目录就完成了!!! 3.复制前端代码 直接ctrlv我们之前的前端代码到web…

目标检测YOLO系列-YOLOV7运行步骤(推理、训练全过程)

下载源代码:点击下载 进入项目根目录并执行以下命令安装requirements.txt中的相关依赖 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple官网下载权重yolov7.pt(测试使用)、yolov7-tiny.pt(训练使用…

【C++】哈希表:开散列和闭散列

📝 个人主页 :超人不会飞)📑 本文收录专栏:《C的修行之路》💭 如果本文对您有帮助,不妨点赞、收藏、关注支持博主,我们一起进步,共同成长! 目录前言一、基于哈希表的两个…

Spring MVC请求处理流程分析

Spring MVC请求处理流程分析一 Spring MVC 请求处理流程二 Spring MVC 请求处理流程源码分析2.1架构图解2.2 重要时机点分析2.3核心步骤分析2.3.1 getHandler⽅法剖析2.3.2 getHandlerAdapter⽅法剖析2.3.3 ha.handle⽅法剖析2.3.4 processDispatchResult⽅法剖析三 Spring MVC…

Ruby2D总结

Ruby学习心得 学了几天,Ruby2D这个项目我差不多把教程里面的东西做完了,感觉还好,只要每天一有空的话就去做的话就可以快速做好一个项目,不过还是会有一点虚浮感,但学习也是一个不能拖的事情,所以为了平衡…

【SpringBoot2】SpringBoot运维实用篇

SpringBoot运维实用篇 YW-1.SpringBoot程序的打包与运行 ​ 刚开始做开发学习的小伙伴可能在有一个知识上面有错误的认知,我们天天写程序是在Idea下写的,运行也是在Idea下运行的。 ​ 但是实际开发完成后,我们的项目是不可能运行在自己的电…

Java——树的子结构

题目链接 牛客在线oj题——树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下&am…

【C++】引用(上)【深度全面解析】

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

stm32cubemx IAP升级(三)

stm32cubemx IAP升级- UARTDMA实现不定长收发数据 板卡:Nucleo-L412 平台:macbook pro 工具:vscode stm32cubemx stm32cubeProgramer cmake toolchain Stm32CubeMx的配置 选择开启一路串口并配置成DMA,并使能中断,配…

优思学院|质量改进必备技能:克罗斯比的14步骤全面解析

菲利普克罗斯比(Philip Crosby)是一位著名的质量管理专家,被誉为"零缺陷之父"、“现代质量运动之父”。他于1926年出生于美国俄亥俄州,曾在美国空军服役。后来他在ITT公司和马丁-马里埃塔公司等企业担任质量管理师和高级…

【pycharm】pycharm配置svn

目录 1、配置svn地址 2、配置svn按钮 3、配置svn地址 4、checkout项目到PycharmProjects 5、使用 6、打开项目或者checkout项目 7、配置虚拟环境 8、虚拟环境安装库 1、配置svn地址 Seting-version control-subversion 找不到svn.exe 点我博文 2、配置svn按钮 VCS--…

C语言课设项目-51单片机-独立按键与矩阵按键

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一、独立按键 1.按键介绍 2.独立按键原理 3.编写独立按键控制程序 二、矩阵按键 1.矩阵按键的由来 2.…

《暮色心迹》开机大吉,在上虞上演一场蓄谋已久的爱情对弈

4月15日,由秀合影视(浙江) 有限公司、辰耀影业文化传媒(北京)有限公司、浙江中创华视文化发展有限公司出品,浙江诺然文化传媒有限公司、北京幻想纵横网络技术有限公司、浙江知马影视服务有限公司、浙江沐阳…

最落魄的时候,身上带着《毛选》

最落魄的时候,包里只带《毛选》的腕儿 史玉柱:营销大咖,早年创业起伏大 东山再起的腕儿 趣讲大白话:成功是用心血浇灌的 【趣讲信息科技133期】 **************************** 90%的企业是销售驱动型 所以要把品牌和营销的事搞透彻…

Buyflag

拿到题目可以获取到几条关键提示如果你想要买flag你必须是CUIT的学生你必须回答正确的密码查看源码也发现有php源码提示信息要求通过POST方式传参,并利用isset检测是否有password字段is_numeric是检测password字段是否为数字或者数字字符串,如果为数字则…

集合,Collection接口,Iterator(迭代器),List接口和方法,ArrayList底层结构和源码分析

数组的不足 长度开始必须指定,而且一旦指定,不能修改保存的必须为同一类型的元素使用数组进行增加/删除元素的示意代码麻烦SuppressWarnings({"all"})抑制警告集合 可以动态保存任意多个对象,使用比较方便提供了一系列方便的操作对…

【零基础学习】Javascript 快速入门(完整篇)简单、适合初学者

【零基础学习】Javascript 快速入门前言:如何解决错误提示(Error)Uncaught TypeError: Cannot set properties of null (setting innerHTML)Uncaught ReferenceError: displayDate is not defined at HTMLButtonElement.onclick安装Visual St…

剪枝与重参第八课:ACNet、DBB、RepVGG重参

目录ACNet、DBB、RepVGG重参前言1. 并行多分支结构1.1. 并行多分支结构 Demo2. ACNet2.1 ACNet简述2.2 init2.3 forward2.4 swtich to deploy2.5 get_equivalent_kernel_bias2.6 Conv2d与BN的融合(重参)2.7 Conv1x3Conv3x1Conv3x3的融合(重参)2.8 模型导出2.9 完整示例代码总结…

【电路理论】KCL、KVL、线性直流电路各大方法、定理详解

博主简介:努力学习的22级计科生一枚~博主主页: 是瑶瑶子啦所属专栏: 电路理论 目录一、KCL、KVL定律1.1:KCL1.2:KVL1.3:总结二、线性直流电路2.1:电阻网络等效变换2.1.1:电阻等效——三角&星…