当前位置:   article > 正文

接口工具postman02-功能使用

接口工具postman02-功能使用

2 功能

2.1 断言
  • Check if response body contains a string (检查响应主体是否包含字符串)
pm.test("响应正文包含", function () {
    pm.expect(pm.response.text()).to.include("add-successful");
});
  • 1
  • 2
  • 3
  • Check if response body is equal to a string (检查响应主体是否等于一个字符串)
// 响应正文为:add-successful
pm.test("响应正文等于", function () {
    pm.response.to.have.body("successful");
});

// 断言失败,报错如下
// 响应正文等于 | AssertionError: expected response body to equal 'successful' but got 'add-successful'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • responseTime小于
pm.test("响应时间小于", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
  • 1
  • 2
  • 3
  • js中常见的pm.response
// 返回的响应对象
pm.response 

// 返回的头信息
pm.response.headers

// 返回的状态码
pm.response.code

// 返回的文本内容
pm.response.text

// 返回的响应时间
pm.response.responseTime

// 返回的json串
pm.response.json()


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
2.2 上传文件

使用案例woniusales的批次导入功能,抓包数据如下:

  • headers
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryqCWG6rRC5rcNBGUr
  • 1
  • body

image-20210927110132265

因为content-type的类型是multipart/form-data,所以请求数据的传输类型应该为form-data:

image-20210927110314376

接下来就可以开始填写body的数据了:

image-20210927110639297

在发送请求之前,最好检查一下cookie是否有值:

image-20210927110714364

可以看到cookie是有值的,但是这次不用他了,我们手动在header中添加一下cookie:

image-20210927110930134

现在就可以点击发送了:

image-20210927111405163

2.3 全局变量

全局变量:作用于所有的测试集,host域名

环境变量:作用于某个测试集

文件变量:postman外部创建一个csv或者txt的文件,变量放进去

设置变量的位置在postman的右上角有一个眼睛图标,点击后弹出的窗口可以设置全局变量:

image-20210927115544318

点击globals区域右侧的edit,弹出窗口如下:

image-20210927115917225

点击save保存全局变量的值,接下来就是引用了,引用规则为{{全局变量名字}}:

image-20210927120116820

2.4 环境变量

作用域生效为某个测试集

进入设置环境变量的页面:

image-20210927120346790

点击上半截的edit只能对当前选择的环境进行更新,如果要添加新的环境变量,需要点击右上角的齿轮:

image-20210927120535246

点击齿轮:

image-20210927120639188

点击add:

image-20210927120750652

image-20210927121039411

请求界面如下:

image-20210927143603158

2.5 参数化

数据驱动:ddt

把数据放到代码的外面,让测试根据数据的走向而走下去

在woniusales上面,准备一个txt的文件,文件中存放新增会员变量,然后我在读取这个txt从而实现脚本的参数化。

  1. 准备txt或者csv文件,用来存放测试数据

image-20210927145925380

  1. 创建一个测试集,添加一个请求add_customer,请求数据如下:

image-20210927150029003

  1. 在测试集右侧点击箭头,打开run界面:

image-20210927150120122

  1. 点击run:

image-20210927150401339

  1. 点击选择文件:

image-20210927150513277

  1. 预览测试数据:

image-20210927150538237

  1. 确认数据没有问题,点击run开始执行:

image-20210927150610819

2.6 接口关联

A接口响应结果中包含B接口的请求数据

login接口的响应结果中有cookie,add_customer中请求头里面需要有一个cookie,这个cookie正好是login响应的那个cookie

构造一个场景:

  • 先发送一个登录的请求
  • 在tests窗口获取登录请求输出的headers
  • 通过js的代码解析出headers中的cookie
  • 把cookie的值存为一个环境变量
  • 再发送一个添加会员的请求,该请求中使用环境变量来获取cookie

接下来我们完成具体工作:

  1. 创建一个login的请求,请求头和请求数据都是一般数据,清除cookie内容,tests的内容如下:
// step1:获取响应的头文件
var login_headers = pm.response.headers;
console.log(login_headers);

// step2:把头信息转换为json串
var json_login_headers = JSON.stringify(login_headers);
console.log(json_login_headers);

// step3:把json转换数组
var array_login_headers = JSON.parse(json_login_headers);
console.log(array_login_headers);

// step4:获取cookie_data,根据下标从0开始
var cookie_data = array_login_headers[1];

// step5:获取JSESSIONID,根据key
var jsessionid_data = cookie_data["value"]
console.log(jsessionid_data);

// step6:把JSESSIONID设置为环境变量
pm.environment.set("aaaa", jsessionid_data);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

控制台的数据如下:

image-20210927161007945

检查环境变量中是否出现aaa变量:

image-20210927161047005

  1. 创建add_customer请求,请求的数据中需要在头文件中添加cookie:

image-20210927161351963

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/646497
推荐阅读
相关标签
  

闽ICP备14008679号