Postman接口测试从入门到精通(一)
一、接口测试的简介和分类
接测试就是测试系统组件接口之间的一种测试。
分类︰
测试外部接∶测试被测系统和外部系统之间的接口。(只需要测试正例即可,看是否调用成功即可)
测试内部接口:
1.内部接口只提供给内部系统使用。((预算系统,承保系统)(只需要测试正例即可)
2.内部接口提供给外部系统使用。(测试必须非常全面,正例,各种异常场景,权限控制)
二、接口测试的流程以及用例的设计
1.拿到接口api文档(通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,入参,状态码。
⒉编写接口用例以及评审。
思路:
正例∶输入正常入参,接口能够成功返回数据。反例:
鉴权反例:
鉴权码为空,鉴权码错误,鉴权码过期,-..…..
参数反例︰
参数为空,参数类型异常,参数长度异常。
错误码覆盖︰
根据业务而定的。
其他错误场景︰
接口黑名单,接口调用次数限制,分页场景。
3.使用接口测试工具Postman执行接口测试。
4.Postman+Newman+Jenkins实现持续集成,并里输出测试报告并且发送邮件。
三、微信公众平台接口
获取权限∶
appid( ID) ;secret(秘钥):
四、Postman的简介,安装,注册。
安装
1.Chrome应用商品搜索Postman安装。(FQ)
2客户端安装
官网地址: https:/ilwww.postman.com/downloads/
3.Postman的注册和登录。
4.Postman的界面介绍
Home主页
workspaces工作空间
- Collections集合,项目集合。
- Apis api文档
- EnViromments环境变量,全局变量
- Mock Server 虚拟服务器。
- Monitors 监听器
- History 历史记录
五、Postman执行接口测试
请求页签
- Params : get请求传参
- authorization:鉴权
- headers:请求头
- Body : post请求传参
- form-data:既可以传键值对参数也可以传文件。
- x-www-from-urlencoded:只能够传键值对参数
- raw : json , text , xml , html, javascript
- binary :把文件以二进制的方式传参。
- pre-request-script:请求之前的脚本。
- tests :请求之后的断言。
- cookies :用于管理cookie信息。
响应页签:
- Body:接口返回的数据。
- Pretty :以Json , html,XML....不同的格式查看返回的数据。
- Raw.以文本的方式查看返回的数据。
- PreView:以网页的方式查看返回的数据。
- Cookies:响应的Cookief信息
- Headers :响应头
- Test Results"断言的结果。
- 200状态码
- OK状态信息
-
681MS响应的时间
-
343B响应的字节数
面试题:
Get请求和Post请求的区别:
1.get请求一般是获取数据,post请求一般的提交数据。
2.post请求比get请求安全。
3.本质区别是传参的方式不一样: get请求在地址栏后面以?的方式传参,多个参数之间用&分隔。post请求是在body以表单的方式传参。
问题:
多种环境:开发环境,测试环境,生成环境。
接口关联:需要手动关联,参数需要手动修改。
六、Postman的环境变量以及全局变量
环境变量:环境变量就是全局变量
全局变量:全局变量是能够在任何接里面访问的变量,
获取环境变量和全局变量的值通过:{{变量名}}
七、接口关联
1.使用json提取器实现接关联
第一个接口:
//使用json提取器提取accesss_token值。
//把返回的字符串格式的数据转换成对象的形式。
var result =JSON.parse(responseBody ) ;
//把access_token设置为全局变量
pm.globals.set( "access_token" ,result.access_token) ;
第二个接口:
{{access_token})
2.使用正则表达式提取器实现接口关联
1第一个接口:
//使用正则表达式提取器实现接口关联,match匹配。
var result = responseBody.match(new RegExp(' "access_token" :" ( .*? )" '));
console.log(result[1]);
//设置为全局变量
pm.globals.set("access_token" , result[1]);
第二个接口:
{{access_token}}
八、Postman内置动态参数以及自定义的动态参数postman内置动态参数;
{EStimestampl} 生成当前时间的时问戳。
{}ESrandomlInt} 生成0-1000之间的随机数
{guid} 生成速记GUID字符串。
{Stimestamp}生成当前时间的时间戳。{($randomIntl}生成0-1000之间的随机数{iSguid}}
生成速记GUID字符串。
自定义动态参数︰
1//手动的获得时间戳
2 var times = Date.now();
3//设置为全局变量
4 pm.globals. set("times" ,times );
5使用时使用:{{times}}
九、测试其他接口

十、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
Response time is less than 200ms :检直请求耗时小于200ms
//断言//业务断言
pm.test("检查响应中包括access_token" , function oE
pm .expect(pm.response.text()).to.include("access_tdksen't;);
浙公网安备 33010602011771号