postman接口测试

https://www.bilibili.com/video/BV134411v7Sj?p=11  视频 特丝汀 接口测试

一 postman发起请求

》get请求四要素:方法,url,参数,请求头

其中get请求,url中的参数,会自动填充到参数列

》post请求: 参数传递格式,头域里边content-type规定

1 演示示例:以该商城登录为例子,www.testingedu.com.cn:8000/Home/user/login.html

信息通过接口文档或者抓包获得

参数传递:post请求的参数传递在body请求体中,body中传递格式设置与请求头中Content-Type保持一致

>x-www-form-urlencoded 传递键值对格式  登录接口测试

>multipart/form-data 可以传递键值对 和 文件格式 上传图片接口测试

注:body参数里边 key下拉框选择file类型

2 post接口请求实战

用友云新发债券查询接口:

 查询新发债券的接口,头域,body

3 json格式请求发包 application/json;charset=UTF-8

post  url  headers-content-type

body-raw-json

住逻辑登录接口

二 断言与变量

天气接口

1变量设置:

get请求,params里边,value列{{}}两个大括号里边填写变量名称,即可实现通过变量调用

其中三个默认的全局变量  $guid  $randomint 随机变量 $timestamp 时间戳

全局变量是,postman的所有接口测试项目都可以使用的,环境变量是,选择哪个项目,哪个项目可以使用

>创建变量,右上角设置里边添加

>使用变量,,右上角下拉框选择变量

>调用变量{{cityname}} 

globals  cityname  海口  海口

ip 1.1.1.1  1.1.1.1   {{ip}}

环境变量优先级高于全局变量,选择了环境变量,不会受到全局变量影响

2 断言:验证返回结果是否符合预期

天气接口

>pre-request Script  发送接口请求之前的操作

右侧有快捷功能,选择相应的功能,自动生成代码

get环境变量  pm.environment.get("cityname"); 参数是环境变量名称

pm.environment.set("cityname","武汉");

>Tests  重点,用于断言操作 ,发送接口请求之后,得到返回信息的操作

返回码 返回头域 响应体

pm.test("验证状态码是200",function(){

pm.response.to.have.status(200);  //判断返回的状态码是不是200

});

pm.test("返回主体中是否包含武汉字符",function(){

pm.expect(pm.response.text()).to.include("\\u4e2d\\u56fd"); //这里response.text()获得到的是返回的最原始的信息,也就是raw里边显示的,所以include后边包含武汉应该是unicode编码的字符,而不是武汉的汉字形式 

})

pm.test("验证返回的city值是武汉",function(){     这个比较常用

var jsonData = pm.response.json(); //获取json格式的返回结果

pm.expect(jsonData.city).to.eql("武汉"); //response.json()会把unicode格式解码成汉字形式,所以这里填写武汉 汉字即可

})

pm.response.to.have.body()这个校验的是完整的body ; body is equal to a string 

headers:

pm.response.to.have.header("Server"); 头域中包含 Server

pm.expect(pm.response.responseTime).to.be.below(50);  请求时间小于50ms

证券接口

返回是数组形式的

var jsonData=pm.response.json(); jsonData[0]

console.log(jsonData[0].status);

jsonData.data[0].location

for循环

var jsonData = pm.response.json();

for(var i = 0; i<10;i++){

console.log(jsonData.result.items[i].first_comment);

}

三 数据驱动 ddt

测试集,run

百度ip环境

iteration  接口请求执行几次

log fresponse  请求是否记录日志,一般选 all requests

data  数据驱动的方法

天气 百度ip数据驱动

‘数据驱动:从数据文件中读取相应的数据

测试用例中的数据,比如期望返回结果是啥,实际返回结果与期望返回结果做对比

data.cigyname

excel文件存储为csv格式

postman只支持utf-8的编码,excel 是jbk编码,需要对csv文件进行一下编辑,使用代码编辑器,转换成utf-8编码,注意不要有空行,只保留数据行。(notepad++,等)

接口请求使用数据驱动数据 步骤

参数使用变量名称获取{{}}

在Scripts  tests测试沙箱中,参数的获取使用data.参数名称的形式来读取

创建测试数据文件:使用csv格式的,注意要改成utf-8编码形式

选择了数据文件之后,预览一下测试文件

四 进阶篇-cookie

tp商城实战

登录抓包,获得  url  请求方法 ,头域  请求参数(注意cookie)

1 已知道cookie,直接在头域添加

2 postman 本身的cookies管理,先调用登录这类的前置接口,来获得cookies,postman会自动保存,再调用,我们需要测试的接口就可以了

一般是postman先请求一下登录接口,然后postman会自动保存cookies管理

五 token与参数传递篇

www.testingedu.cn/inter/index.html

看接口文档提供的接口信息  :注册  登录  获取用户信息  注销  

网站功能操作一遍,来看接口文档是否有出入

注册  抓包

登录 抓包

注销

postman创建测试集合

post /auth接口  发包

可以获得token

编写断言  ,验证返回是否成功,根据返回信息得到token的值

环境变量方法:

设置环境变量脚本

获得返回值token值,存储到环境变量中pm.environment.set("testToken",pm.reponse.json().token);

添加环境变量操作

post  /register 

头域:token 

注册成功断言

post  /login

url  headers  token {{testToken}}

userid 保存为环境变量

/getUserId

/logout 注销成功断言

ddtdata

六 postman持续集成

newman安装,先下载node.js   如果没成功,设置PATH npm  nodejs

newman有啥用  跟postman是不是重复工作

定时执行脚本

jenkins持续集成

构建任务,min  hour  day month week

genkins 构建任务执行之后乱码设置  ,windows环境变量  JAVA_TOOL_OPTIONS  utf-8

修改玩重启jenkins

原文地址:https://www.cnblogs.com/wsnan/p/15555703.html