热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

『政善治』Postman—17.接口测试项目综合练习(二)

(三)Postman测试实操简述整体思路:我们需要创建5个请求,鉴权、注册、登陆、查询、注销。创建一个Collection

(三)Postman测试实操

简述整体思路:

  1. 我们需要创建5个请求,鉴权、注册、登陆、查询、注销。
  2. 创建一个Collection测试集管理以上请求。
  3. 创建一个环境变量,对该项目的公共变量进行管理。
  4. 先调用鉴权接口,把获得的token存储环境变量中,方便后续接口使用。
  5. 每个请求都需要编写断言。

1、准备工作

(1)创建一个Collection测试集

因为是新的项目,我们需要为该项目创建一个新的测试集,方便请求的管理。

例如:叫“综合练习”。

(2)创建一个环境变量

创建一个环境变量,方便对该项目的公共变量进行管理。

一般与Collection测试集同名。

2、 创建请求

(1)创建auth鉴权请求

通过前面接口文档可以分析得出:

auth鉴权接口如果不传递token参数,就重新分配一个token并返回。

如果传递有效的token参数,此时不再重新分配token;

所以我们就创建一个不带参数的auth鉴权请求即可。

(只填写请求方式和请求参数即可)

如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

然后我们编写请求后置脚本Tests

步骤1:编写断言

// 断言鉴权操作成功
// 返回值中msg是否等于success
pm.test("鉴权接口请求成功", function () {
    var jsOnData= pm.response.json();
    pm.expect(jsonData.msg).to.eql("success");
});

步骤2:把返回值中的token数据保存到环境变量中,提后后续接口使用。

// 把鉴权接口返回数据中的token信息,保存到环境变量中
pm.environment.set("authToken", pm.response.json().token);

编写完成后,我们再Send验证一次:

『政善治』Postman — 17.接口测试项目综合练习(二)

可以看到Tests中的脚本是没有问题,我们再来看看“综合练习”环境变量中的内容。

如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

看到以上信息,说明auth鉴权请求实现完成。

(2)用户注册接口实现

先填写请求方式和请求地址,并填写请求数据,如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

然后在请求头中填写token信息。

『政善治』Postman — 17.接口测试项目综合练习(二)

最后在编写后置脚本Tests断言

// 断言用户注册操作是否成功
pm.test("注册操作成功", function () {
    var jsOnData= pm.response.json();
    pm.expect(jsonData.msg).to.include("注册成功");
});

发送请求并查看结果,如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

以上就完成了用户注册接口的实现。

(3)用户登陆接口实现

先填写请求方式和请求地址,并填写请求数据,如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

然后在请求头中填写token信息。

『政善治』Postman — 17.接口测试项目综合练习(二)

最后在编写后置脚本Tests断言和数据处理

断言:

// 断言用户登陆成功
pm.test("用户登录成功", function () {
    var jsOnData= pm.response.json();
    pm.expect(jsonData.msg).to.include("登录成功");
});

数据处理:

// 把返回用户的userid,添加到环境变量中。
// 方便后续的接口使用。
pm.environment.set("userid", pm.response.json().userid);

发送请求并查看结果,如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

查看环境变量userid已被添加。

『政善治』Postman — 17.接口测试项目综合练习(二)

以上就完成了用户登录接口的实现。

(4)查询用户信息接口实现

先填写请求方式和请求地址,并填写请求数据,如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

然后在请求头中填写token信息。

『政善治』Postman — 17.接口测试项目综合练习(二)

最后在编写后置脚本Tests断言

// 断言查询用户信息成功
pm.test("查询用户信息成功", function () {
    var jsOnData= pm.response.json();
    pm.expect(jsonData.msg).to.include("查询成功");
});

发送请求并查看结果,如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

以上就完成了查询用户信息接口的实现。

(5)用户注销接口实现

先填写请求方式和请求地址,而logout(注销)接口并不需要传递参数,只需要传请求头中有效的token。

『政善治』Postman — 17.接口测试项目综合练习(二)

编写后置脚本Tests断言

// 断言用户注销成功
pm.test("用户退出登录成功", function () {
    var jsOnData= pm.response.json();
    pm.expect(jsonData.msg).to.include("退出登录");
});

发送请求并查看结果,如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

以上就完成了用户注销接口的实现。

提示:如果再次调用登录接口进行用户登录,就会出现登录失败的现象。需要重新auth鉴权,再进行登录。

以上综合项目中的接口我们都创建完成了。

(四)加入数据驱动

1、准备数据文件

更具上面的5个接口,来编辑数据文件,如下:

usernane password registerMsg loginUser loginPwd loginMsg userMsg
xiaoming3 123456 注册成功 xiaoming3 123456 登录成功 查询成功
xiaoming3 123456 用户已被注册 xiaoming3 12345666 用户名密码错误 您还未登陆
xiaoming3@ 123456 参数错误 xiaoming3@ 123456 参数错误 您还未登陆
xiaoming3aaaaaaaaaaaaaa 123456 参数错误 xiaoming3aaaaaaaaaaaaaa 123456 参数错误 您还未登陆

当我们用到数据驱动的时候,首先要想清楚,测试的输入数据是哪些,还有预期的返回信息是什么。

提示:

  • 要把Excel文件另存为.cvs文件。
  • 使用Notepad++打开数据文件,然后将数据文件转为UTF-8编码

2、修改请求中的参数

我们以注册接口为例,其他接口同理。

修改请求参数如下:

『政善治』Postman — 17.接口测试项目综合练习(二)

修改请求后置脚本Tests,如下:

『政善治』Postman — 17.接口测试项目综合练习(二)

3、使用测试驱动方式执行测试集

点击测试集,然后进入Collection Runner界面。

执行如下操作:

『政善治』Postman — 17.接口测试项目综合练习(二)

提示:每次上传完数据文件后,需要Preview一下,确保上传的数据信息的准确性。

如下图:

『政善治』Postman — 17.接口测试项目综合练习(二)

最后点击Run综合练习DDT执行测试集。

4、分析测试结果

通过分析测试结果,可以判断接口的是否正确,也可以对测试数据重新进行补充或者修改。

『政善治』Postman — 17.接口测试项目综合练习(二)

最后得出接口测试的结果。

以上就是在工作中我们使用Postman进行接口测试的基础流程。


推荐阅读
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细解析了 offset、client 和 page 坐标系统的不同之处。offset 是相对于当前元素的边界框的距离,与滚动条无关;client 是相对于可视区域(viewport)的距离,也与滚动条无关;page 则是相对于整个文档的距离,受滚动条位置影响。 ... [详细]
  • HDU 2871 内存管理问题(线段树优化)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2871。本题涉及内存管理操作,包括重置、申请、释放和查询内存块。通过使用线段树进行高效管理和维护。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • PHP 实现无刷新多图上传及远程图片处理
    本文详细介绍了如何使用 PHP 实现网页上的无刷新多图上传功能,同时支持远程图片的下载与处理。文章提供了具体的代码示例,并对关键函数进行了说明。 ... [详细]
author-avatar
mobiledu2502858945
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有