IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 7.4 postman接口测试(补充) -> 正文阅读

[开发测试]7.4 postman接口测试(补充)

1、基础应用

1.1 接口测试的简介和分类

?接口测试就是测试系统组件接口之间的一种测试

分类:

?测试外部接口:测试被测系统和外部系统之间的接口(只需要测试正例即可)

?测试内部接口

??①内部接口只提供给内部系统使用(预算系统,承保系统)(只需要测试正例即可)
??②内部接口提供给外部系统使用(测试必须非常全面,正例,各种异常场景,权限控制)

1.2 接口测试的流程以及用例的设计

?①拿到接口api文档(通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,入参,出参,错误码

?②编写接口用例以及评审

思路:

?正例:输入正常入参,接口能够成功返回数据

?反例

??鉴权反例:
???鉴权码为空,鉴权码错误,鉴权码过期…

??参数反例:
???参数为空,参数类型异常,参数长度异常

??错误码覆盖:
???根据业务而定的

??其他错误场景:
???接口黑名单,接口调用次数限制,分页场景
在这里插入图片描述
?③使用接口测试工具postman执行接口测试

?④postman+newman+jenkins实现持续集成,并且输出测试报告,且发送邮件

1.3 实战-微信公众平台接口

获取权限:
?appid

?secret(秘钥)

1.4 postman界面功能介绍

?Home-主页

?Workspaces-工作空间
??Collections:集合,项目集合
??APIS:api文档
??Environments:环境变量,全局变量
??Mock Server:虚拟服务器
??Monitors:监听器
??History:历史记录

1.5 postman执行接口测试

请求页签:

?Params:get请求传参

?Authorizition:鉴权

?Headers:请求头

?Body:post请求传参
??none(不常用):没有参数
??form-data:既可以传键值对参数,也可以传文件
??x-www-form-urlencoded:只能传键值对参数
??raw:json,text,xml,html,javaScript
??binary:把文件以二进制的方式传参

?Pre-request-script:请求之前的脚本

?Tests:请求之后的断言

?Settings:设置

?Cookies:用于管理cookie信息

响应页签:

?Body:接口返回的数据
??Pretty:以json,html,xml…不同的格式查看返回的数据
??Raw:以文本的方式查看返回的数据
??PreView:以网页的方式查看返回的数据

?Cookies:响应的Cookie信息

?Headers:响应头

?Test Results:断言的结果

?200-状态码
?OK-状态信息

?681ms:响应时间

?343B:响应的字节数

Get请求和Post请求的区别:

?①get请求一般是获取数据,post请求一般是提交数据

?②post请求比get请求安全

?③本质区别是传参方式不同:
??get请求在地址栏后面以?的方式传参,多个参数用&分隔
??post请求是在body以表单的方式传参

问题:

?多种环境:开发环境,测试环境,生产环境
?接口关联:需要手动关联
?参数需要手动修改

1.6 postman的环境变量及全局变量

环境变量:环境变量就是全局变量
全局变量:能够在任何接口中访问的变量

获取环境变量和全局变量的值是通过:{{变量名}}

1.7 接口关联

1.7.1 json提取器实现接口关联

第一个接口:

console.log(responseBody);
//使用json提取器提取access_token值
//把返回的字符串格式的数据转换成对象的形式
var result = JSON.parse(responseBody);
console.log(result.access_token);
//把access_token设置为全局变量
pm.globals.set("access_token", result.access_token);

第二个接口:

{{access_token}}

1.7.2 使用正则表达式提取器实现接口关联

第一个接口:

//使用正则表达式提取器实现接口关联,match匹配
var result = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log(result[1]);
//设置为全局变量
pm.globals.set("access_token", result[1]);

在这里插入图片描述
第二个接口:

{{access_token}}

1.8 postman内置动态参数以及自定义的动态参数

1.8.1 内置动态参数

?{{$timestamp}}:生成当前时间的时间戳

?{{$randomint}}:生成0-1000之间的随机数

?{{$guid}}:生成速记GUID字符串

1.8.2 自定义动态参数

在这里插入图片描述
使用时:{{times}}

1.9 测试其他接口

get请求:在Params中编写内容
post请求:在Body中编写
增删改查:需要形成一个闭环
文件上传:在Body中的form-data中选择file

1.10 postman断言

常规断言:
?Status code:Code is 200 检查返回的状态码是否为200(常用)

?Response body:Contains string 检查响应中包含指定字符串(常用)

?Response body:Json value check 检查响应中其中json的值(常用)

?Response body:is equal to a string 检查响应等于一个字符串(常用)

?Response headers:Content-Type… 检查是否包含响应头Content-Type

?Responsetime is less than 200ms:检查请求耗时小于200ms
在这里插入图片描述
自定义动态断言:
在断言中获取自定义动态参数(全局变量)的方式:

①pm.globals.get("times")
②globals["times"]
③globals.times

全局断言:
在这里插入图片描述

1.11 postman批量运行测试用例

在这里插入图片描述

1.12 postman数据驱动之CSV文件和JSON文件的处理

1.13 测试必须带请求头的接口

常见的请求头:

?Host:请求的主机地址

?Collection:连接方式

?Accept:客户端收到的数据格式【常用】

?X-Requested-With:异步请求【常用】

?User-Agent:客户端的用户类型【常用】

?Referer:来源

?Cookie:Cookie信息【常用】

?Content-Type:请求内容的格式【常用】

1.14 postman接口Mock Server服务器

mock:模拟
后端的接口还没有开发完成,前端的业务需要调用后端的接口

{“error_code”:0,msg:“返回成功”,data:[]}

1.15 postman的Cookie鉴权

什么是cookie?

?cookie是一小段文本,格式:key = value

cookie鉴权的原理:【重要】

?①当客户端第一次访问服务器时,服务器就会生成cookie信息,且在响应头的set-cookie中把生成的cookie信息发送给客户端

?②当客户端第2-N次访问服务器时,客户端会在请求头的cookie带上cookie信息,从而实现鉴权

cookie的分类:

?①会话cookie:保存在内存,当浏览器关闭后会自动化消除cookie

?②持久cookie:保存在硬盘,浏览器关闭后不会清除,只有当失效时间到了才会自动清除

1.16 Newman

postman专门为接口测试而生,newman转为postman而生,newman可以让postman的脚本通过非GUI(命令行)的方式去运行

?运行命令:newman run

常用参数:

?-e:引用环境变量

?-g:引用全局变量

?-d:引用数据文件

?-n:指定测试用例迭代次数

?-r cli,html,json,junit --reporter-html-export:指定生成HTML的报告
在这里插入图片描述

1.17 postman+newman+Jenkins实现接口测试持续集成

?①新建一个项目

?②设置自定义工作空间

?③执行windows的批处理命令
在这里插入图片描述
?④执行系统的Groovy脚本
在这里插入图片描述
?⑤生成的HTML的报告集成到Jenkins
在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 22:01:22  更:2021-11-14 22:02:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 3:00:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码