前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Postman系列之Tests断言

Postman系列之Tests断言

作者头像
ITester软件测试小栈
发布2020-03-31 17:03:31
8580
发布2020-03-31 17:03:31
举报
文章被收录于专栏:全栈测试全栈测试

以下,主要介绍如何用Postman的Tests这个模块进行断言,包括Tests断言原理介绍、常用断言方法以及Tests断言实例。

Tests断言介绍

1

简介

一个完整的接口测试,包括:请求>获取响应正文>断言。所谓断言,就是结果和预期对比,如果一致,则用例通过,如果不一致,断言失败,用例执行失败。

2

原理

Postman中的断言通过JavaScript语言编写,在Tests下方给出可以选择的一些断言内容,断言会在请求返回之后显示,并根据断言的PASSFail情况体现在最终测试结果中。

3

常用断言方法

Setting an environment variable :设置一个环境变量

代码语言:javascript
复制
pm.environment.set("variable_key", "variable_value");

Setting a nested object as an environment variable : 将嵌套对象设置为环境变量

代码语言:javascript
复制
var array = [1, 2, 3, 4];
pm.environment.set("array", JSON.stringify(array, null, 2));
 
var obj = { a: [1, 2, 3, 4], b: { c: 'val' } };
pm.environment.set("obj", JSON.stringify(obj));

Getting an environment variable : 获取环境变量

代码语言:javascript
复制
pm.environment.get("variable_key");

Getting an environment variable (whose value is a stringified object) :获取一个环境变量,其值是一个字符串化的对象

代码语言:javascript
复制
// These statements should be wrapped in a try-catch block if the data is coming from an unknown source.
 
var array = JSON.parse(pm.environment.get("array"));
var obj = JSON.parse(pm.environment.get("obj"));

Clear an environment variable : 清除一个环境变量

代码语言:javascript
复制
pm.environment.unset("variable_key");

Set a global variable :设置一个全局变量

代码语言:javascript
复制
pm.globals.set("variable_key", "variable_value");

Get a global variable :获取一个全局变量

代码语言:javascript
复制
pm.globals.get("variable_key");

Clear a global variable : 清除全局变量

代码语言:javascript
复制
pm.globals.unset("variable_key");

Get a variable : 获取一个变量

代码语言:javascript
复制
pm.variables.get("variable_key");

Check if response body contains a string : 检查响应主体是否包含字符串

代码语言:javascript
复制
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

Check if response body is equal to a string :检查响应主体是否等于一个字符串

代码语言:javascript
复制
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

Check for a JSON value :检查JSON值

代码语言:javascript
复制
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

Content-Type is present :内容类型存在

代码语言:javascript
复制
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

Response time is less than 200ms :响应时间小于200ms

代码语言:javascript
复制
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

Status code is 200 :状态码是200

代码语言:javascript
复制
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

Code name contains a string :代码名称包含一个字符串

代码语言:javascript
复制
pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
});

Successful POST request status code : 成功的POST请求状态码

代码语言:javascript
复制
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
});

Send an asynchronous request :发送异步请求

代码语言:javascript
复制
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});

Convert XML body to a JSON object :将XML正文转换为JSON对象

代码语言:javascript
复制
var jsonObject = xml2Json(responseBody);

Tests断言实例

1

环境准备

接口地址:https://www.v2ex.com/api/nodes/show.json?name=python

  • Method: GET
  • Authentication: None

2

场景

1.状态码等于200;

2.断言 id=90;

3.url = "http://www.v2ex.com/go/python";

3

示例

1.在SNIPPETS中,找到"status code:Code is 200",此断言方法即判断HTTP状态码是否为200,点击此断言方法,断言代码自动添加至Tests下。

2.依次添加其他断言条件,点击Send发送请求。

断言条件:

代码语言:javascript
复制
pm.test("Status code is 200", function () {
    //断言状态码是否为200
    pm.response.to.have.status(200);
});


var jsonData = JSON.parse(responseBody);

 //断言id是90
tests["Check respose id value"] = jsonData.id === 90;
 
 //断言url
tests["Check respose url value"] = jsonData.url === "https://www.v2ex.com/go/python";

如图所示:

3.查看断言结果,在响应区内可以看TestResults一共有3个断言;如下所示,3个断言全部通过。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ITester软件测试小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档