接口测试--postman

一、接口相关知识

1、get请求
get请求可以直接在浏览器中访问
get请求使用postman发送时,参数写在Params中
在这里插入图片描述

2、post请求
1)接口文档中未指定传参类型时,可使用key-value的方式进行传参,使用方式如下:
在这里插入图片描述
2)接口文档中指定传参类型为json时,传参时必须传json格式的,使用方式如下:
在这里插入图片描述
3)接口中需要传cookie的,需要在headers中添加cookie
4)上传文件的接口,写完参数后,修改参数的方式为file,使用如下:
在这里插入图片描述
form-data与x-www-form-urlendoced
form-data可以传多媒体类型的参数,而x-www-form-urlencoded不能传多媒体类型的参数

get与post
get请求一般用于向服务器获取数据
post请求一般用于向服务器发送数据
get请求无请求体,它的数据直接放在url后面
get请求传输的数据没有post请求传的参数多

http状态码
1、2开头
200:请求成功

2、3开头
301:重定向,资源(网页等)被永久转移到其它URL
302:重定向,资源(网页等)临时被转移到其它URL

3、4开头:说明是客户端的问题
401:请求要求用户的身份认证
403:服务器理解请求客户端的请求,但是拒绝执行此请求
404:请求的资源(网页等)不存在

4、5开头:说明是服务端的问题
500:服务器内部错误,无法完成请求
503:由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504:请求超时,充当网关或代理的服务器,未及时从远端服务器获取请求

二、postman的使用

1、设置全局变量
作用: 一般host都会设置成全局变量,当变化环境进行测试时,只需要修改变量的值即可,不用一个请求一个请求的去修改host的内容
1)点击右上角的小齿轮按钮
在这里插入图片描述
2)点击globals
在这里插入图片描述
3)添加变量名称和值
在这里插入图片描述
4)请求中使用全局变量,格式:{{host}}
在这里插入图片描述
2、使用postman批量跑多个用例–参数化
作用: 参数化后,同一个接口需要传不同的参数时,只需要把参数写在文件中,批量执行即可,不用每次都手动去修改参数值;也用于两个接口之间有数据的传递时进行使用
1)请求中参数值需要参数化,如下图所示
在这里插入图片描述
json传参参数化,格式如下:
在这里插入图片描述
2)准备参数化的参数值文件,参数化文件中第一行需要写上参数名称,多个参数时,用‘,’进行隔开
在这里插入图片描述
3)点击postman左上角的runner
在这里插入图片描述
4)runner界面进行设置,选择接口,上传文件,填写循环次数
在这里插入图片描述
注:a、先选择文件上传后,再填写循环次数,要不然,选择文件后,会将先填写的循环次数重置为1
b、若结果中无请求结果,注意一下是否有将结果值存储(Save responses)
c、文件中有中文的,打开乱码的话,可以将文件另存为一下,编码选择utf-8即可
d、执行过程中,若参数文件中只有3行数据,循环的次数是4次的话,最后一个会报错,不会重新循环从第一个去取
e、编写的接口若没有进行save的话,执行后如图所示
在这里插入图片描述
3、设置检查点

作用: 对请求结果值进行断言,判断请求结果是否符合预期
1)Tests tab下添加检查点
在这里插入图片描述
2)添加检查的时,可以从右侧列表中选择不同检查点的使用方式
不同检条件使用方式如下:
a、检查状态码

#检查请求状态码
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);}

b、获取变量

#Get a variable--获取变量
pm.variables.get("name")

#Get a global variable--获取全局变量
pm.globals.get("variable_key");

c、设置变量

#Set a global variable--设置全局变量
pm.globals.set("variable_key", "variable_value");

d、response body值的校验

#Response body:Contains string--检查请求结果中是否包含预期的值
pm.test("检查结果name", function () {
    pm.expect(pm.response.text()).to.include("");
});

#Response body:Is equal to a string--检查请求结果是否等于某个值
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

#Response body:JSON value check--请求结果是json串的,可以具体的针对某个Key-value进行检查
pm..test("检查id", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.stu_info[0].name).to.eql(pm.variables.get("name"));
});

三、postman常用场景使用方法

1、用例批量执行的时候,每条用例的断言的结果值不一样,需要区别断言

可以将断言结果值写在参数化的文件中,断言的时候,取变量名称进行比较
pm.variables.get("variable_key");
pm.test("检查结果name", function () {
    pm.expect(pm.response.text()).to.include(pm.variables.get("name"));
});

2、访问一个请求时,需要先登录,需要将登录请求的cookie传入下一个请求进行使用

1)登录请求的tests中,写入如下代码
var data=JSON.parse(responseBody);
var cookie=data.login_info.sign;
pm.environment.set("cookie",cookie);

2)下一个请求的headers中添加cookie变量,变量值为{{cookie}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值