zoukankan      html  css  js  c++  java
  • 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/marost/p/4668664.html
    UEFI 坑 Ubuntu
    Spring《六》管理Bean
    Spring《五》集合的注入方式
    Spring《四-一》解决自动装配的问题
    spring《四》自动装配
    Spring《三》ref 引用其他bean
    Spring《二》 Bean的生命周期
    Spring《一》
    Fragment间相互调用并传值
  • 原文地址:https://www.cnblogs.com/wsnan/p/15555703.html
Copyright © 2011-2022 走看看