区块链安全-----接口测试-Postman

Postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易 用性好 。无论是开发人员进行接口调试,还是测试人员做接口测试,Postman都是我们的首选工具 之一 。 更早的接入测试,更早的发现问题。修改问题的代价更小。保证安全性,更容易实现自动化。 接口测试更多的检测外部系统和系统间,以及内部各个子系统间的交互点。 测试重点:接口参数传递的正确定,接口功能实现的正确性,输出结果的正确性,对各种异常 情况的容错处理的完整性和合理性。

API:application programming interface。是服务器端预先定义好的方法,是交互的桥梁。

目录

一.postman下载和安装

1.Postman工具特点

二.postman下载

1.创建第一个例子

2.Collection集合

3.发送简单的GET请求

携带参数的GET请求

4.JSON

5.发送POST请求

6.添加文件格式请求参数

三.查看接口响应

四.Postman添加断言

五.变量

1.新建环境变量

2.切换环境变量

3.定义集合变量

六.动态参数

一.postman下载和安装

1.Postman工具特点

  • 图形用户界面简单易用:Postman提供了直观且易于操作的图形用户界面,使得无论是测试人员 还是开发人员都能快速上手,进行API的调试和测试。
  • 功能强大且全面:Postman支持创建和发送各种HTTP请求,包括GET、POST、PUT、DELETE等,能 够全面测试API的响应。此外,它还提供了构建请求参数、管理环境变量、自动化测试集合、共 享和协作以及监视API性能等功能,满足用户在不同场景下的需求。
  • 有效管理组织接口:使用测试集Collections,用户可以更有效地管理组织接口,提高测试效率。
  • 团队协作与同步:Postman允许在团队之间同步接口数据,使得团队成员可以共享他们的API请求 和测试集合,实现高效的协作。
  • 自动化测试与集成:Postman支持通过编写测试脚本来自动化API测试,并对测试结果进行断言和 验证。此外,它还能与CI/CD工具集成,实现自动化API测试和集成测试。
  • 接口文档自动生成:Postman能够根据API请求和响应自动生成接口文档,方便开发人员和其他团 队成员查看API的使用方法和参数。

二.postman下载

    1. 访问Postman官方网站,下载最新版本,访问地址:https://www.getPostman.com/
    1. 根据操作系统(Windows、Mac或Linux)选择相应的版本进行下载。
    1. 点击下载按钮,等待下载完成。
  • . 双击下载的安装包,进入到安装界面,直到用户登录和注册界面。
  • 若个人使用,可选择跳过(但建议登录这样可以对测试用例进行更好的管理)

进入到Postman主界面,Postman安装成功

注册后使用账号

1.创建第一个例子

2.Collection集合

对一个或多个系统中有很多测试用例进行维护时,应对用例进行分类管理, 并且可以用这批测试进行回归测试。Postman提供了Collection集合功能。 使用场景:

  • 1.用例分类管理,方便后期维护
  • 2.可以进行批量用例回归测试 。

点击Collection,点击+New Collection,在弹出的输入框中输入 Collection名称(所测试的系统)。 选中新建的Collection右键,点击Add Folder,在弹出对话框中输入文件夹名称 (系统中的模块)。选中新建的文件夹, 点击Add Request ,在弹出的对话框中输 入请求名称,这个就是我们所测试的接口, 也可以理解为测试用例

批量执行接口请求: 1. 右击run collection 2. 会出现runner标签页

3.发送简单的GET请求

携带参数的GET请求

所谓的查询参数,其实就是URL地址中问号(?)后面的部分就叫查询参数, http://cx.shouji.360.cn/phonearea.php?number=13012345678 。查询参是:number=13012345678 。 而这一部分是由有键值对组成,格式为:key1=value1&key2=value2, 如果有多组键值对,要用&隔开 。

常见的请求方式:

  1. GET 获取资源 2. POST 新建/更新资源 3. PUT 更新资源 4. DELETE 删除资源 5. HEAD 获取头部信息

4.JSON

轻量级的理想的数据交换格式,大部分的接口应用使用了json格式数据,可以使用 https://www.bejson.com/ 进行格式校验

在线测试JSON书写矫正工具:在线JSON校验格式化工具(Be JSON)

结构: 对象:{key:value} 数组:[data1,data2] 示例:第一个例子

5.发送POST请求

添加FORM格式请求参数

  1. body-raw-json

    https://www.bejson.com/

    {
    "phone": "13861242661" ,
    "email": "13861242661@qq.com" ,
    "nick": "abc" ,
    "password": "12345" ,
    "password2": 12345
    }

    1. 点击SEND
    1. 查看响应内容

用POST登陆账户

用GET查看用户信息:

查看token值是否一样

6.添加文件格式请求参数

在做接口测试时,我们经常会遇到需要上传文件的接口,比如微信的更新头像。这就需要用到: multipart/form-data。它也属于一种表单,但它既支持表单请求,也支持文件上传。

  1. 添加文件格式请求参数 2. 选择body-form data 3. key中输入file 4. 导入文件 5. 点击send

在做接口测试时,我们经常会遇到需要上传文件的接口,比如微信的更新头像。这就需要用到: multipart/form-data。它也属于一种表单,但它既支持表单请求,也支持文件上传。

修改用户密码:

具体postman用法可以查看网页星瀚接口文档 (nnzhp.cn)查看相关解释

GET请求方式和POST请求方式的区别:

(1)GET请求没有请求体,只要请求头和URL:host/api/xxx?name=xxx

(2)POST请求是有请求头、请求体

(3)GET请求没有POST请求安全

(4)GET请求有参数长度限制,POST没有

(5)本质区别是传参方式不一样:

get: 地址栏 ?的方式传参,多个参数用&相连

post:body里面以表单的方式传参

三.查看接口响应

响应数据是发送请求后经过服务器处理后返回的结果,响应由三部分组成,分别是状态行、响 应头、响应体。我们来看下Postman的响应数据展示。

响应数据是发送请求后经过服务器处理后返回的结果,响应由三部分组成,分别是状态行、响 应头、响应体。我们来看下Postman的响应数据展示。

四.Postman添加断言

如果没有断言,只能做单一的接口的功能测试,有了断言后,就为我们做自 动化提供了条件。 Postman断言:

  • 断言编写位置:Tests标签
  • 断言所用语言:JavaScript
  • 断言执行顺序:在响应体数据返回后执行 。
  • 断言执行结果查看:Test Results
  1. js书写断言
  2. Postman已经给我们内置了一些常用的断言 。 只需从右侧点击断言,就会在文本框中自动生成对应断言代码块 。

五.变量

变量可以使我们在请求或脚本中存储和重复使用其值,通过将值保存在变量 中,可以在集合,环境或请求中引用。 在Postman常用的三种变量分别是全局变量,环境变量,集合变量 。

  • 全局变量:它的作用域是最大的,全局有效。Postman中的任何集合、任 何请求中都可以使用这个变量。
  • 环境变量:首先的创建环境,在该环境中才能创建变量。要使用环境变量, 必须先选择(导入)这个环境,就可以使用这个环境下的变量。环境可以创 建多个,每个环境下可以有多个变量。
  • 集合变量:集合变量是针对集合的,申明的变量必须基于某个集合,使用 范围集合有效。

在右上角可以快速查看变量值情况 在右侧快捷方式中可在脚本中设置变量值

1.新建环境变量

2.切换环境变量

3.定义集合变量

选择一个集合,打开查看更多动作(...)菜单,然后点击编辑 。选择"变量"选项卡以编 辑或添加到集合变量。

方法二:在Pre-request Script处编辑脚本

在Tests,Pre-requests Script:

定义变量:

  • 定义全局变量:pm.CollectionVariables.set("变量名",变量值)
  • 定义环境变量:pm.environment.set("变量名",变量值)
  • 定义集合变量:pm.variables.set("变量名",变量值)

使用变量:

  • 如果在请求参数中获取变量,无论是获取全局变量,还是环境变量,还是集合变量,获取的方 式都是一样的编写规则:{{变量名}} 。
  • 请求参数指的是:URL,Params , Authorization , Headers , Body

如果是在编写代码的位置(Tests,Pre-requests Script)获取变量,获取不同类型的变量,编写 的代码都不相同,具体如下:

  • 获取环境变量:pm.environment.get('变量名')
  • 获取全局变量:pm.globals.get('变量名')
  • 获取集合变量:pm.pm.CollectionVariables.get.get('变量名')

前置脚本其实就是在Pre-requests Script中编写的JavaScript脚本。 一个请求在发送之前,会先去执行Pre Request Script(前置脚本)中的代 码 。 主要场景:

  • 1.在发送请求前需要对接口的数据做进一步处理,就都可以使用这个功能, 比如说,登录接口的密码,在发送前需要做加密处理,那么就可以在前置脚本 中做加密处理。
  • 2.有的接口输入参数有一些随机数,每请求一次接口参数值都会发送变化, 就可以在前置脚本中编写生成随机数的代码 。

在请求接口之前对请求数据进行加工处理都可以使用前置脚本功能。

六.动态参数

方法二:在Pre-request Script处编辑脚本

javascript 复制代码
function GetRandomNum(Min,Max){
    var Range = Max-Min;
    var Rand = Math.random()
    return (Min+Math.round(Rand*Range));
}

var tel = GetRandomNum(10000000000,19999999999);
pm.environment.set("tel", tel);
console.log(tel)

查看生成学生信息

由于截图找不到了,实际上控制板返回的值要和查询的值是保持一致的

七.接口关联

  • 1.提取上一个接口的返回值数据
  • 2.将这个数据值保存到环境变量或全局变量中
  • 3.在下一个接口获取环境变量或全局变量
相关推荐
CSXB992 小时前
一、Python(介绍、环境搭建)
开发语言·python·测试工具·集成测试
Defry2 小时前
Selenium WebDriver和Chrome对照表
chrome·selenium·测试工具
99乘法口诀万物皆可变16 小时前
CANoe_TestModule截图功能TestReportAddWindowCapture
测试工具
99乘法口诀万物皆可变1 天前
ODX相关基础知识普及
测试工具·测试用例
今天好像不上班1 天前
软件验证与确认实验二-单元测试
测试工具·算法
wdxylb2 天前
Pyhton爬虫使用Selenium实现浏览器自动化操作抓取网页
爬虫·selenium·测试工具
码力码力我爱你3 天前
C++ WebDriver扩展
c++·selenium·测试工具
Play_Sai3 天前
【接口测试】任务2:商品分类接口
软件测试·接口测试·postman·技能竞赛·楚怡杯·jemter
土小帽软件测试3 天前
fiddler抓包16_自动重定向(mock数据)
测试工具·fiddler·抓包·软件测试学习