Postman实现接口自动化测试

这篇具有很好参考价值的文章主要介绍了Postman实现接口自动化测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

功能测试从页面发起请求进行测试,接口测试可以借助工具或代码直接将数据发送到服务端进行测试。

apipost接口自动化带图形的验证码登录,postman,测试工具

 功能测试和接口测试对应的时间apipost接口自动化带图形的验证码登录,postman,测试工具

接口测试的流程

apipost接口自动化带图形的验证码登录,postman,测试工具

 URL的组成apipost接口自动化带图形的验证码登录,postman,测试工具

一、HTTP协议讲解

HTTP:超文本传输协议,基于请求与响应的应用层协议
作用:规定了客户端与服务器之间信息传递规范,是二者共同遵守的协议。
组成:
HTTP请求:定义请求数据格式:请求行、请求头、请求体
HTTP响应:定义响应数据格式:状态行、响应头、响应体

1.1、HTTP请求

1.1.1请求行

位置:请求数据第一行
作用:说明请求方法、访问的资源、协议版本

apipost接口自动化带图形的验证码登录,postman,测试工具

常用请求方法:
GET:从服务器获取资源
POST:在服务器新建一个资源
PUT:在服务器更新资源
DELETE:从服务器删除资源

1.1.2、请求头

位置:请求数据第二行到空白行之间
作用:通知服务器客户端请求信息
特点:请求头部由键值对组成,每行一对

apipost接口自动化带图形的验证码登录,postman,测试工具

Content-Type:决定请求体数据类型 

text/html:HTML格式
image/jpeg:jpg图片格式
application/json:JSON数据格式
application/x-www-form-urlencoded: 表单默认的提交数据格式 
multipart/form-data:在表单中进行文件上传时使用

1.1.3、请求体 

位置:空白行之后的内容
作用:传输数据实体
注意:请求体常在POST、PUT方法中使用
常配合的请求头: Content-Type和Content-Length

apipost接口自动化带图形的验证码登录,postman,测试工具

1.2、HTTP响应

1.2.1、状态行

位置”响应数据第一行
作用“描述服务器处理结果
内容”状态行由协议版本号、状态码、状态消息组成

apipost接口自动化带图形的验证码登录,postman,测试工具

状态码:三位数字组成,第一个数字定义响应类别
1XX:指示信息
2XX:成功
3XX:重定向
4XX:客户端错误
5XX:服务端错误 

1.2.2、响应头 

位置:第二行开始到空白行之间
作用:描述客户端端要使用的一些附加信息
特点:响应头由键值对组成,每行一对

apipost接口自动化带图形的验证码登录,postman,测试工具

1.2.3、响应体 

位置:响应数据空白行之后
作用:服务器返回的数据实体
特点:有图片、json、xml、html等多种类型

apipost接口自动化带图形的验证码登录,postman,测试工具

二、接口规范 

作用:让前端开发与后台接口开发人员更好的配合,提高工作效率 

RESTful:一种网络应用程序的设计风格和开发方式,提供了一组设计原则和约束条件。

apipost接口自动化带图形的验证码登录,postman,测试工具

特点:请求API的URL用来定位资源;通过标准HTTP方法对资源进行增删改查操作;利用HTTP状态码返回状态信息。

RESTful和传统风格的区别

apipost接口自动化带图形的验证码登录,postman,测试工具

三、Postman实现单个接口测试 

问题:拿到一个项目之后,我们是先测业务流程还是先测单模块(接口)?
答案:先测试业务流程,确保核心功能正常。

 3.1、针对“合同新增业务”设计接口测试用例

如何测试业务接口?
根据业务流程图梳理业务路径;
设计测试用例覆盖每一条业务路径

3.1.1、业务流程梳理

业务流程图如下:

apipost接口自动化带图形的验证码登录,postman,测试工具

合同新增业务流程如下:
apipost接口自动化带图形的验证码登录,postman,测试工具

3.1.2、解析接口文档示例

为什么要进行接口文档解析?
熟悉接口信息,为设计接口用例准备

接口API文档:一般由后端开发编写、用来描述接口信息的文档

如何进行接口文档解析?
1、分析接口之间的依赖关系
2、分析接口请求(如:URL、请求方法、请求头、请求参数类型、请求参数等)
3、分析接口响应(如:响应状态码、响应数据等)

apipost接口自动化带图形的验证码登录,postman,测试工具

根据接口文档的信息即业务的执行流程,可以给出新增合同成功的测试用例。这七个接口就相当于完成新增合同业务的正向流程。

apipost接口自动化带图形的验证码登录,postman,测试工具

3.2、登录接口调式——获取验证码

1、需求:使用Postman访问验证码接口,并查看响应结果。

2、地址:http://kdtx-test.itheima.net/api/captchalmage 

3、请求方法:Get

4、实现步骤:设置请求方式;输入接口地址;点击发送请求;查看响应结果。

如下图所示:

apipost接口自动化带图形的验证码登录,postman,测试工具

3.3、登录接口调试——登录

1、需求:使用Postman访问验证码接口,并查看响应结果。

2、地址: http://kdtx-test.itheima.net/api/login

3、请求方法:Post

4、请求数据:
请求头: Content-Type: application/json
请求体:{"username":"manager","password","123456","code","2","uuid":"验证码接口返回结果中的数据值"}

5、实现步骤:设置请求方式;输入接口地址;设置请求数据;点击发送请求;查看响应结果

如图所示:

apipost接口自动化带图形的验证码登录,postman,测试工具

3.4、如何使用Postman发送请求并查看响应结果

1、设置请求方法
2、设置URL
3、设置请求头
4、设置请求数据
5、点击Send发送请求
6、查看响应状态码
7、查看响应体数据

3.5、Postman自动关联

在3.2和3.3节中的操作,我们能发现以下问题,问题:每次登录之前都需要手动复制验证码数据(uuid)。
可以使用以下思路解决该问题

apipost接口自动化带图形的验证码登录,postman,测试工具

关于公共容器的实现,postman使用的是环境变量,如下所示:

apipost接口自动化带图形的验证码登录,postman,测试工具

apipost接口自动化带图形的验证码登录,postman,测试工具

切换到QA之后,就可以使用环境里面的数据 

案例分析

需求:
1、验证码接口: /api/captchalmage
2、登录接口: /api/login
3、登录接口请求体uuid字段---》验证码接口返回uuid字段

分析

1、验证码接口响应体中提取uuid
apipost接口自动化带图形的验证码登录,postman,测试工具

2、设置环境变量保存uuid

apipost接口自动化带图形的验证码登录,postman,测试工具

3、登录接口引用uuid

 apipost接口自动化带图形的验证码登录,postman,测试工具

实现: 

第一步,在获取验证码接口输入以下代码,将uuid数据保存到环境变量

apipost接口自动化带图形的验证码登录,postman,测试工具

第二步,在登录接口获取uuid,直接在请求体中使用{{uuid}},即可引用环境变量中保存的uuid

apipost接口自动化带图形的验证码登录,postman,测试工具

总结

Postman自动关联解决了什么技术问题?
接口之间需要自动传递数据。

Postman自动关联实现思路:

1、提取关联数据:var jsonData = pm.response.json()
2、保存关联数据:pm.environment.set("变量名", jsonData.属性)

3、引用关联数据:{{变量名}}

3.6、课程添加接口调试

接口信息
URL:http://kdtx-test.itheima.net/api/clues/course
方法:Post
请求数据:
请求头:{"Content-Type":"application/json","Authorization":"xxx"}
请求体:{"name":"测试开发提升课01","subject":"6","price":899,"applicablePerson":"2","info":"测试开发提升课01"}

如图所示:

设置请求方式,URL,请求体

apipost接口自动化带图形的验证码登录,postman,测试工具

添加课程接口需要登录接口响应的token值,因此需要通过Postman自动关联技术,将token值写入环境变量。

apipost接口自动化带图形的验证码登录,postman,测试工具

在请求头中引用token

apipost接口自动化带图形的验证码登录,postman,测试工具

3.7、上传合同接口调试

接口信息
URL:http://kdtx-test.itheima.net/api/common/upload
方法:Post
请求数据:
请求头:{"Content-Type":"multipart/form-data","Authorization":"xxx"}
请求体:{"file":"合同文件"}

思考:如何提交multipart/form-data数据?(multipart/form-data:多消息体数据,可以有文字,可以有文件)

如图所示:

设置请求方式,URL,请求头,对于multipart/form-data格式在Postman中不需要手动设置,选对请求体中的位置即可。

apipost接口自动化带图形的验证码登录,postman,测试工具

在Body中选择 form-data

apipost接口自动化带图形的验证码登录,postman,测试工具

 总结:

Postman如何提交multipart/form-data请求数据?
1、设置请求方法

2、设置URL

3、设置请求头

4、设置请求数据:[body -> form-data -> file选择上传文件

5、点击Send发送请求

6、查看响应状态码

7、查看响应体数据

3.8、新增合同接口调试

接口信息
地址:http://kdtx-test.itheima.net/api/contract
方法:Post
请求数据:
请求头:{"Content-Type":"application/json","Authorization":"xxx"}
请求体:{"name":"测试888","phone":"13612345678","contractNo":"HT10012003","subject":"6","courseld":" 99","channel":"0","activityId":77,"fileName":"xxx"}

设置请求方式,URL,请求头

apipost接口自动化带图形的验证码登录,postman,测试工具

fileName来自于合同上传接口的响应数据,因此需要通过Postman自动关联技术将fileName写入环境变量。

apipost接口自动化带图形的验证码登录,postman,测试工具

设置请求体数据:

apipost接口自动化带图形的验证码登录,postman,测试工具

3.9、查询合同列表接口调试

接口信息
地址:http://kdtx-testitheima.net/api/contract/list
方法:Get
请求数据:
请求头:{"Authorization":"xxx"}
查询参数:"phone"="13612345678

思考:如何提交查询参数?

设置请求方式,URL,请求头

apipost接口自动化带图形的验证码登录,postman,测试工具

 方式一:通过url中拼接查询参数 

apipost接口自动化带图形的验证码登录,postman,测试工具

方式二:在Postman的Params中添加

apipost接口自动化带图形的验证码登录,postman,测试工具

总结:

Postman如何提交查询参数?

设置在URL中

设置在Params区域

3.10、Postman批量执行实现合同新增成功用例 

作用:通过运行测试集的方式批量运行测试用例
步骤:
1、点击测试集中的“Run”按钮,批量运行测试用例;

apipost接口自动化带图形的验证码登录,postman,测试工具

2、弹出Collection Runner窗口,点击运行按钮;

apipost接口自动化带图形的验证码登录,postman,测试工具
3、给出测试结果。

四、针对登录接口进行详细测试

4.1、接口用例设计思路

单接口测试:
正向测试:1、必填参数,P2;2、全部参数,P2。
逆向测试:1、参数数据为空,P3;2、参数类型不符,P3;3.参数长度不符,P3;4.业务规则不符,P3。

4.2、项目登录接口用例设计

需求:
已注册正确的用户名和密码,登录成功
用户名或密码错误,登录失败,提示"用户名或密码错误"

要求:
1、按照接口测试思路进行测试点分析
2、从测试点转化为测试用例
3、使用Postman进行接口测试

4.2.1、提取测试点

apipost接口自动化带图形的验证码登录,postman,测试工具

 4.2.2、设计测试用例

以登录成功,登录失败(用户名为空),登录失败(用户名不存在)

ID 模块 优先级 用例名称 接口名称 前置条件 请求url 请求方法 请求头 请求参数类型 请求参数 预期结果
KDTX-login-001 登录 P2 登录成功 登录 1、获取验证码成功 /api/login POST {"content-Type":"application/json"} json {
"username":"manager",
"password","123456",
"code","2",
"uuid":"a5762bc30ec74055a58dba2c63b01087"
}
①响应状态码:200
②响应数据:
登录成功:{"msg":"操作成功","code":200,"token":
"xxxxxx"}
KDTX-login-002 登录 P3 登录失败(用户名为空) 登录 1、获取验证码成功 /api/login POST {"content-Type":"application/json"} json {
"username":"",
"password","123456",
"code","2",
"uuid":"a5762bc30ec74055a58dba2c63b01087"
}
①响应状态码:200
②响应数据:
用户名或密码错误:{“msg":"用户名或察码错误”,"code": 500}
KDTX-login-003 登录 P3 登录失败(未注册的用户名) 登录 1、获取验证码成功
2、用户名未注册
/api/login POST {"content-Type":"application/json"} json {
"username":"manager_auto",
"password","123456",
"code","2",
"uuid":"a5762bc30ec74055a58dba2c63b01087"
}
①响应状态码:200
②响应数据:
用户名或密码错误:{“msg":"用户名或察码错误”,"code": 500}

 4.2.3、使用Postman进行接口测试

步骤

        1、点击测试集中的“Add folder”添加文件夹管理测试用例

        2、点击文件夹上的“Add Request”添加请求实现测试用例

apipost接口自动化带图形的验证码登录,postman,测试工具

以登录成功示例

前置条件获取验证码成功,获取验证码接口放入登录文件夹

apipost接口自动化带图形的验证码登录,postman,测试工具

在登录接口中引用uuid2

apipost接口自动化带图形的验证码登录,postman,测试工具

比较预期结果与响应结果是否一致

apipost接口自动化带图形的验证码登录,postman,测试工具

总结

如何针对单个接口设计测试用例?

        正向:必填参数、全部参数 

        逆向:空、类型错误、长度错误、规则不符

五、Postman断言

Postman断言:让Postman工具代替人工自动判定预期结果和实际结果是否一致。

用法:

apipost接口自动化带图形的验证码登录,postman,测试工具

5.1、 Postman断言一一响应状态码断言

模板名称:Status code: Code is 200
模板内容:

apipost接口自动化带图形的验证码登录,postman,测试工具

5.2、Postman断言--包含指定字符串断言

模板名称:Response body:Contains string

模板内容:

apipost接口自动化带图形的验证码登录,postman,测试工具

5.3、Postman断言——JSON数据断言

模板名称:Response body:JSON value check

模板内容:

apipost接口自动化带图形的验证码登录,postman,测试工具

5.4、案例测试

针对KDTX项目登录成功接口用例完成断言设置

需求及分析:
1、断言响应状态码为200

apipost接口自动化带图形的验证码登录,postman,测试工具

2、断言响应数据中包含'成功'

apipost接口自动化带图形的验证码登录,postman,测试工具

3、断言JSON数据中msg值为'操作成功'

apipost接口自动化带图形的验证码登录,postman,测试工具

postman设置:

 apipost接口自动化带图形的验证码登录,postman,测试工具

 总结:

1、断言的作用是什么?
        让工具代替人工自动判断预期结果和实际结果是否一致

2、Postman常见断言方式有哪些?
        响应状态码断言

        包含字符串断言

        JSON数据断言

六、Postman参数化 

场景:测试脚本中仅测试数据不一样,使用参数化提高脚本复用。

步骤:
1、测试数据保存在数据文件单独维护;
2、引用数据文件实现脚本循环调用。

6.1、Postman参数化实现

准备数据文件

apipost接口自动化带图形的验证码登录,postman,测试工具

引用数据文件数据

apipost接口自动化带图形的验证码登录,postman,测试工具

 选择数据文件:运行测试集时选择数据文件

apipost接口自动化带图形的验证码登录,postman,测试工具

6.2、针对KDTX项目登录接口参数化实现

apipost接口自动化带图形的验证码登录,postman,测试工具

1、把设计的测试用例的json数据写入文件

apipost接口自动化带图形的验证码登录,postman,测试工具

2、 修改请求体和断言

修改请求体

apipost接口自动化带图形的验证码登录,postman,测试工具

修改断言 

apipost接口自动化带图形的验证码登录,postman,测试工具

运行时选择数据文件

apipost接口自动化带图形的验证码登录,postman,测试工具

apipost接口自动化带图形的验证码登录,postman,测试工具 apipost接口自动化带图形的验证码登录,postman,测试工具

apipost接口自动化带图形的验证码登录,postman,测试工具

总结:

1、参数化的作用是什么?
        提高测试脚本复用性 

2、Postman如何实现参数化?
        1、准备数据文件
        2、引用数据文件

                请求参数中获取:{{变量名}}
                代码中获取: data.变量名

        3、批量执行测试用例

七、 针对课程添加接口进行详细测试

7.1、课程添加接口文档

apipost接口自动化带图形的验证码登录,postman,测试工具

7.2、设计测试用例 

需求:

必填参数:
        课程名称(不超过30个字符)
        课程学科(1位数字,0-->java,1-->前端,6-->测试)
        课程价格(1~5位数字)
        适用人群(1位数字,1-->小白,2-->中级程序员)
非必填参数:
        课程介绍(不超过200个字符)

要求:

1、按照接口测试思路进行测试点分析

2、从测试点转化为测试用例
3、使用Postman进行接口测试 

正向测试:1、必填参数,P2;2、全部参数,P2。
逆向测试:1、参数数据为空,P3;2、参数类型不符,P3;3.参数长度不符,P3;4.业务规则不符,P3。

测试点:

apipost接口自动化带图形的验证码登录,postman,测试工具

根据测试点设计测试用例,参考第四节。 

八、  针对查询课程列表接口进行详细测试

8.1、查询课程列表接口文档

apipost接口自动化带图形的验证码登录,postman,测试工具

8.2、设计测试用例 

需求

支持课程名称、课程学科、课程价格、适用人群、课程介绍的单条件查询 

支持课程名称、课程学科、课程价格、适用人群、课程介绍的组合条件查询

查询存在满足条件课程信息时,返回该课程信息

查询不存在满足条件课程信息时,返回空值

要求:

1、按照接口测试思路进行测试点分析

2、从测试点转化为测试用例
3、使用Postman进行接口测试

测试点分析:

 apipost接口自动化带图形的验证码登录,postman,测试工具

 九、  针对课程修改接口进行详细测试

9.1、课程修改接口文档

apipost接口自动化带图形的验证码登录,postman,测试工具

9.2、设计测试用例 

需求:

课程ID (数字、必填) 

要求:

1、按照接口测试思路进行测试点分析

2、从测试点转化为测试用例

3、使用Postman进行接口测试 

测试点分析:

 apipost接口自动化带图形的验证码登录,postman,测试工具

 十、  针对课程删除接口进行详细测试

10.1、课程删除接口文档

apipost接口自动化带图形的验证码登录,postman,测试工具

10.2、设计测试用例

需求:

课程ID (数字、必填) 

要求:

1、按照接口测试思路进行测试点分析

2、从测试点转化为测试用例

3、使用Postman进行接口测试 

提取测试点:

 apipost接口自动化带图形的验证码登录,postman,测试工具文章来源地址https://www.toymoban.com/news/detail-802952.html

到了这里,关于Postman实现接口自动化测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Apipost自动化测试+Jenkins实现持续集成

    Apipost 自动化测试支持「持续集成」功能,在安装了Apipost的服务器中输入命令,即可运行测试脚本。 创建自动化测试脚本 在创建好的测试用例中选择「持续集成」。 点击新建,配置运行环境、循环次数、间隔停顿后点击保存会生成命令。 安装 Apipost-cli npm install -g apipost-cl

    2024年01月25日
    浏览(42)
  • 如何用Postman做接口自动化测试?一文5个步骤带你成功实现!

    什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来 本质是用代码去测试另一段代码,属于一种软件开发工作,已经开发完成的用例还必须随着被测试对象的改变而

    2024年02月04日
    浏览(35)
  • 通过 Postman+Newman+Jenkins 进行接口自动化测试和进一步实现 CI

    目录 前言: Postman 部分 Collection 或者说测试集的建立 Postman 使用详解 测试工具 mock server Newman 的安装和使用 newman 的使用 对 SSL 的支持 newman 第三版以后(目前已经是 4.3.1)可以支持通过 CLI 选项来支持 SSL 对 newman 配置代理:通过对 Postman 的 request 环境变量进行设置来完成代

    2024年02月16日
    浏览(37)
  • Postman 接口自动化测试教程:入门介绍和从 0 到 1 搭建 Postman 接口自动化测试项目

     关于Postman接口自动化测试的导引,全面介绍入门基础和从零开始搭建项目的步骤。学习如何有效地使用Postman进行API测试,了解项目搭建的基础结构、环境设置和测试用例的编写。无论您是新手还是经验丰富的测试人员,这篇教程都将为您提供清晰的指导,助您轻松构建强大

    2024年03月16日
    浏览(51)
  • postman实现接口自动化图解步骤,测试用例集,断言,动态参数,全局变量的随笔记录

    实现接口自动化的方式有很多种,requests + unittest + ddt 的接口自动化框架有些朋友也有接触,但是考虑到很多没有代码基础,且这种框架实现需要的时间周期比较长,但是大多数公司的项目时间并不充裕。 如下图,点击postman左侧Collections下面有个添加文件夹图标,就可以创建

    2024年02月03日
    浏览(39)
  • postman接口自动化测试

      Postman除了前面介绍的一些功能,还有其他一些小功能在日常接口测试或许用得上。今天,我们就来盘点一下,如下所示: 1.数据驱动     想要批量执行接口用例,我们一般会将对应的接口用例放在同一个Collection中,然后再通过Runner批量执行。这种方式适用于接口用例

    2024年02月05日
    浏览(36)
  • postman自动化接口测试

      📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢交流讨论:欢迎加入我们一起学习! 📢资源分享:耗时200+小时精选的「软件测试」资料包 📢 最困难的时候,也就是我们离成功不远的时候!   有一个项目要使用postman进行接口测试

    2024年02月02日
    浏览(59)
  • postman从接口测试到接口自动化

    目录 1.postman发送请求 (1)HTTP请求 (2)HTTP响应 (3)postman发送get请求   (4)发送post请求 1 以表单形式发送请求 2.以json格式发送请求 2.postman的断言 3.全局变量和环境变量 1.手动设置全局变量和环境变量 2.代码设置全局变量和环境变量 3.查看和编辑  4.全局变量和环境变量的

    2023年04月09日
    浏览(32)
  • Postman接口自动化测试实例

    在实际业务中,经常会出现让用户输入用户密码进行验证的场景。而为了安全,一般都会先请求后台服务器获取一个随机数做为盐值,然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服务器,后台服务器接到到请求后,先获取校验原来的随机数是否有

    2024年02月11日
    浏览(48)
  • postman做接口自动化测试

    可能是目前最好用的web接口调试工具 无需注册(注册后可多终端同步用例) 免费(每年付费$60可用云服务,30天免费试用) 保存历史记录 支持录制请求 基于Chrome的V8引擎,支持JS脚本(基本支持ES6,浏览器相关对象和API和require() import等除外) 同样的代码和用例可用于自动化

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包