深入理解接口测试:实用指南与最佳实践5.0(三)

在这里插## 标题入图片描述

> 						大家好,我是程序员小羊!

✨博客主页: https://blog.csdn.net/m0_63815035?type=blog

💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识
📢博客专栏: https://blog.csdn.net/m0_63815035/category_11954877.html
📢欢迎点赞 👍 收藏 ⭐留言 📝
📢本文为学习笔记资料,如有侵权,请联系我删除,疏漏之处还请指正🙉
📢大厦之成,非一木之材也;大海之阔,非一流之归也✨

在这里插入图片描述

前言

这一阶段是接口测试的学习,我们接下来的讲解都是使用Postman这款工具,当然呢Postman是现在一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会 经常使用。后期讲解大概分三部分进行讲解:
1、根据接口API文档编写接口测试用例
2、使用Postman工具进行接口测试,并能够对大量接口用例进行管理、对接口响应结果进行断言、处理多接口的依赖及生成测试报告
3、使用Python+Requests封装的接口测试框架,实现接口对象封装、测试用例编写、测试数据管理及生成测试报告

目录

  • 前言
  • day03 一、(Postman断言、关联、参数化)
  • 学习目标
  • 能够使用Postman对响应结果自动断言
  • 能够使用Postman处理关联数据
  • 能够使用Postman进行接口参数化处理
    • 一、Postman断言
    • 二、Postman关联
  • 三、Postman参数化
  • 接口测试-day03-作业
  • 接口测试-day03-作业-答案

day03 一、(Postman断言、关联、参数化)

学习目标

能够使用Postman对响应结果自动断言

能够使用Postman处理关联数据

能够使用Postman进行接口参数化处理

一、Postman断言

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、Postman关联

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
案例2:

使用 postman 关联技术,实现 添加员工 接口。登录成功,返回的“令牌“被 添加员工 接口依赖。
思路:
1.发送登录请求(必须登录成功),获取响应结果
2.从 ison 响应结果中,提取 data 值。拼接上“Bearer"前缀。2.1 注意:Bearer单词不能拼错,首字母必须大写,只有一个空格
3. 将拼接无误的 令牌,存入 环境变量。 从“眼睛” 图标查看。
4.添加员工 接口,从 环境变量 中,提取 令牌。设置到请求头中,作为 Authorization 的 值。
5.填写 添加员工 接口 其他信息(post、URL、请求体),发送请求。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、Postman参数化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接口测试-day03-作业

1,下文中关于断言的描述正确的是?

// 测试响应状态码是400
pm.test("测试响应状态码是300", function(){pm.response.to.have.status(200)
});

A:判断接口返回的响应状态码是不是300

B:判断接口返回的响应状态码是不是200

C:判断接口返回的响应状态码是不是400

D:以上都不正确。这个不是判断http响应状态码的断言。

答案:


2,postman提供了常用的断言代码片段,请根据下文中给出断言代码片段和实际代码填入正确的匹配关系

Status code:Code is 200   (  )
Response body : Contains string  (  )
Response body : JSON value check  (  )
A : 
pm.test("Test", function () {var jsonData = pm.response.json();pm.expect(jsonData.success).to.eql(true);
});B :
pm.test("Test", function () {pm.response.to.have.status(200);
});C :
pm.test("Test", function () {pm.expect(pm.response.text()).to.include("test");
});

3, 假设下列json数据是某接口返回的响应数据,请选出正确选项

{"username":"13800000002","data": {"nickname":"德玛西亚","mobile":"13800000002","birthday":"123456","hopy":{"read":"三体", "sport":"basketball"}}
}

A :要提取 username 的数据,需要使用 pm.response.json().username

B :要提取 birthday 的数据,需要使用 pm.response.json().birthday

C : 要提取 sport 的数据,需要使用 pm.response.json().data.hopy.sport

D : 以上说法全部错误

答案:


4,参照课堂 添加员工 案例,使用postman关联技术,实现 ihrm系统的 查询员工。注意有 2 处依赖。


答案:

5, 针对ihrm登录接口,将 请求数据 和 断言数据 组织成JSON文件,并使用postman批量运行。测试5条数据即可。

接口测试-day03-作业-答案

1,下文中关于断言的描述正确的是?

// 测试响应状态码是400
pm.test("测试响应状态码是300", function(){pm.response.to.have.status(200)
});

A:判断接口返回的响应状态码是不是300

B:判断接口返回的响应状态码是不是200

C:判断接口返回的响应状态码是不是400

D:以上都不正确。这个不是判断http响应状态码的断言。

答案:

B

2,postman提供了常用的断言代码片段,请根据下文中给出断言代码片段和实际代码填入正确的匹配关系

Status code:Code is 200   ( B )
Response body : Contains string  ( C )
Response body : JSON value check  ( A )
A : 
pm.test("Test", function () {var jsonData = pm.response.json();pm.expect(jsonData.success).to.eql(true);
});B :
pm.test("Test", function () {pm.response.to.have.status(200);
});C :
pm.test("Test", function () {pm.expect(pm.response.text()).to.include("test");
});

3, 假设下列json数据是某接口返回的响应数据,请选出正确选项

{"username":"13800000002","data": {"nickname":"德玛西亚","mobile":"13800000002","birthday":"123456","hobby":{"read":"三体", "sport":"basketball"}}
}

A :要提取 username 的数据,需要使用 pm.response.json().username

B :要提取 birthday 的数据,需要使用 pm.response.json().birthday

C : 要提取 sport 的数据,需要使用 pm.response.json().data.hobby.sport

D : 以上说法全部错误

答案:

A、C

4,参照课堂 添加员工 案例,使用postman关联技术,实现 ihrm系统的 查询员工。注意有 2 处依赖。

5, 针对ihrm登录接口,将 请求数据 和 断言数据 组织成JSON文件,并使用postman批量运行。测试5条数据即可。

// login.json 数据文件
[{"mobile":"13800000002","password":"123456","code":10000},{"mobile":"13800138002","password":"123456","code":20001},{"mobile":null,"password":"123456","code":20001},{"mobile":"1380013800","password":"123456","code":20001},{"mobile":"13800abcd*#","password":"123456","code":20001},{"mobile":"13800000002","password":null,"code":20001}
]
// postman -- body
{"mobile":"{{mobile}}","password":"{{password}}"}
// postman -- Tests
console.log("预期结果=" + data.code)pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.code).to.eql(data.code);console.log("实际结果=" + jsonData.code);
});
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文

在这里插入图片描述

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

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

相关文章

Python实现云原生应用的后端开发

目录 1. 云原生后端开发基础2. 云原生架构与核心概念3. Python实现云原生后端应用1. 基本的微服务实现2. 容器化应用:Docker化微服务3. 使用Kubernetes进行部署 4. 云原生后端开发案例与代码实现案例 1:用户认证服务(使用策略模式&#xff09…

使用electron-egg把vue项目在linux Ubuntu环境下打包并安装运行

electron-egg一个入门简单、跨平台、企业级桌面软件开发框架https://www.kaka996.com/electron-egg 跳转地址 1,使用 git下载代码到本地,如果没有git需要进行安装 # gitee git clone https://gitee.com/dromara/electron-egg.git # github git clone https://github.com/dro…

linux中报文从网卡到用户态recv的架子

分享一篇后台服务器性能优化之网络性能优化,希望大家对Linux网络有更深的理解。 曾几何时,一切都是那么简单。网卡很慢,只有一个队列。当数据包到达时,网卡通过DMA复制数据包并发送中断,Linux内核收集这些数据包并完成…

2019年下半年试题二:论软件系统架构评估及其应用

论文库链接:系统架构设计师论文 论文题目 对于软件系统,尤其是大规模复杂软件系统而言,软件系统架构对于确保最终系统的质量具有十分重要的意义。在系统架构设计结束后,为保证架构设计的合理性、完整性和针对性,保证系…

网络安全-蓝队基础

声明 学习视频来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 ✍🏻作者简介:致…

集群策略选择vs生产需求点(负载/可用性、灾备/安全性)

• 集群策略分类 负载均衡靠: -主从。读写分离。 灾备靠: -同步( 主备,一定带同步功能。主从,一定带同步功能。主主,一定带同步功能。由于主备、主主不常用,同步基本等价于主从。)…

AI开发-三方库-PyTorch-NumPy

1 需求 官网:https://numpy.org/ 2 接口 3 示例 4 参考资料

DAY112代码审计PHP开发框架POP链利用Yii反序列化POP利用链

一、pop1链的跟踪 1、路由关系 2、漏洞触发口unserialize(base64_decode($data)); 2、__destruct(),魔术法方法调用close函数方法 3、未找到利用链,尝试__call魔术方法 4、逆推找call_user_func 函数 第一部分 namespace yii\db; class BatchQueryResu…

Maven 构建项目

Maven 是一个项目管理和构建工具,主要用于 Java 项目。它简化了项目的构建、依赖管理、报告生成、发布等一系列工作。 构建自动化:Maven 提供了一套标准化的构建生命周期,包括编译、测试、打包、部署等步骤,通过简单的命令就可以执…

任务调度中心-XXL-JOB使用详解

目录 详解 调度中心 执行器 原理 快速入门 源码仓库地址 1.初始化数据库 2.配置调度中心 1.解压源码 2.需改配置文件 3.启动调度中心 3.配置执行器 1.引入pom依赖 2.修改配置文件 3.执行器组件配置 4.部署执行器项目 4.开发第一个任务 BEAN模式(类…

PostgreSQL 无法为连接创建新的进程

PostgreSQL could not fork new process for connection 前几天在使用 PostgreSQL 数据库的过程中遇到这样一个错误。 could not fork new process for connection: Resource temporarily unavailable 看字面意思是无法克隆一个新的进程供连接使用,资源暂时不可用。…

HBase 安装与基本操作指南

以下是关于 Apache HBase 安装、配置以及简单操作的详细指南: HBase 简介 Apache HBase 是一个基于 Hadoop 的分布式数据库,擅长处理大规模、结构化的海量数据。它采用行列式存储方式,与 Hadoop 和 HDFS 紧密结合,是支持大数据实…

ES6基础

一、变量声明 1.let 语法:let 变量名 值; 特点:存在块级作用域;不存在变量提升(考虑暂时性死区),即变量一定要在声明后使用,否则报错;不允许重复声明(包括普通变量和函…

ROM修改进阶教程------安卓14 安卓15去除app签名验证的几种操作步骤 详细图文解析

在安卓14 安卓15的固件中。如果修改了系统级别的app。那么就会触发安卓14 15的应用签名验证。要么会导致修改的固件会进不去系统,或者进入系统有bug。博文将从几方面来解析去除安卓14 15应用签名验证的几种方法。 💝💝💝通过博文了解: 1💝💝💝-----安卓14去除…

基于STM32设计的大棚育苗管理系统(4G+华为云IOT)_265

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 参考文献1.6 系统框架图1.7 系统原理图1.8 实物图1.9…

spring boot项目打成war包部署

1.修改pom.xml 在 pom.xml 里设置 <packaging>war</packaging>2.移除嵌入式tomcat插件 在 pom.xml 里找到spring-boot-starter-web依赖&#xff0c;在其中添加如下代码&#xff0c; <dependency><groupId>org.springframework.boot</groupId>&l…

植物明星大乱斗1

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 scene.hmenuScene.hgameScene.hmainscene.cppmenuScene.cppgameScene.cpp scene.h #pragma once #include <graphics.h>/* 场景菜单角色选择游戏 */ class Scene { public:virtual ~Scene() 0; public:virt…

校园二手交易网站毕业设计基于SpringBootSSM框架

目录 一、引言 二、需求分析 2.1用户需求分析 2.1.1学生用户 2.1.2管理员 2.2系统功能需求 2.3系统非功能需求 ‌2.4技术需求 ‌2.4.1 技术选择 ‌2.4.2系统架构‌ 三、详细设计 3.1系统架构设计‌ ‌3.2前端设计‌ ‌3.3后端设计‌ ‌3.4数据库设计‌ 本文介绍…

批量规范化与ResNet-paddle

批量规范化与ResNet——paddle部分 本文部分为paddle框架以及部分理论分析&#xff0c;torch框架对应代码可见批量规范化与ResNet import paddle print("paddle version:",paddle.__version__)paddle version: 2.6.1批量规范化 批量规范化&#xff08;Batch Norma…

云速搭助力用友 BIP 平台快速接入阿里云产品

用友 BIP 是用友在 2017 年开始战略投入、规模研发的全新一代的产品&#xff0c;作为全球领先的企业数智化平台与应用软件之一&#xff0c;用友 BIP 商业创新平台&#xff08;Yonyou Business Innovation Platform&#xff09;是用友采用新一代信息技术&#xff0c;按照云原生、…