基于HTTP协议的API接口测试

2023-11-07

一、接口组成:请求+返回

接口请求 = 请求的URL + 请求头(User-Agent、Content-Type) + 请求方法(GET/POST/PUT/DELEte)+ 请求参数(拼接在URL                     后面/请求的body中)

二、接口测试关注点

 

三、postman测试接口

1、postman模拟接口请求:

①collections:存放单个测试接口

②动态变化部分引用变量:如,测试环境{{server_ip}}、{{token}}等

2、测试环境env配置:

配置环境路径,key-value方式,后面测试时直接使用该env,更换测试环境也只用调整value,或者保存多个环境信息,直接切换对应env即可

 

3、postman加载外部数据驱动文件:

定义外部数据文件,后缀.csv或.json

如果是csv文件,第一行为变量名,后面2...N定义变量值(每一行是一个case)

注意:变量名和值一一对应

①case_desc:测试点描述

②arg:接口请求的参数名称

③4个通用的测试点预期检查,定义为response_code,response_message,errCode,errMsg

如果是json文件,写成数组,数组的每一条json串就是一个case,其中key是变量名,value是变量值

①case_desc:测试点描述

②arg:接口请求的参数名称

③4个通用的测试点预期检查,定义为response_code,response_message,errCode,errMsg

4、加载外部数据文件

①通过Collection Runner加载外部数据文件,点击collection【Run】按钮,进入Runner界面

②迭代次数Iteration(可以理解为case数),postman会自动加载数据文件的case数,Data处选择外部数据文件载入,点击底部的【运行】按钮执行即可

注意:有的版本Data File Type默认为csv格式,选择csv文件文件加载即可;如果为json类型,需下拉选择为application/json类型,再加载json数据文件。

 

4、Tests断言:

通用断言:http状态码、message、errCode和errMsg,语法为JavaScript

try{
var jsonData = JSON.parse(responseBody) 
if (data.response_code !== "")
tests[data.case_desc+ "-验证后台返回response code是否'"+data.response_code+"'(实际='"+responseCode.code +"')"] = responseCode.code === data.response_code; 
if (data.response_message !== "")
tests[data.case_desc+ "-验证后台返回response message是否'"+data.response_message+"'(实际='"+responseCode.name +"')"] = responseCode.name ===data.response_message; 
if(data.errCode !== "")
tests[data.case_desc+ "-验证接口返回errCode是否'"+data.errCode+"'(实际='"+jsonData.errCode +"')"] = jsonData.errCode ===data.errCode;
if(data.errMsg !== "")
tests[data.case_desc+ "-验证接口返回errMsg是否'"+data.errMsg+"'(实际='"+jsonData.errMsg +"')"] = jsonData.errMsg ===data.errMsg;
}catch(error) {
tests["模块名称-接口名称,后台返回response异常(返回"+responseCode.code+" "+responseCode.name+")"]=false;
console.log("Response为:");
console.log(responseBody);
}

①responseBody:获取接口请求响应的body内容, JSON.parse(responseBody)    // json字符串转化json对象

②data:获取外部数据文件中的变量值, 通过【data.变量名方式引用

5、查看结果

通过【Collection Runner-Run Results】界面查看断言的结果

①标记为PASS:表示实际与预期的检查一致

②标记为FAIL:表示实际与预期的检查不一致

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于HTTP协议的API接口测试 的相关文章

  • Qt线程池waitForDone+等待框

    QThreadPool waitForDone 可阻塞线程 采用std function方式将其置于其它线程执行 避免阻塞线程同时可设置等待框 其它线程 生存期 单纯不阻塞线程可以直接不使用waitForDone 一 调用 DlgProce
  • Git技能树(5):分支管理

    Git技能树 5 分支管理 git 分支 几乎所有的版本控制系统都以某种形式支持分支 使用分支意味着你可以把你的工作从开发主线上分离开来 以免影响开发主线 在很多版本控制系统中 这是一个略微低效的过程 常常需要完全创建一个源代码目录的副本
  • 细粒度图像识别算法Mask-CNN 论文笔记

    细粒度图像识别算法Mask CNN 论文笔记 原文 Mask CNN Localizing Parts and Selecting Descriptors for Fine Grained Image Recognition 下载地址 ht
  • ChatGPT 实战:快速了解一个新领域

    前段时间在社区里看到有人在分享 如何用 ChatGPT 麦肯锡方法论洞察一个行业 感觉这个方法在陌生行业的研究上很有帮助 同时我也一直好奇 投资经理在一两周的时间里如何快速了解一个新领域并做出投资决策的 先解决你的第一个疑问 如果你没听过麦
  • 在 Linux 中查找文件的 4 种方式

    Preface 4 种命令方式 locate 系统数据库内部索引 适合找历史数据 全 whereis 所有二进制文件 which 环境变量内的二进制文件 find home type f b c d l name test txt 在哪找什
  • 标准IO函数练习

    一 使用fgets实现计算一个文件有几行 include
  • 数字钟24小时制:Multisim仿真(百度网盘)分享

    图如下 链接 https pan baidu com s 19r3razNjIso 2vYB64FcKA 提取码 vqwx
  • 一文入门Go静态单赋值(SSA)

    在上一篇文章 通过实例理解Go内联优化 1 中 我们探讨了Go编译器在编译中端进行的内联优化 内联优化基于IR中间表示进行 不过Go编译过程不止有一种IR表示 这点和龙书 编译原理 第二版 2 的在第六章 中间代码生成 一开始处的讲解是一致
  • 浪漫七夕

    迢迢牵牛星 皎皎河汉女 这一句古老的诗句 映照着那悠远的星空 千百年来 牛郎织女的爱情传说代代传承 唤起人们对纯真爱情的向往 岁月流转 这段美丽的传说孕育出七夕节 是一个祈福许愿 象征爱情的节日 更是我们中国人专属的情人节 不论是情侣还是夫
  • 基于SSM框架的员工管理系统

    一 视频展示 https www bilibili com video BV1xM4y1K71m 二 基本介绍 1 关键技术 开发工具 IntelliJ IDEA 数据库 MySQL 5 7 前端技术 Jquery Bootstrap JS
  • 7个Facebook营销技巧:让你的产品轻松出圈!

    据统计 当前Facebook的月活跃用户为29 34亿 是全球最为活跃的社交媒体平台 跨境电商卖家利用好这个平台 可以让自己的产品给更多人看到 如果你还不知道怎么才能用好Facebook做营销推广 那就接着往下看吧 加入Facebook群组
  • jQuery将json字符串转换为数组

    简单的jQuery代码片段将JSON字符串转换为对象数组 然后插入其值的输出 var data JQUERY4U DASHBOARD data widgets data parseJSON data each data function i
  • CVPR冠军方案分享

    近日 全球三大计算机视觉顶级会议之一CVPR如期举行 深兰科技DeepBlueAI团队斩获TinyAction Challenge 低分辨率视频行为识别挑战赛 的冠军 TinyAction Challenge是第六届动作识别国际挑战赛系列竞
  • PC市场逆势复苏之路:创新与多元化引领未来

    市场调研机构Canalys数据显示 今年一季度 中国市场整体PC出货量同比下降24 至890万台 已是连续第五个季度下跌 今年截至618结束 都没有一家主要的PC厂商愿意发战报 PC市场怎样走出寒冬 谈谈你的理解和看法 一 2022年下半年
  • hihoCoder_A+B

    A B Problem 描述 求两个整数A B的和 输入 输入包含多组数据 每组数据包含两个整数A 1 A 100 和B 1 B 100 输出 对于每组数据输出A B的和 样例输入 1 2 3 4 5 6 样例输出 3 7 11 inclu
  • Unity鼠标控制3D物体的移动、旋转、缩放

    一 鼠标控制3D物体移动 1 使用协程 using System Collections using System Collections Generic using UnityEngine public class ControlMove
  • 使用OpenSSL做RSA签名验证 支付宝移动快捷支付 的服务器异步通知

    由于业务需要 我们需要使用支付宝移动快捷支付做收款 支付宝给了我们 移动快捷支付应用集成接入包支付接口 见支付宝包 WS SECURE PAY SDK 支付宝给的服务器demo只有Java C PHP三种 而我们服务器端使用的是C 这其中就
  • 建立ftp文件服务器群,2.1.6FTP文件服务器搭建.docx

    文件服务器 FTP 配置说明 FTP安装及基本配置 FileZillaServer软件安装 FileZilla Server的安装相对简单 一路按照默认安装即可 如图1 1至图1 8所示 图1 1 点击 I Agree 图1 2 点击Nex
  • echarts在vue中使用不报错,但是不显示

    没有设置div标签的宽和高 div class charts div charts width 900px height 500px

随机推荐

  • 一些神奇好用的网站

    文章目录 1 ilovepdf 2 Google Scholar 镜像 3 LetPub 4 Connected Papers 5 Overleaf 1 ilovepdf 网址 https www ilovepdf com 功能 PDF文件
  • Mysql如何定位慢查询(面试题)

    Mysql如何定位慢查询 面试题 相关概念 慢查询分析 慢查询工具定位 Arthas Prometheus Skywalking Mysql慢查询日志 相关概念 分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划 还可以
  • 宝尊+艺康 面经

    baozun 研发岗 线下专场面试 宣讲之后现场笔试 笔试都是选择题 不难 38道题 30小题基础知识 比较广 8道推理题 数学推理和图形推理 图形难度大 笔试完之后等叫名字就去和面试官谈话 估计是根据笔试成绩 成绩高的先被叫去 每次面试基
  • TVS的典型应用(图文详解)

    TVS瞬态电压抑制二极管 是一种采用半导体工艺制成的单个PN 结或多个PN结集成的高效型电路保护器件 TVS内部芯片为半导体硅材料 具有很高的可靠性 响应速度快 低动态内阻 低钳位电压 电压精度高 击穿电压一般为 5 的偏差 封装多样化 贴
  • oracle字符集总结

    字符集总结author skatetime 2007 12 4 最近公司的数据库要迁移 所以就此机会总结下字符集的知识 以便自己对字符集更全面 更深入的认识 用了 一小天的时间 我是边测试边写 1 什么是oracle字符集 Oracle字符
  • 分布式事务概述

    1 基础概念 1 1 什么是事务 事务可以看做是一次大的活动 它由不同的小活动组成 这些活动要么全部成功 要么全部失败 1 2 本地事务 在计算机系统中 更多的是通过关系型数据库来控制事务 这是利用数据库本身的事务特性来实现的 因此叫数据库
  • 2022年大厂java高频面试题附带答案解析

    本篇分享的面试题内容主要包括 Java SpringMVC Spring Spring Boot Spring Cloud MyBatis ZooKeeper Dubbo Elasticsearch Redis MySQL RabbitMQ
  • 和枚举类相关的Map类——EnumMap

    1 EnumMap类的简介 EnumMap是一个与枚举类一起使用的Map实现 EnumMap中所有key都必须是单个枚举类的枚举值 创建EnumMap时必须显式或隐式指定它对应的枚举类 EnumMap在内部以数组形式保存 所以这种实现形式非
  • EFFECTIVE C++ (万字详解)(一)

    前言 effective C 是一本经典之作 其翻译较为贴合原著 但读起来未免有些僵硬而让人摸不着头脑 所以 我会以更为贴近中国人的理解 对此书进行一些阐释 条款01 把 C 看成一个语言联邦 C 由几个重要的次语言构成 C语言 区块 语句
  • js获取指定日期所在月份的第一天和最后一天,并遍历

    1 获取月份的第一天和最后一天 获取指定日期所在月份的第一天和最后一天 function getfirstDateAndlastDate dateStr let date new Date dateStr let year date get
  • npm-cli----Cannot find module 'D:\node\nodejs\node_module\bin\npm-cli.js'

    我输入 npm init 报这个错 输入 npm v 想查看npm的版本也是这个错 自己试着全局安装npm cli 还是这个错 反正只要和npm有关的命令通通是这个错 之后就开始我的百度之旅 发现根本就没一个帖子有用 该错还是错 我来说下我
  • 配置虚拟机桥接网络的步骤

    一 先打开虚拟机 然后点击左上角的编辑选项 然后点击虚拟网络编辑器 二 设置成桥接模式 并选择自动模式 然后点击确定 三 然后点击虚拟机内右上角的三个方块的图标 如图所示 四 点击有线连接下的齿轮图标 五 需要手动配置IPv4和IPv6网络
  • 二极管的工作原理,什么是二极管?

    二极管是一种电子器件 具有两不对称电导的电极 故名 二极 只允许电流由单一方向流过 所以最常应用其整流功能 二极管的工作原理 什么是二极管 二极管具有阳极和阴极两个端子 电流只能往单一方向流动 也就是说 电流可以从阳极流向阴极 而不能从阴极
  • 使用php语言开Excel的导入功能

    使用 PHP 语言开发 Excel 导入功能 你需要使用 PHPExcel 库 首先 你需要在你的 PHP 项目中安装 PHPExcel 库 你可以使用 Composer 来安装 如下所示 composer require phpoffic
  • C语言航空订票系统课程设计

    目录 1 设计目的 2总体设计和功能 3 菜单设计 4 各功能代码详解 闲话少扯 4 1 C语言文件的操作 4 2 读取航班信息 C语言知识回顾 4 3 打印航班信息 5 根据要求查找航班 航班号 起点站 终点站 6 订票功能 链表操作 前
  • STM32 HAL库:FreeRTOS系统 (带推荐使用除了Systick以外的时钟源问题及解决)

    1 简介 FreeRTOS是一个实时操作系统内核 作为一个轻量级的操作系统 功能包括 任务管理 时间管理 信号量 消息队列 内存管理 记录功能 软件定时器 协程等 可基本满足较小系统的需要 任务调度机制 优先级高的任务一旦就绪就能剥夺优先级
  • 在Android中使用Qt作为共享系统库

    Using Qt as shared system libraries in Android 在Android中使用Qt作为共享系统库 October 21 2022 by Tinja Paavosepp Comments 2022年10月
  • 如何在本地部署运行ChatGLM-6B

    在本篇技术博客中 将展示如何在本地获取运行代码和模型 并配置环境以及 Web GUI 最后通过 Gradio 的网页版 Demo 进行聊天 官方介绍 ChatGLM 6B 是一个开源的 支持中英双语的对话语言模型 基于 General La
  • selenium(练习)提取dou yu网站上的数据

    运行代码时 它会打开斗鱼网站并逐个打印每个房间的相关信息 打印出每个房间的标题 类型 所有者 观看人数和封面图片 import time from selenium import webdriver class Douyu object d
  • 基于HTTP协议的API接口测试

    一 接口组成 请求 返回 接口请求 请求的URL 请求头 User Agent Content Type 请求方法 GET POST PUT DELEte 请求参数 拼接在URL 后面 请求的body中 二 接口测试关注点 三 postma