【软件测试】接口测试笔记4
文章目录
- 前言
- 一、Postman读取外部数据文件(参数化)
- 1. 数据文件简介
- 2. 导入外部数据文件
- 3. 读取数据文件数据
- 4. 生成测试报告
- 二、iHRM项目实战
- 1. 简介
- 2. 初始化项目环境
- 3. 登录模块
- 4. 员工管理模块
- 5. 批量执行用例集
- 6. 导出环境变量生成测试报告
- 网课来源
前言
Postman读取外部数据文件(参数化)
使用Postman实现iHRM系统登录模块和员工管理模块接口测试
一、Postman读取外部数据文件(参数化)
当http请求,使用的数据有较高相似度时,相同的请求时,考虑使用参数化(将数据组织到数据文件中)
1. 数据文件简介
- csv:
- 优点:数据组织形式简单,适用于大量数据的场合
- 缺点:
- 不支持boolen类型数据(数据被postman读入后,自动添加“”包裹boolen类型)
- 不支持多参、少参、无参、错误参数的接口测试。
- 不支持复杂数据类型。(如嵌套字典、列表等)
- JSON
- 优点:
- 支持boolen类型。
- 支持多参、少参、无参、错误参数。
- 支持复杂数据类型。
- 缺点:对于相同数据量,json数据文件大小远大于CSV文件
- 优点:
2. 导入外部数据文件
- CSV文件
- 创建xxx.csv文件
- 将数据写入到CSV文件
- 第一行写入的是数据对应的“字段名”
- 从第二行向后依次是对应的数值,数据间用英文逗号隔分。
- 在Postman中,选中使用数据文件的用例集,导入数据文件。
- 点击用例集名称,使用Run按钮,进入“Runner’"页面
- 使用"Select File"按钮选择xxx.csv文件。
- 点击预览按钮,校验数据文件是否正确。
- JSON文件
创建xxx.json文件
(json.cn在线网站)在数据文件中,按json语法写入json数据。postman要求,json格式的数据文件,数据内容的最外层,必须是[ ]。内部所有的数据用{}存储。
在Postman中,选中使用数据文件的用例集,导入数据文件。
- 点击用例集名称,使用Run按钮,进入“Runner’"页面
- 使用"Select File"按钮选择xxx.json文件。
- 点击预览按钮,校验数据文件是否正确。
3. 读取数据文件数据
理论
根据使用数据位置不同,有两种获取数据文件中数据的方法。- 第一种:请求参数(请求行、请求头、请求体)中,使用数据文件中的数据
- 使用{{}}包裹csv文件字段名或json文件中的key
- 如: {username}或{password}
- 使用{{}}包裹csv文件字段名或json文件中的key
- 第二种:代码(断言、请求前置脚本)中,使用数据文件中的数据
- 需要借助postman提供的关键字 data 点csv文件的字段名或json文件的key
- 如: data.username 或 data.password
- 需要借助postman提供的关键字 data 点csv文件的字段名或json文件的key
- 第一种:请求参数(请求行、请求头、请求体)中,使用数据文件中的数据
案例
需求:批量查询手机号归属地、所属运营商,校验运营商数据正确性
接口:http://cx.shouji.360.cn/phonearea.php?number=13012345678
测试数据:
手机号:13012345678
运营商:联通
手机号:13800001111
运营商:移动
手机号:18966778899
运营商:电信
测试单个接口,工作中参数和响应体数据对应关系。
写好数据文件,按csv或json对应语法的格式组织数据
替换上述用例中的两处:
- 运营商:在代码中用data.字段名 替换
- 手机号:在查询参数中用{{字段名}}替换
强调:一旦替换完成,Send就不再能正常获取响应数据(数据必须从数据文件中读取,才能正常发送请求,Send不具备读取数据文件的功能)
选择使用数据文件的用例集,进入Runner文件,导入数据文件,运行
如果有异常,借助postman的控制台,查看。
view–>show postman Console
小结:借助数据文件,实现“数据驱动”。——有多少条数据,对应就有多少个http请求。
4. 生成测试报告
步骤:
- 批量执行测试用例(借助数据文件)
- 导出测试用例集(建议与数据文件放在一起)
- 执行生成测试报告的命令
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请求
- 添加断言
其他接口共性分析
- 由于是同一个接口,因此他们的请求方法、URL、请求头完全一致。
- 请求体(请求数据),各不相同。
- 预期结果,大致分为3类:
- 操作成功!一一登录成功、多参、全部参数
- 抱歉系统繁忙一一无参
- 用户名密码错误!一一其他情况
4. 员工管理模块
总析:
- 登录成功,返回的“令牌”,被添加、查询、修改、删除员工接口依赖。
- 添加员工成功,返回的“员工d”,被查询、修改、删除员工接口依赖。
以上的依赖关系,借助postman关联和环境变量实现
提取令牌
- 发送http登录请求,在响应体中得到data值。
- 将data值拼接"Bearer"和"空格”,组成一个合法令牌。
- 将拼接后的令牌环境变量中。(在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
- 获取添加员工成功的data下面的id值
- 将员工id设置环境变量(代码写入Test中)
//获取添加员工的响应体
var jsonData = pm.response.json()//提取员工id
var tmp_id = jsonData.data.tmp_id
//设置到环境变量
pm.environment.set("env_emp_id",tmp_id)
- 发送之前,注意先修改手机号,保证手机号唯一!
- 点击“眼睛”图标查看
查询员工
将测试用例中的,请求方法、URL、请求头,写入到postman对应请求中。
给:target对应的路径参数,填充上"员工id"的值。({{员工id环境变量}})
修改员工
删除员工
查询员工列表
5. 批量执行用例集
- 给每个http请求添加断言(成功断言)
- 点击用例集名称,run,进入Runner页面。批量执行。
- 导出用例集。
6. 导出环境变量生成测试报告
- 将环境导出成一个环境文件。
- 将环境文件,与测试用例集文件,放置到同一个目录下。
- 执行命令
newman run 测试用例集文件.json -e 环境文件.json -r html --reporter-html-export 测试报告名.html
网课来源
【黑马测试】测试基础632-662。
【软件测试】接口测试笔记4相关推荐
- 软件测试学习笔记(九)淘宝测试
软件测试学习笔记(九)淘宝测试 视频链接:软件测试_中国大学MOOC 1.淘宝性能测试经历哪三个发展阶段?简述其工作内容. (1)业务发展-基础阶段 编写性能测试白皮书和测试文档,整理了常用性能测试的 ...
- 软件测试学习笔记与思考(1)---软件测试基础
这学期开始学习软件测试,课本是软件测试(慕课版)郑炜,刘文兴,杨喜兵,王文鹏,吴潇雪主编的. 本来没有打算写相关博客的,但是在做课后习题时想到做测试必然少不了思考,从不同的角度分析,于是就打算用博客来 ...
- 软件测试学习笔记(三)控制数据流测试
软件测试学习笔记(三)控制&数据流测试 视频链接:软件测试_中国大学MOOC 2.3 结构化覆盖 2.4 控制流测试 2.5 数据流测试 1.什么是顶点覆盖? 对每个测试需求,即可达顶点,都可 ...
- 【软件测试】软件测试学习笔记(一)
文章目录 一.软件测试基础 1.1.软件概述 1.1.1.软件生命周期 1.1.2.软件开发模型 1.1.2.1.瀑布模型 1.1.2.1.1.瀑布模型的特点 1.1.2.1.2.瀑布模型的优缺点 1 ...
- 【软件测试】接口测试笔记3
文章目录 前言 一.Postman高级用法 1. 管理测试用例Collections 2. 测试用例集导入.导出 3. Postman断言 4. 全局变量和环境变量 5. Postman请求前置脚本 ...
- 以 27K 成功入职字节跳动,这份《 软件测试面试笔记》让我受益终身...
朋友入职已经两周了,整体工作环境还是非常满意的!所以这次特意抽空给我写出了这份面试题,而我把它分享给小伙伴们,面试&入职的经验! 大概是在5月中的时候他告诉我投递了简历,7月的时候经过了3轮面 ...
- 软件测试学习笔记之工具江湖的神兵利器
有句话是这么说的:能动手就别哔哔,尤其是在工作节奏堪比跑马的今天,大家都推崇实干精神,能解决问题就好,去他的理论.但是无可否认的是,良好的理论素养无论是解决工作中 软件 测试 笔记(一)理论篇 有句话 ...
- 【软件测试学习笔记】接口自动化测试基础-Day1 网络协议 2020-09-21
提示:本文是根据哔哩哔哩源码视频接口测试学习笔记 目录 前言 一.OSI七层协议 1.物理层 --- 只负责传输二进制电信号(无协议) 2.数据链路层 --- 分组.广播(以太网协议) 2.1 M ...
- 小博的软件测试学习笔记(V1.0)
小博,一位非常热心的软件测试领域的博主,乐于分享知识和学习资料,在我的学习交流群里的小伙伴都知道,我经常给大家分享各种资料,说百宝箱也不过分.接下来看一下都发表过哪些文章: 功能测试相关 0基础入门软 ...
最新文章
- Git 版本还原命令
- 卷积神经网络数学原理解析
- python3 计时性能测试 %timeit %%timeit
- 安装 mysql-8.0.23-winx64
- 瑞银监控机器人组装法_瑞银公布Model 3后续拆解报告:装配问题严重 噪音勉强能接受...
- 批量恢复文件的Py脚本
- C php反序列化,php反序列化漏洞 - anansec的个人空间 - OSCHINA - 中文开源技术交流社区...
- 百度网盘搜索源码,新加分词功能,内容相关度聚合更高
- HTML5全屏浏览器兼容方案
- 一年月份大小月口诀_家乡山溪长的菖蒲种植有讲究,记住“口诀”事半功倍
- JSP直接调用一个action定向到页面
- getprop setprop初步探索
- Mysql重新安装(ubuntu)
- JAVA回合制pk游戏
- 远程工具psexec
- 手工制作使用WinXShell的PE(不是直接生成) #1
- Android实现开屏广告(广点通SDK)
- Cadence快速画原理图封装(适合复杂器件)
- 第十二届蓝桥杯 2021年省赛真题 (Java 大学A组) 第一场
- JavaEE常见面试问题