接口自动化实战-postman

news2024/11/26 15:38:32

1.测试模型

在这里插入图片描述
单元测试并非测试工程师的本职工作,它属于开发工程师的工作,开发进行单元测试的情况我们不知道,为了确保系统尽可能没有Bug,于是接口测试在测试工程师这里就变得由为重要了。实际工作中为菱形模型。
在这里插入图片描述
接口测试能更早的进入系统测试,当接口完成之后就可以编写接口测试用例。

2.外部接口和内部接口

内部接口就是系统内部调用的接口。比如你在网上购物时,要先登录系统,然后将商品加入购物车,再接下来支付订单。那么,从添加商品到购物车,再到支付订单,这一长串的流程之间,就是通过系统内部接口来完成的。

外部接口相对于内部接口而存在的一个概念,比如你在购物后点击付款时,页面会跳转到支付系统,等你完成支付流程后,再跳转回订单页,在这样的流程中,都会涉及系统对外的接口,还有,比如说付款工程的支付接口、配送过程的物流接口等等。

3.设计接口测试用例

所有
需要清楚的三点:

  • ,参数的含义以及来源
    你也要知道这个参数的赋值是从哪里来的,是从其他页面的返回值中得到的?还是 JS 生成的?如果是其他页面或者接口返回的,那么,是哪一个接口返回的哪个字段?

  • 参数的作用域
    参数的作用域指的是这个参数在这个接口中是做什么用的,它在哪一个访问周期里是一直存在的,它是否导致了业务逻辑分支等。比如说,这个参数是用来验证用户权限吗?它的验证算法是什么?

  • 返回值的含义
    当你需要和这个接口产生交互的时候,就可以快速地拿到对应参数的含义,完成业务逻辑上下文的参数串联了。

4.对于有接口文档,进行接口测试

post请求 url
请求头
在这里插入图片描述
直接在接口工具上面输入接口信息即可

5.对于没有接口文档,进行接口测试

先抓包,可以用浏览器抓包,页面上右键-检查,然后点Network就可以看到抓包的信息,然后再填到接口工具,比如postman。

  • post请求
    1)头部信息
    在这里插入图片描述

需求关注的请求头:Cookie,Content-Type,Blade-Auth,Authorization,token。有这些值的话需要填到postman的请求头上去。
HOST,它表示指定访问的服务器域名;
Connection 的值为 keep-alive,这表示需要持久连接;
Accept,它表示客户端可以接受的内容类型为 application/json, text/plain, / ;t
User-Agent,它说明请求是从什么浏览器发出去的;
Sec-Fetch-Site 和 Sec-Fetch-Mode,它们是 JS 中对跨域的一些设置;
Accept-Encoding 设置为 gzip、deflate、br,这表示可以支持的 Web 服务器返回内容压缩编码类型;
Accept-Language,它表示接受的语言。

在这里插入图片描述
2)入参
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)出参
在这里插入图片描述
{
“code”: 200,
“success”: true,
“data”: {
“link”: “pig/count/video/20230206/17/3af76f7e84319f66f1c6260dc27a82c3.mp4”,
“name”: “pig/count/video/20230206/17/3af76f7e84319f66f1c6260dc27a82c3.mp4”,
“originalName”: “5.mp4”,
“attachId”: “f7cd00b1516974d42232cb12c24175b2”
},
“msg”: “操作成功”
}

4)后置处理
下个接口的入参需要用到上个接口的出参的值,写js脚本提取上个接口出参的值,然后赋值给全局变量。下个接口入参值使用{{name}}接口关联起来了。
在这里插入图片描述
5)前置处理
是在执行该接口之前需要执行的脚本,比如密码被加密了,在执行接口前需要解密,然后再请求。又比如在跳转其他url
在这里插入图片描述
在这里插入图片描述

  • get请求
    在这里插入图片描述

6.怎么形成接口自动化测试

我们将接口抓包之后,在postman上将单个接口都跑通了,一个url算一个接口,然后将多个单接口组合起来形成业务流程接口。
比如生猪点数这个业务流程,是由上传文件接口+点数接口+查询结果接口组合的。为什么要组合呢,是因为传进去的参数不同,返回的结果不同,再加上接口之间是关联的,所有需要做成业务流程接口,然后就可以实现接口自动化测试了。

7.为何还要测试脚本,开发测试框架

现在接口测试工具很多,也很方便使用,为什么还要写测试脚本,写起来困难,而且没接口测试工具看起来更直观。

接口测试工具的缺点:随着你的接口测试项目逐渐增加,你会发现越来越难以管理它的脚本,如果你接到了一个它无法完成的接口类型的测试任务,就不得不再去寻找另一个工具。所以,开发你自己的测试框架非常重要。

Python写接口测试脚本见我另外一篇博文接口自动化测试
在写脚本的过程中,还可以结合接口测试工具生成的脚本,然后修改放到自己的测试框架中。

在这里插入图片描述

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

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

相关文章

CentOS8基础篇1:VMware 安装CentOS8 教程

一、准备工作 1.准备一台服务器 1)下载VMware https://jssoft.bangtengxinxi.com/vmware/index360.html?source360a&unitid1643144282&unitvmware&e_creative8925351127&qhclickid06762bb36ff752c6 2.准备CentOS8 系统盘 1)CentOS8官…

身份证号码正则表达式详解

1、结构: 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 地址码:(身份证号码…

基于图的下一代入侵检测系统

青藤云安全是一家主机安全独角兽公司,看名字就知道当前很大一块方向专注云原生应用安全,目前主营的是主机万相/容器蜂巢产品,行业领先,累计支持 800万 Agent。当前公司基于 NebulaGraph 结合图技术开发的下一代实时入侵检测系统已…

[数据库]初识数据库

●🧑个人主页:你帅你先说. ●📃欢迎点赞👍关注💡收藏💖 ●📖既选择了远方,便只顾风雨兼程。 ●🤟欢迎大家有问题随时私信我! ●🧐版权:本文由[你帅…

[C语言]offseto宏的认识与模拟实现

目录 1.offseto的认识 2.offseto的模拟实现 1.offseto的认识 在结构体中,因为内存对齐的存在我们需要进行计算才能知道结构体成员的地址对于结构体首地址的偏移量为多少,今天认识的offseto就是将结构体中成员地址对于结构体首地址的偏移量的大小所计算…

静态代理,JDK动态代理,Cglib动态代理的写法

目录静态代理JDK动态代理Cglib动态代理小结使用代理模式可以在不改变被代理类的情况下,实现对被代理类的进行增强。 例如:在被代理类中有一个div()方法,方法中只是计算除法,然而想要对其进行增强,如添加异常捕获等。 …

Element UI框架学习篇(一)

Element UI框架学习篇(一) 1.准备工作 1.1 下载好ElementUI所需要的文件 ElementUI官网 1.2 插件的安装 1.2.1 更改标签的时实现自动修改 1.2.2 element UI提示插件 1.3 使用ElementUI需要引入的文件 <link rel"stylesheet" href"../elementUI/element…

【JavaScript】理解面向对象以及构造函数的推导

&#x1f4bb; 【JavaScript】理解面向对象以及构造函数的推导 &#x1f3e0;专栏&#xff1a;JavaScript &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向&#xf…

面试题:Redis网络模型

1 用户空间和内核空间以Centos 7 linux操作系统为例。计算机系统被内核操控&#xff0c; 内核被应用操控。为了避免用户应用导致冲突甚至内核崩溃&#xff0c;用户应用与内核是分离的进程的寻址空间会划分为两部分:内核空间、用户空间。用户空间只能执行受限的命令(Rin3&#x…

解决Mac 安装应用提示:xx已损坏,无法打开。 您应该将它移到废纸篓问题

许多新手mac 用户安装应用得时候会出现 “已损坏&#xff0c;无法打开。您应该将它移到废纸娄” 导致无法正常安装&#xff0c;其实应用软件b并没有损坏&#xff0c;只是系统安全设置&#xff0c;我们改如何解决呢&#xff1f; 1、开启允许任何来源 苹果已经取消了允许“任何…

以数据驱动管理场景,低代码助力转型下一站

数据驱动 数据驱动&#xff0c;是通过移动互联网或者其他的相关软件为手段采集海量的数据&#xff0c;将数据进行组织形成信息&#xff0c;之后对相关的信息讲行整合和提炼&#xff0c;在数据的基础上经过训练和拟合形成自动化的决策模型&#xff0c;简单来说&#xff0c;就是…

Python项目实战——外汇牌价(附源码)

前言 几乎每个人都在使用银行卡&#xff0c;今天我们就来爬取某行外汇牌价&#xff0c;获取我们想要的数据。 环境使用 python 3.9pycharm 模块使用 requests 模块介绍 requestsrequests是一个很实用的Python HTTP客户端库&#xff0c;爬虫和测试服务器响应数据时经常会用到&…

5分钟搞懂 强缓存与协商缓存

Ⅰ、http缓存 HTTP 缓存策略 分为 > 「强制缓存」 和 「协商缓存」 为什么需要 HTTP 缓存 呢 ? &#x1f447; 直接使用缓存速度 >> 远比重新请求快 缓存对象有那些呢 &#xff1f;&#x1f447; 「图片」 「JS文件」 「CSS文件」 等等 文章目录Ⅰ、http缓存Ⅱ…

震惊!邻桌的程序猿做可视化报告竟然比我还快,带着好奇心我打开了他的电脑,发现惊天秘密,原因竟是...

其实&#xff0c;本文就是想分享一个做可视化的捷径&#xff01; 制作可视化的方式有千千万。 Excel 控若能轻车熟路驾驭 VBA&#xff0c;能玩出各种花来&#xff0c;再不济借助图表插件外援也能秒杀一众小白选 手。 会编程的&#xff0c;Echarts 几十行代码&#xff0c;分分…

Flink反压如何排查

Flink反压利用了网络传输和动态限流。Flink的任务的组成由流和算子组成&#xff0c;那么流中的数据在算子之间转换的时候&#xff0c;会放入分布式的阻塞队列中。当消费者的阻塞队列满的时候&#xff0c;则会降低生产者的处理速度。 如上图所示&#xff0c;当Task C 的数据处…

nuxt 学习笔记

这里写目录标题路由跳转NuxtLinkquery参数params参数嵌套路由tab切换效果layouts 文件夹强制约定放置所有布局文件&#xff0c;并以插槽的形式作用在页面中1.在app.vue里面2.component 组件使用Vue < component :is"">Vuex生命周期数据请求useFetchuseAsyncDat…

鸿蒙设备学习|快速上手BearPi-HM Micro开发板

系列文章目录 第一章 鸿蒙设备学习|初识BearPi-HM Micro开发板 第二章 鸿蒙设备学习|快速上手BearPi-HM Micro开发板 文章目录系列文章目录前言一、环境要求1.硬件要求2.软件要求3.Linux构建工具要求4.Windows开发工具要求5.工具下载地址二、安装编译基础环境1.安装Linux编译环…

【速通版】吴恩达机器学习笔记Part1

准备速通一下吴恩达的机器学习 很快做个笔记5.2.3 监督学习 part 2_哔哩哔哩_bilibili 1.概述&#xff08;P1-P3) ML是AI的重要部分&#xff0c;AI的目标是AGI&#xff08;artificial general intelligence&#xff09;但是目前就。。。。 supervised learning&#xff1a;目…

如何开发L2毫秒接口?

L2毫秒接口普遍应用于大众的日常生活中&#xff0c;并且很多的企业通过api进行数据内容的调用&#xff0c;从而在技术上和成本上得到福利。 进行数据的整合与共享是L2毫秒接口的主要用途之一&#xff0c;所以开发L2毫秒接口就必须慎重&#xff0c;注意安全隐患&#xff0c;防止…

VHDL语言基础-组合逻辑电路-其它组合逻辑模块

目录 多路选择器&#xff1a; 逻辑功能&#xff1a; 常用的类型&#xff1a; 4选1多路选择器的实现&#xff1a; 求补器&#xff1a; 求补器的实现&#xff1a; 三态门&#xff1a; 三态门的应用实例&#xff1a; 三态门的实现&#xff1a; 缓冲器&#xff1a; 什么是…