当前位置:网站首页>Postman--使用
Postman--使用
2022-07-02 06:36:00 【迷途~知返】
postman-接口测试
接口测试的简介和分类
接口测试是测试系统组件之间的一种测试
借口是软件提供给外部的一种服务,用于做数据传输
分类:
外部接口:测试被测系统和外部系统之间的接口
内部接口:内部接口只提供给内部接口使用(只测试正例)
内部接口提供给外部接口使用(全量测试)
软件为什么需要接口?
因为接口能够让内部的数据被外部进行修改
为什么做接口测试:
很多系统是前后端分离,开发的进度不一样,需要把一开始开发出来的接口进行测试,mock
接口测试本质:就是测试接口能否正常的交互数据,权限控制以及异常场景
接口测试流程和用例设计
拿到api文档,通过抓包工具获取,熟悉接口业务,接口地址,鉴权方式,入参,出参,错误码
编写接口的用例,评审
正例:
输入正参,接口可以正常返回
反例:
鉴权码为空,鉴权码错误,鉴权码过期
参数反例:
参数为空,参数类型错误,参数长度异常
错误码:
其他错误场景:
接口黑名单,接口调用次数限制,分页场景
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
POSTMAN执行接口测试
请求页面
params:get请求传参数
Body:post请求参数
none:没有参数
form-data:键值对也可以支持传文件
x-www-form-urlencoded:键值对参数
raw:json,text,xml,html,js
binary:二进制的方式传参
pre-request-script:请求之前的脚本
Tests:请求之后的断言
cookies:用于管理cookie信息
Cookie:响应的cookie信息
Header:响应头
Test Result:断言结果
200:状态码
OK:状态信息
681ms:接口响应时间
343B:响应子节数
响应页签
Body:接口返回的数据
Pretty:以json,xml。html不同的格式返回数据信息
Raw:以文本的方式查看返回的数据
PreView:以网页的形式查看相应数据
面试题:
Get和Post请求的区别
1、get请求是获取数据,post请求一般提交数据
2、post请求比get请求安全
本质区别是传参方式不一样,:
get传参是在地址栏中后面以?的方式传参数,多参数之间用&链接
post请求在body中以表单的方式传参
问题:
多环境,开发环境,测试环境,生产环境
接口关联:需要手动关联
参数需要手动修改
postman的环境和全局变量
环境变量:环境变量就是全局变量
全局变量:在任何接口中均可以访问的变量
获取环境变量和全局变量的值:通过**{ {变量名}}**
接口关联:
json提取器实现接口关联
第一个接口,生成全局变量
//json提取器提取access_token的值
//将返回的字符串格式的数据转换为对象的形式
var result = JSON.parse(responseBody);
console.log(result.access_token)
//将获取到的access_token设置为全局变量
pm.globals.set("access_token", result.access_token);
第二个接口:通过{
{
变量名}}调用
通过正则表达式
正则表达式提取器实现接口关联
第一个接口
// 正则表达式提取器实现接口关联,表示匹配
var result = responseBody.match(new RegExp('"access_token":"(.*?)"'))
console.log(result[1])
//设置为全局变量
pm.globals.set("access_token", result[1]);
第二个接口
{
{
access_token}}
Postman中的内置动态参数以及自定义的动态参数
postman内置的动态参数,取值方式:
缺点:无法做断言
{
{
$timestamp}}生成当前时间的时间戳
{
{
$randomint}}生成0-1000之间的随机数
{
{
$guid}} 生成一个随机的guid字符串
自定义动态参数在请求之间设置
pre-request-script:请求之前的脚本
// 手动获取当前时间戳
times = Date.now();
// 设置成全局变量
pm.globals.set("times", times);
postman之断言
Status code:Code is 200
Response body:Contains string :检查响应字符还中包含制定字符串
Response body:json value check :检查响应中json的值
Response body:is equal to a string :检查响应等于一个字符串
Response headers:Content-Type header check :检查响应是否包含响应头
Response time is less 200ms :检查请求耗时小于200ms
在断言中获取自定义参数
- 全局变量
pm.test("检查响应中包含标签名", function () {
pm.expect(pm.response.text()).to.include("雄霸" + pm.globals("times"));
});
全局断言
postman批量运行测试用例
保存文件至工作目录
csv文件和json文件的处理
csv文件
1、创建csv文件,
2、nopad++打开csv文件,编写数据文件
3、修改参数为{ {key值}}
4、修改断言
5、修改access_token
6、运行测试用例,csv文件的选择方式
json
数据格式,
创建json格式的文件,写入数据如下
[{
"grancd_text":"chuihcuie","appname":"hjiioiojvioa","secret":"xxxxxxcccccxxxx","access_v":"jjioejionojo756790u90xxx"},{
"grancd_text":"hioioa","appname":"jshdich","secret":"xxxxxxcccccxxxx","access_v":"nfihihia"},
{
"grancd_text":"bdjkchi","appname":"hcuihi9","secret":"xxxxxxcccccxxxx","access_v":"fghj789uhghjb"}]
运行
必须带请求头的接口
Host 请求的主机地址
Connection 连接方式
Accept 客户端接收到的数据格式
X-Request-With 异步请求
User-Agent 客户端的用户类型
Referer 来源
Cookie Cookie信息
Content-Type 请求内容的格式
postman接口Mock Service服务器
mock模拟
后端的接口没有开发完成,前断的业务需要调用后端的接口
postman的Cookie鉴权
什么是cookie
cookie鉴权原理
当客户端第一次访问服务器的时候,那么服务器就会生成Cookie信息,并且响应头的set-cookie里面吧生成的cookie信息发送给客户端
当客户端第2-N次访问服务器的时候,那么客户端就会在请求头的cookie带上cookie信息,从而实现鉴权
cookie的分类:
会话cookie:保存在内存,宕浏览器关闭之后就会自动清除
持久cookie:保存在硬盘,浏览器关闭后不会清除,只有当失效时间到了才会自动清除
token鉴权
Newman
postman是专为接口测试而生。
newman使用方法:
导出用例,到处环境,导出全局变量,测试数据
postman+Newman+jenkins实现持续集成
1、新建项目
2、设置自定义工作空间
3、执行windows的批处理命令
接口测试协议
1、webservice协议:接口地址:http://…?wsdl
soap协议,wsdl
restful规则
get获取数据,post提交数据,put修改数据,delete删除数据
边栏推荐
- 【虚幻】自动门蓝图笔记
- [leetcode] sword finger offer 53 - I. find the number I in the sorted array
- 【虚幻4】从U3D到UE4的转型之路
- Project practice, redis cluster technology learning (12)
- Following nym, the new project Galaxy token announced by coinlist is gal
- Ue5 - AI pursuit (blueprint, behavior tree)
- 【避坑指南】使用UGUI遇到的坑:Text组件无法首行缩进两格
- What is the relationship between realizing page watermarking and mutationobserver?
- Blender石头雕刻
- Alibaba cloud ack introduction
猜你喜欢
虚幻AI蓝图基础笔记(万字整理)
阿里云ack介绍
ICLR 2022: how does AI recognize "things I haven't seen"?
2837xd code generation module learning (1) -- GPIO module
Beautiful and intelligent, Haval H6 supreme+ makes Yuanxiao travel safer
[Yu Yue education] University Physics (Electromagnetics) reference materials of Taizhou College of science and technology, Nanjing University of Technology
2837xd code generation module learning (4) -- idle_ task、Simulink Coder
Mysql索引
Basic notes of illusory AI blueprint (10000 words)
UE5——AI追逐(藍圖、行為樹)
随机推荐
虚幻材质编辑器基础——如何连接一个最基本的材质
Blender camera surround motion, animation rendering, video synthesis
Deep understanding of redis cache avalanche / cache breakdown / cache penetration
Blender多鏡頭(多機比特)切換
【虚幻】武器插槽:拾取武器
Data insertion in C language
This article takes you to learn in detail what is fiber to home FTTH
Error reporting on the first day of work (incomplete awvs unloading)
Alibaba cloud ack introduction
2837xd code generation - stateflow (1)
ICLR 2022: how does AI recognize "things I haven't seen"?
Spatial interpretation | comprehensive analysis of spatial structure of primary liver cancer
Project practice, redis cluster technology learning (16)
Configuration programmée du générateur de plantes du moteur illusoire UE - - Comment générer rapidement une grande forêt
2837xd代码生成模块学习(2)——ADC、ePWM模块、Timer0
XA Transaction SQL Statements
Basic notes of illusory AI blueprint (10000 words)
Large neural networks may be beginning to realize: the chief scientist of openai leads to controversy, and everyone quarrels
Remember the use of add method once
Vscode set JSON file to format automatically after saving