postman接口测试

一、接口测试的简介和分类

接口测试就是测试系统俎件接口之间的一种测试。分类∶

  • 测试外部接口∶测试被测系统和外部系统之问的接口。(只需要测试正例即可)
  • 测试内部接口∶
    1.内部接口只提供给内部系统使用。(预算系统,承保系统)(只需要测试正例即可)
    ⒉.内部接口提供给外部系统使用。(测试必须非常全面,正例,各种异常场景,权限控制

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

1.拿到接口api文档(通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,入参,出参,错误码
2编写接口用例以及评审。思路∶
(1)正例∶输入正常入参,接口能够成功返回数据
(2)反例:
a.鉴权反例︰鉴权码为空,鉴权码错误,鉴权码过期,…-
b.参数反例︰参数为空,参数类型异常,参数长度异常
c.错误码覆盖∶根据业务而定的
d.其他错误场景∶接口黑名单,接口调用次数限制,分页场景

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

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

三、Postman执行接口测试

请求页签
postman接口测试_第1张图片

  • 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信息

响应页签∶
postman接口测试_第2张图片

  • 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}}

postman接口测试_第3张图片
执行后
postman接口测试_第4张图片
postman接口测试_第5张图片

使用全局变量
postman接口测试_第6张图片
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接口测试_第7张图片

六、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]}

你可能感兴趣的:(Web,postman,后端,测试工具,java,接口)