文章目录

  • 前言
  • 一、Postman读取外部数据文件(参数化)
    • 1. 数据文件简介
    • 2. 导入外部数据文件
    • 3. 读取数据文件数据
    • 4. 生成测试报告
  • 二、iHRM项目实战
    • 1. 简介
    • 2. 初始化项目环境
    • 3. 登录模块
    • 4. 员工管理模块
    • 5. 批量执行用例集
    • 6. 导出环境变量生成测试报告
  • 网课来源

前言

Postman读取外部数据文件(参数化)
使用Postman实现iHRM系统登录模块和员工管理模块接口测试


一、Postman读取外部数据文件(参数化)

当http请求,使用的数据有较高相似度时,相同的请求时,考虑使用参数化(将数据组织到数据文件中)

1. 数据文件简介

  • csv:

    • 优点:数据组织形式简单,适用于大量数据的场合
    • 缺点:
      1. 不支持boolen类型数据(数据被postman读入后,自动添加“”包裹boolen类型)
      2. 不支持多参、少参、无参、错误参数的接口测试。
      3. 不支持复杂数据类型。(如嵌套字典、列表等)
  • JSON
    • 优点:

      1. 支持boolen类型。
      2. 支持多参、少参、无参、错误参数。
      3. 支持复杂数据类型。
    • 缺点:对于相同数据量,json数据文件大小远大于CSV文件

2. 导入外部数据文件

  • CSV文件

    1. 创建xxx.csv文件
    2. 将数据写入到CSV文件
      • 第一行写入的是数据对应的“字段名”
      • 从第二行向后依次是对应的数值,数据间用英文逗号隔分。
    3. 在Postman中,选中使用数据文件的用例集,导入数据文件。
      • 点击用例集名称,使用Run按钮,进入“Runner’"页面
      • 使用"Select File"按钮选择xxx.csv文件。
      • 点击预览按钮,校验数据文件是否正确。

  • JSON文件
    1. 创建xxx.json文件
      (json.cn在线网站)

    2. 在数据文件中,按json语法写入json数据。postman要求,json格式的数据文件,数据内容的最外层,必须是[ ]。内部所有的数据用{}存储。

    3. 在Postman中,选中使用数据文件的用例集,导入数据文件。

      • 点击用例集名称,使用Run按钮,进入“Runner’"页面
      • 使用"Select File"按钮选择xxx.json文件。
      • 点击预览按钮,校验数据文件是否正确。

3. 读取数据文件数据

  • 理论
    根据使用数据位置不同,有两种获取数据文件中数据的方法。

    • 第一种:请求参数(请求行、请求头、请求体)中,使用数据文件中的数据

      • 使用{{}}包裹csv文件字段名或json文件中的key

        • 如: {username}或{password}
    • 第二种:代码(断言、请求前置脚本)中,使用数据文件中的数据
      • 需要借助postman提供的关键字 data 点csv文件的字段名或json文件的key

        • 如: data.username 或 data.password
  • 案例

需求:批量查询手机号归属地、所属运营商,校验运营商数据正确性
接口:http://cx.shouji.360.cn/phonearea.php?number=13012345678
测试数据:
手机号:13012345678
运营商:联通
手机号:13800001111
运营商:移动
手机号:18966778899
运营商:电信

  1. 测试单个接口,工作中参数和响应体数据对应关系。

  2. 写好数据文件,按csv或json对应语法的格式组织数据

  3. 替换上述用例中的两处:

    • 运营商:在代码中用data.字段名 替换
    • 手机号:在查询参数中用{{字段名}}替换
  4. 强调:一旦替换完成,Send就不再能正常获取响应数据(数据必须从数据文件中读取,才能正常发送请求,Send不具备读取数据文件的功能)

  5. 选择使用数据文件的用例集,进入Runner文件,导入数据文件,运行

  6. 如果有异常,借助postman的控制台,查看。
    view–>show postman Console

小结:借助数据文件,实现“数据驱动”。——有多少条数据,对应就有多少个http请求。

4. 生成测试报告

步骤:

  1. 批量执行测试用例(借助数据文件)
  2. 导出测试用例集(建议与数据文件放在一起)
  3. 执行生成测试报告的命令
newman run 用例集名称.json -d 数据文件名.csv/.json -r html --reporter-html-export 报告名称.html

二、iHRM项目实战

1. 简介

  • 功能模块
  • 技术架构
    • 前端:以Node.js为核心的Vue.js前端技术生态架构
    • 后端:
      • SpringBoot+SpringCloud+SpringMVC+SpringData(Spring:全家桶)
      • MySQL+Redis+RabbitMQ

2. 初始化项目环境

  • 新建用例集
  • 创建环境变量

3. 登录模块

  • 组织http请求
  • 添加断言

其他接口共性分析

  1. 由于是同一个接口,因此他们的请求方法、URL、请求头完全一致。
  2. 请求体(请求数据),各不相同。
  3. 预期结果,大致分为3类:
    1. 操作成功!一一登录成功、多参、全部参数
    2. 抱歉系统繁忙一一无参
    3. 用户名密码错误!一一其他情况

4. 员工管理模块

总析:

  1. 登录成功,返回的“令牌”,被添加、查询、修改、删除员工接口依赖。
  2. 添加员工成功,返回的“员工d”,被查询、修改、删除员工接口依赖。

以上的依赖关系,借助postman关联和环境变量实现

提取令牌

  1. 发送http登录请求,在响应体中得到data值。
  2. 将data值拼接"Bearer"和"空格”,组成一个合法令牌。
  3. 将拼接后的令牌环境变量中。(在Tests中通过代码写入)
//拼接data值,添加"Bearer"和"空格”,组成一个合法令牌//获取 响应体,保存在jsonData变量值
var jsonData = pm.response.json()//提取 data的值保存在tmp_token中
var tmp_token = jsonData.data//拼接Bearer和空格到data值前面 "Bearer" + " " + tmp_token
pm.environment.set("env_token", "Bearer" + " " + tmp_token)

添加员工

提取添加员工的id

  1. 获取添加员工成功的data下面的id值
  2. 将员工id设置环境变量(代码写入Test中)
//获取添加员工的响应体
var jsonData = pm.response.json()//提取员工id
var tmp_id = jsonData.data.tmp_id
//设置到环境变量
pm.environment.set("env_emp_id",tmp_id)
  1. 发送之前,注意先修改手机号,保证手机号唯一!
  2. 点击“眼睛”图标查看

    查询员工
    将测试用例中的,请求方法、URL、请求头,写入到postman对应请求中。
    给:target对应的路径参数,填充上"员工id"的值。({{员工id环境变量}})

修改员工

删除员工

查询员工列表

5. 批量执行用例集

  • 给每个http请求添加断言(成功断言)
  • 点击用例集名称,run,进入Runner页面。批量执行。
  • 导出用例集。

6. 导出环境变量生成测试报告

  1. 将环境导出成一个环境文件。
  2. 将环境文件,与测试用例集文件,放置到同一个目录下。
  3. 执行命令
newman run 测试用例集文件.json -e 环境文件.json -r html --reporter-html-export 测试报告名.html

网课来源

【黑马测试】测试基础632-662。

【软件测试】接口测试笔记4相关推荐

  1. 软件测试学习笔记(九)淘宝测试

    软件测试学习笔记(九)淘宝测试 视频链接:软件测试_中国大学MOOC 1.淘宝性能测试经历哪三个发展阶段?简述其工作内容. (1)业务发展-基础阶段 编写性能测试白皮书和测试文档,整理了常用性能测试的 ...

  2. 软件测试学习笔记与思考(1)---软件测试基础

    这学期开始学习软件测试,课本是软件测试(慕课版)郑炜,刘文兴,杨喜兵,王文鹏,吴潇雪主编的. 本来没有打算写相关博客的,但是在做课后习题时想到做测试必然少不了思考,从不同的角度分析,于是就打算用博客来 ...

  3. 软件测试学习笔记(三)控制数据流测试

    软件测试学习笔记(三)控制&数据流测试 视频链接:软件测试_中国大学MOOC 2.3 结构化覆盖 2.4 控制流测试 2.5 数据流测试 1.什么是顶点覆盖? 对每个测试需求,即可达顶点,都可 ...

  4. 【软件测试】软件测试学习笔记(一)

    文章目录 一.软件测试基础 1.1.软件概述 1.1.1.软件生命周期 1.1.2.软件开发模型 1.1.2.1.瀑布模型 1.1.2.1.1.瀑布模型的特点 1.1.2.1.2.瀑布模型的优缺点 1 ...

  5. 【软件测试】接口测试笔记3

    文章目录 前言 一.Postman高级用法 1. 管理测试用例Collections 2. 测试用例集导入.导出 3. Postman断言 4. 全局变量和环境变量 5. Postman请求前置脚本 ...

  6. 以 27K 成功入职字节跳动,这份《 软件测试面试笔记》让我受益终身...

    朋友入职已经两周了,整体工作环境还是非常满意的!所以这次特意抽空给我写出了这份面试题,而我把它分享给小伙伴们,面试&入职的经验! 大概是在5月中的时候他告诉我投递了简历,7月的时候经过了3轮面 ...

  7. 软件测试学习笔记之工具江湖的神兵利器

    有句话是这么说的:能动手就别哔哔,尤其是在工作节奏堪比跑马的今天,大家都推崇实干精神,能解决问题就好,去他的理论.但是无可否认的是,良好的理论素养无论是解决工作中 软件 测试 笔记(一)理论篇 有句话 ...

  8. 【软件测试学习笔记】接口自动化测试基础-Day1 网络协议 2020-09-21

    提示:本文是根据哔哩哔哩源码视频接口测试学习笔记 目录 前言 一.OSI七层协议 1.物理层  ---  只负责传输二进制电信号(无协议) 2.数据链路层 --- 分组.广播(以太网协议) 2.1 M ...

  9. 小博的软件测试学习笔记(V1.0)

    小博,一位非常热心的软件测试领域的博主,乐于分享知识和学习资料,在我的学习交流群里的小伙伴都知道,我经常给大家分享各种资料,说百宝箱也不过分.接下来看一下都发表过哪些文章: 功能测试相关 0基础入门软 ...

最新文章

  1. Git 版本还原命令
  2. 卷积神经网络数学原理解析
  3. python3 计时性能测试 %timeit %%timeit
  4. 安装 mysql-8.0.23-winx64
  5. 瑞银监控机器人组装法_瑞银公布Model 3后续拆解报告:装配问题严重 噪音勉强能接受...
  6. 批量恢复文件的Py脚本
  7. C php反序列化,php反序列化漏洞 - anansec的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. 百度网盘搜索源码,新加分词功能,内容相关度聚合更高
  9. HTML5全屏浏览器兼容方案
  10. 一年月份大小月口诀_家乡山溪长的菖蒲种植有讲究,记住“口诀”事半功倍
  11. JSP直接调用一个action定向到页面
  12. getprop setprop初步探索
  13. Mysql重新安装(ubuntu)
  14. JAVA回合制pk游戏
  15. 远程工具psexec
  16. 手工制作使用WinXShell的PE(不是直接生成) #1
  17. Android实现开屏广告(广点通SDK)
  18. Cadence快速画原理图封装(适合复杂器件)
  19. 第十二届蓝桥杯 2021年省赛真题 (Java 大学A组) 第一场
  20. JavaEE常见面试问题

热门文章

  1. word禁止编辑,禁止复制
  2. android 微信好友,朋友圈分享
  3. 关于MFC修改CButton按钮的颜色、背景、字体
  4. IOS多国语言Localize方法
  5. pytorch深度学习出错整理(一)
  6. ug中许可证服务器,ug教程:ug服务器许可证(LMTOOLS)设置教程
  7. WPF 使用 Direct2D1 画图入门
  8. IP地址和子网划分学习笔记
  9. 初中八年级计算机课程计划,初中信息技术教学计划
  10. NFS服务器配置与管理笔记