postman使用进阶

一、何为接口测试

接口测试原理: 模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端再接收应答的一个过程;

接口测试范围: 接口的功能、性能、安全性。重点关注数据的交换,传递和控制管理过程,还包括处理的次数;

二、Postman的应用场景

1、基于http协议的rest架构接口;

2、支持https;

3、单接口测试;

4、接口抓包;

5、接口集自动化测试;

6、接口自动化持续集成测试

三、Postman的优缺点

postman使用进阶_第1张图片

四、Postman的结构 

基本的测试框架结构: 测试项目(project)-测试模块(testsuit)-测试用例(testcase)

Postman:Collection就相当于是Project,而Collection中可以创建不定层级的Folders,可以自己组织TestSuite。每个Request可以当做是一个TestCase或者Step

postman使用进阶_第2张图片

五、Postman的界面简介

界面操作详情介绍:https://www.realaction.cn/views/page2/3.html

postman使用进阶_第3张图片

(1)抓包

postman使用进阶_第4张图片

1、点击上图的设置代理按钮;

2、在弹出框中填写端口和存放的文件夹点击连接;

3、手机端设置代理;

4、在存放的文件夹中查看抓包 接口;

(2) Get请求

1、请求方式设为GET, 同时输入完整的url, 跟访问浏览器一样, 或者输入接口url, 点击“Params” 输入需要的key 以及value, 点击“Send”, 即可在 “Response” 中查看返回的结果;  2、有些get接口需要headers;

(3)post请求

选择请求方式为post,输入请求的url,以及输入必要的"Authorization" , "header" 和"Body" 数据。post请求可以发送key-value, json格式,file等 

post请求可以有5种发送内容方式:

1、URI 传参:跟get接口方式相同;

2、Form-data 传参:即可上传传键值对也可上传文件;

3、x-www-form-urlencoded传参 :相当于url传参,只是没有长度的限制,只能上传键值对;

4、raw:目前使用最多的方式,可上传任意格式的文本,我们一般默认使用json;

5、binary 传参:一次只能上传一个文件;

postman使用进阶_第5张图片

 六、自动化相关

(1)全局变量和环境变量

环境变量: 用于定义不同的环境(一般是服务器地址/api版本/header信息等),作用域是当前环境 全局变量:可全局使用的变量 引用方式: {{variable_name}},可以在 url地址栏,Headers,body,Pre-request Script,Tests中引用 环境变量和全局变量的key值名称必须是唯一的

 postman使用进阶_第6张图片

 环境(全局)变量的常用使用位置: 1)URL地址 2)使用GET方法时的Params的value值 3)使用POST方法时Body中value值 4)Header的value值

(2)postman中的动态参数设置 

应用场景:构建包含动态参数的request, request之间传递数据等 三种实现方式:

1.Postman有以下内建变量,适合一次性使用    ①{{$guid}}//生成GUID   ② {{$timestamp}}//当前时间戳    ③{{$randomInt}}//0-1000的随机整数

2.参数依赖上一个请求的返回     上个请求的Tests里提取参数存环境变量,这个请求里用{{变量名}}取值

3.参数每次都不同,但之后的断言或别的请求里可能还要用     在Pre-request Script里写代码处理,存为环境变量,参数里用{{变量名}}取值

第2和第3中方式说明:    1. 在发送request之前,编写pre-request script,定制化request;       2. 收到response之后,用test script,处理返回的数据;  流程:

postman使用进阶_第7张图片

 相关:动态参数都是使用环境变量或全局变量的方式

常用的提取方式举例:

登录接口提取uid和token:

1、在tester中定义: var data = JSON.parse(responseBody);//定义data读取返回的json postman.setEnvironmentVariable(“uid”, data.result.userid);//把userid读取出来赋给环境变量 uid postman.setEnvironmentVariable(“token”, data.result.token);//把token读取出来赋给环境变量 token

2、运行后查看环境变量:

postman使用进阶_第8张图片

3、其他接口中使用:

postman使用进阶_第9张图片

(3)常用tests断言语法 

 1、判断接口状态码: Tests["Status code is 200"] = responseCode.code = 200;

2、检查response是否包含一个字符串: tests["Body matches string"] =responseBody.has("true"); 3、检查response是否等于一个字符串: tests["Body is correct"] = responseBody === "response_body_string";

4、检查JSON值: var data = JSON.parse(responseBody); tests["Your test name"] = data.value === 100;

5、响应时间在一个特定的范围内(包括下限和上限): tests["Response time is acceptable"] = _.inRange(responseTime, 100, 1001);

6、将xml体转换为JSON对象: var jsonObject = xml2Json(responseBody);

更详细的介绍:https://blog.csdn.net/qq1124794084/article/details/78049456

(5)runner

1、用例集(collection)选择;

2、环境变量选择;

3、执行次数,注意:当选择本地数据时,这个执行次数会根据本地数据的条数自动更新的

4、间隔时间;

5、日志打印级别选择;

6、可以选择加载一个 CSV/JSON的数据文件,通常作为本地参数使用;

postman使用进阶_第10张图片

(6)团队协作

1、支持collection的导入导出,json格式;

2、支持环境的导入导出,json格式;

3、导出用例至各种编码格式;

4、导出运行结果,json格式; 

你可能感兴趣的:(测试技术,postman,接口,软件测试)