接口测试Day03-postman断言&关联

打印 上一主题 下一主题

主题 1421|帖子 1421|积分 4263


  • postman常用断言
注意:不须要手敲,点击主动生成



  • 断言相应状态码
    Status code:Code is 200
  1. //断言响应状态码为 200
  2. pm.test("Status code is 200", function () {
  3.     pm.response.to.have.status(200);
  4. });
  5. pm: postman的实例
  6. test() : postman实例的测试方法,这个方法有两个参数。
  7.         参数1:"Status code is 200",这个参数可以任意修改,不影响断言
  8.                 作用:在断言结束后,显示给用户,断言结果的提示文字。
  9.         参数2: function () {
  10.     pm.response.to.have.status(200);
  11. },是一个匿名函数调用
  12. pm.response.to.have.status(200);的意思是:
  13. postman的响应结果中,应该有响应状态码 200,------这里的200是 预期结果
复制代码



  • 断言包函某字符串
    Response body: Contains string
  1. //断言响应体包函指定字符串
  2. pm.test("Body matches string", function () {
  3.         pm.expect(pm.response.text()).to.include("string_you_want_to_search");
  4. });
  5. pm:postman的实例。
  6. test() postman实例的测试方法。 这个方法 有 2 个参数。
  7.         参1:"Body matches string"。 这个参数可以任意修改,不影响 断言。
  8.                 作用:在断言结束后,显示给用户,断言结果的提示文字。
  9.         参2:是一个 匿名函数 调用。
  10.         pm.expect(pm.response.text()).to.include("string_you_want_to_search"); 的意思是:
  11. postman 期望 响应文本中,应该包含 “你想搜索的字符串”(预期结果)
复制代码



  • 断言json相应数据
    Response body: JSON value Check
  1. pm.test("Your test name", function () {
  2.         var jsonData = pm.response.json();
  3.         pm.expect(jsonData.value).to.eql(100);
  4. });
  5. pm:postman的实例。
  6. test() postman实例的测试方法。 这个方法 有 2 个参数。
  7.         参1:"Body matches string"。 这个参数可以任意修改,不影响 断言。
  8.                 作用:在断言结束后,显示给用户,断言结果的提示文字。
  9.         参2:是一个 匿名函数 调用。
  10.         var jsonData = pm.response.json(); 将 整个 json响应体 赋值到 变量 jsonData 上。
  11.         pm.expect(jsonData.value).to.eql(100); postman 期望 json结果中 指定key 的值为 xxx
  12.                 value 能取值:success、code、message
复制代码




  • Postman 断言工作原理



  • postman 关联
  • 简介
    当接口和接口之间,有依靠关系时,须要借助 postman 关联技术,来实现。
    如: 登录接口 返回的 令牌数据,被 添加员工接口依靠。
    添加员工接口 返回 员工id,被 查询员工接口依靠。
  • 实现步调
    假定:接口B 产生的数据,被 接口A 依靠。

  • 发送 接口B 请求,获取相应数据。
  • 将 相应数据,放入公共容器(全局变量、环境变量)中
  • 接口A 从 公共容器中,提取数据,发送请求。



  • 核心代码
  1. //1、获取响应数据,转为 json格式,保存到变量中
  2. var jsonData = pm.response.json()
  3. //2.1、使用 全局变量做容器
  4. pm.global.set("全局变量名",全局变量值)
  5. //2.2、使用 环境变量做容器
  6. pm.environment.set("环境变量名", 环境变量值)
  7. //3、在postman 界面中(url、请求头headers、请求体body) 提取 全局/环境 变量数据
  8. {{全局变量名}}/{{环境变量名}}
复制代码


  • 创建环境
    全局变量:在 整个postman中都可以使用的变量。不须要 单独创建环境。
    环境变量:在 特定的环境下,才气使用的变量。须要给此变量创建单独的环境。




  • 案例一
1

  • 使用 postman 关联,实现下面案例
    从获取气候接口,http://www.weather.com.cn/data/sk/101010100.html
    获取返回结果中的都会名称
    调用百度搜索接口: http://www.baidu.com/S?wd=北京 ,把获取到的都会名称,如:北京,作为请求参数
    思绪:
  • 发送 获取气候请求,获取相应结果
  • 从相应结果中,拿到都会名,存入 全局变量
  • 百度搜索接口从 全局变量中,取都会名,发送搜索请求。
    Tests 代码:
  1. / 1. 获取响应结果
  2. var jsonData = pm.response.json()
  3. // 2. 从响应结果中,提取 城市名
  4. var city = jsonData.weatherinfo.city
  5. // 3. 将城市名保存到 全局变量
  6. pm.globals.set("glb_city", city)
复制代码




  • 案例二
    使用 postman 关联技术,实现 添加员工 接口。
    登录成功,返回的 “令牌” 被 添加员工 接口依靠。
    思绪:

  • 发送登录请求(必须登录成功),获取相应结果
  • 从 json 相应结果中,提取 data 值。拼接上 “Bearer ” 前缀。
    注意:Bearer单词不能拼错,首字母必须大写,只有一个空格
  • 将拼接无误的 令牌,存入 环境变量。 从 “眼睛” 图标查看。
  • 添加员工 接口,从 环境变量 中,提取 令牌。设置到请求头中,作为 Authorization 的 值。
  • 填写 添加员工 接口 其他信息(post、URL、请求体),发送请求。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表