postman自动化测试

postman做接口的自动化测试case

  • 记录一次自动化测试的工作,以及该过程中对于测试设计的一些思考。

postman工具

  • 简单介绍,这个工具无论是开发还是测试,使用来调试接口的时候非常便捷,具体的介绍文章后面附上相关较好的资源,通过平时日常的一个使用情况,简单记录该工具在用来做自动化测试的时候的一个示例。

测试文档编写与评审

  • 需求:依据提供给第三方平台的对接接口文档,设计与编写测试用例,以便快速验证接口的功能。此外,接口测试更多应集中在验证接口生效、接口对请求的参数的处理能力。
  • 设计用例:设计用例依据项目模块划分/以及为每个接口同组的请求(主要是get/post/put/patch/delete等五种类型请求方法),测试目的、测试设置、请求以及方法、请求参数都可以作为测试接口的输入,而接口返回响应则为预期结果,实际编写test用例时则可以依此输出作为判断结果。
  • 在设计过程中选择了如下形式对测试文档做出编辑,这里实际编写过程中仅仅对请求的方法、测试输入做了一个变量设置。

用例名称 接口名称 测试目的 测试设置 请求URL 请求方法 测试输入 测试输出 sys_getProject_post_valid_01 获取项目列表 post请求–获取项目列表 HTTP权限认证,账号:admin,密码123456
https://localhost:8888/XXX/v1/getProject

post {“error_code”=200,”result”={XXXX}} sys_getProject_get_invalid_01 获取项目列表 get请求–无法获取项目列表 HTTP权限认证,账号:admin,密码123456
https://localhost:8888/XXX/v1/getProject

get sys_getProject_get_invalid_02 获取项目列表 空参数–无法获取项目列表 HTTP权限认证,账号:admin,密码123456
https://localhost:8888/XXX/v1/getProject

post {} … … … … … … … …

接口测试代码的编写

  • 结构编排简单介绍:
  • 创建collection,将配置等信息在collection中进行配置,对于后续子文件等均可直接引用生效,子文件夹建立模块信息,存放相应的接口信息。这里也可以在environment中配置变量信息等,一般我只在所有项目通用的配置才考虑放入environment中。
    postman自动化测试
  • 这里开始录入一个接口:注意依据项目中具体采用的认证方式配置Cookie或者Token等信息,body中写入传入的参数信息。
    postman自动化测试
  • 依据返回的响应如下,编写测试用例如下,验证错误码返回结果、以及请求返回的服务器的项目是否与预期相符合(Tests栏这里写用例,Pre-Script这里写执行该脚本之前运行的脚本,比如先去获取全局变量中的某个参数等):
    postman自动化测试
var jsonData = pm.response.json();
var projectId = pm.collectionVariables.get("projectId");
pm.test("1错误码匹配", function () {
    pm.expect(jsonData.error_code).to.eql(0);
});
pm.test("2服务器项目匹配", function () {
    var dataObject = jsonData.result.list[0];
    var id =Object.entries(dataObject)[0]["projectId"];
    pm.expect(id == projectId);
});
  • 运行测试用例结果如下,其中当用例都全部编码完成后,可以在collection级别中自定义 勾选用例用于执行:
    postman自动化测试

结论

  • 接口自动化的优势,一是对于频繁提测的项目来说,使用接口自动化测试可以避免”点点点”的繁杂工作;二是可依据接口文档修改,有针对性的新增测试用例,便于维护;
  • 对于工具的介绍,这篇博客有专栏介绍了,剩下的问题也可以在官网上得到解答:https://blog.csdn.net/zhuyunier/article/details/87604371
  • 教程:《接口自动化测试持续集成》这本书上也对postman工具做了全面的介绍,并且拓展介绍了包括使用Github+jenkins+钉钉来持续集成一个完整的测试项目,后面有空自己部署来试试。

Original: https://www.cnblogs.com/morethansea/p/15554429.html
Author: overSea
Title: postman自动化测试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576478/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java学习-第一部分-第二阶段-第二节:枚举和注释

    自定义类实现枚举 先看一个需求 要求创建季节(Season)对象,请设计并完成。 创建Season对象有如下特点 1.季节的值是有限的几个值(spring, summer, aut…

    数据库 2023年6月11日
    092
  • 机器学习实战-决策树

    1.决策树的构造 1.1优缺点 优点: 计算复杂度不高:以ID3为例,每次运算都是基于某一列特征,特征计算完后,下次计算不考虑该最有特征,并且通过适当剪枝可以简化复杂度 输出结果易…

    数据库 2023年6月16日
    0102
  • jenkins 忘记密码

    仅适用centos7 一、 忘记密码 终端输入: vi /root/.jenkins/secrets/initialAdminPassword 复制文本内的密码,进行登录,此密码可…

    数据库 2023年6月14日
    078
  • NO.1 通讯录管理系统+源代码(C++)

    功能描述:显示简单的菜单,供用户选择操作 实现步骤:直接cout输出 功能描述:根据用户不同的操作代码选择,进入不同的功能,我们使用switch分支结构进行搭建 实现步骤:用whi…

    数据库 2023年6月14日
    076
  • MySql数据库备份与还原

    备份(mysqldump) 实现功能: 1、备份指定的数据库 2、删除指定天数前的备份文件,默认设定了1天 脚本示例(mysql_bak.sh) 数&…

    数据库 2023年6月16日
    0100
  • 2021长安杯wp

    案件背景 2021年4月25日,上午8点左右,警方接到被害人金某报案,声称自己被敲诈数万元;经询问,昨日金某被嫌疑人诱导果聊,下载了某果聊软件,导致自己的通讯录和果聊视频被嫌疑人获…

    数据库 2023年6月11日
    076
  • mysql开启二进制日志

    打开xhell进入系统 进入mysql配置文件目录 执行 cd /etc/mysql 首先找到my.cnf这个配置文件,然后使用vim进入文件编辑 放开我标记的地方。 注意我标记的…

    数据库 2023年6月6日
    0124
  • Git (简单基本操作)

    1、设置配置信息 查看配置信息:git config -l 设置用户名:git config –global user.name xxx 设置邮箱:git config…

    数据库 2023年6月16日
    089
  • linux学习之联网问题解决

    (centos7)linux隔日重启后发现无法联网解决方案 1.运行命令 ip addr 查看 ip地址 2.运行命令 vi /etc/sysconfig/network-scri…

    数据库 2023年6月16日
    093
  • Spring MVC的生命周期与简单三大组件的简单介绍

    1.说到Spring MVC就会想到它是基于MVC设计模式的思想来设计的: 那么MVC设计模式是什么呢? 下面来介绍一下 MVC 设计模式 MVC是模型(model)-视图(vie…

    数据库 2023年6月6日
    094
  • python tkiner实现自动打包程序

    环境 python3.x 使用前请确保安装pyinstaller库 本程序还未完善,可以自行完善 若要使用加密,请自行安装cryptodome库 python;gutter:tru…

    数据库 2023年6月11日
    088
  • logrotate command in Linux

    背景 在生产过程中,由于磁盘空间、保留周期等因素,会对系统、应用等日志提出要求,要求系统日志定期进行轮转、压缩和删除,从而减少开销,而系统自带的 logrotate 则是一个简单又…

    数据库 2023年6月14日
    0175
  • 常用MySQL语句(持续更新)

    1. 客户端登录 在终端输入 mysql -u[用户名] -p[密码]…

    数据库 2023年6月14日
    087
  • vue进阶(一)

    vue.js 数据绑定 定义:将数据和视图相关联,当数据发生变化时,可以自动更新视图。 语法 1) 插值 使用双大括号{{}},双大括号会将里面的值当做字符串进行处理;而如果值是H…

    数据库 2023年6月6日
    0106
  • 2020年十大最佳自动化测试工具

    Best Automation Testing Tools for 2020 对更快交付高质量软件(或”快速质量”)的需求要求组织以敏捷,持续集成(CI)和…

    数据库 2023年6月9日
    081
  • 文件输入/输出流

    文件输入/输出流程序 运行期间,大部分数据都被存储在 内存中,当程序结束或被关闭时,存储在内存中的数据将会 消失。如果要 永久保存数据,那么最好的办法就是把数据保存到 磁盘的文件中…

    数据库 2023年6月16日
    0128
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球