51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 572|回复: 0
打印 上一主题 下一主题

postman接口测试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-27 16:09:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、接口测试的简介和分类
接口测试就是测试系统俎件接口之间的一种测试。分类∶

测试外部接口∶测试被测系统和外部系统之问的接口。(只需要测试正例即可)
测试内部接口∶
1.内部接口只提供给内部系统使用。(预算系统,承保系统)(只需要测试正例即可)
⒉.内部接口提供给外部系统使用。(测试必须非常全面,正例,各种异常场景,权限控制
二、接口测试的流程以及用例的设计
1.拿到接口api文档(通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,入参,出参,错误码
2编写接口用例以及评审。思路∶
(1)正例∶输入正常入参,接口能够成功返回数据
(2)反例:
a.鉴权反例︰鉴权码为空,鉴权码错误,鉴权码过期,…-
b.参数反例︰参数为空,参数类型异常,参数长度异常
c.错误码覆盖∶根据业务而定的
d.其他错误场景∶接口黑名单,接口调用次数限制,分页场景

3.使用接口测试工具Postman执行接口测试

4.Postman+Newman+Jenkins实现持续集成,并且输出测试报告并且发送邮件

三、Postman执行接口测试
请求页签

Params : get请求传参

authorization:鉴权

headers:请求头

Body : post请求传参
a.form-data :既可以传键值对参数也可以传文件
b.x-www-from-urlencoded:只能够传键值对参数
c.raw : json , text, xml , html, javascript
d.binary :把文件以二进制的方式传参

pre-request-script:请求之前的脚本

tests :请求之后的断言

cookies :用于管理cookie信息

Body:接口返回的数据。
a.Pretty : 以Json , html,XML…不同的格式查看返回的数据。
b.Raw:以文本的方式查看返回的数据。
c.PreView.以网页的方式查看返回的数据
Cookies:响应的Cookie信息
Headers :响应头
Test Results"断言的结果。200状态码
OK状态信息
681MS 响应的时间
343B响应的字节数
面试题∶
Get请求和Post请求的区别︰
1.get请求一般是获取数据,post请求一般的提交数据。
2.post请求比get请求安全。体现在post通过在body里面的表单来提交数据,比get直接写在地址栏的安全
3.本质区别也就是是传参的方式不一样︰
get请求在地址栏后面以?的方式传参,多个参数之间用&分隔。post请求是在body以表单的方式传参。

问题:
多种环境∶开发环境,测试环境,生成环境。
接口关联∶需要手动关联
参数需要手动修改。

四、Postman的环境变量以及全局变量
环境变量:环境变量就是全局变量
全局变量:全局变量是能够在任何接口里面访问的变量。

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

五、接口关联
1.使用json提取器实现接口关联
在获取token的接口上
console.log(responseBody);
//打印responseBody
var result = JSON.parse(responseBody);
//JSON提取器,字符串数据转换为对象形式,并赋值给result
console.log(result.data.token);
//打印token
pm.globals.set("itoken", result.data.token);
//设置itoken为全局变量


在使用接口的token的接口上
itoken       {{itoken}}

执行后


使用全局变量

2.使用正则表达式提取器实现接口关联
在获取token的接口上
var result = responseBody.match(new RegExp('{"code":"200","msg":"操作成功","data":{"id":1,"username":"admin","password":"admin","state":1,"createTime":"2021-11-21 21:47:55","updateTime":"2021-11-21 21:48:00","menuUrlPathList":null,"token":"(.*?)"}}'));
//使用正则表达式提取器实现接口关联,match匹配。将所要提取部分用(.*?)来替代
console.log(result);
//打印得到两个数据,其中1为所需
console.log(result[1]);
//打印数据1
pm.globals.set("itoken", result[1]);
//设置为全局变里


在使用token的接口上
itoken       {{itoken}}


六、Postman内置动态参数以及自定义的动态参数
postman内置动态参数︰
{{KaTeX parse error: Expected 'EOF', got '}' at position 10: timestamp}̲}生成当前时间的时间戳。 {{randomintl}生成0-1000之间的随机数
{{$guid}}生成速记GUID字符串。


自定义动态参数
设置times全局变量

var times = Date.now();
//手动的获得时间戳

pm.globals. set( "times" ,times );
//设置为全局变量

使用时使用:
{[{times]}






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 17:03 , Processed in 0.067170 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表