Skip to main content

7. API Testing Scripts

Kiểm tra status code

Kiểm tra cụ thể 1 status code

pm.test('Status code is 200', function () {
pm.response.to.have.status(200);
});

Kiểm tra status code là một trong các giá trị

pm.test('Successful POST request', function () {
pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});

Kiểm tra thời gian đáp ứng của API

Ví dụ: 200ms

pm.test('Response time is less than 200ms', function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});

Kiểm tra body của response

Kiểm tra body có tồn tại

pm.test('Response must be valid and have a body', function () {
pm.response.to.be.withBody;
});

Kiểm tra body có kiểu dữ liệu JSON

pm.test('Response must be valid and have a body within json', function () {
pm.response.to.be.withBody;
pm.response.to.be.json;
});

Kiểm tra body có kiểu dữ liệu JSON là 1 mảng

pm.test('Json must be an array', () => {
const responseJson = pm.response.json();
pm.expect(responseJson).to.be.an('array');
});

Kiểm tra body có kiểu dữ liệu JSON là 1 object

pm.test('Json must be a object', () => {
const responseJson = pm.response.json();
pm.expect(responseJson).to.be.an('object');
});

Kiểm tra cấu trúc của body

Kiểm tra body có cấu trúc là 1 object

Giả sử có data trả về như sau
{
"id": 1,
"name": "CPU",
"description": "New Desc"
}
Kiểm tra cấu trúc của data trả về như bên trên
pm.test('4. Assert that every object contains keys or properties', () => {
var schema = {
type: 'object',
properties: {
id: { type: 'number'},
name: { type: 'string},
description: { type: ['string', 'null']},
},
required: ['id', 'name', 'description'],
additionalProperties: false,
};

const responseJson = pm.response.json();
pm.expect(responseJson).to.be.jsonSchema(schema);
});

Kiểm tra body có cấu trúc là 1 mảng các objects

Giả sử có data trả về như sau
[
{
"id": 1,
"name": "CPU 123",
"description": "New Desc"
},
{
"id": 2,
"name": "HDD",
"description": "New desc 2"
}
]
Kiểm tra cấu trúc của data trả về như bên trên
pm.test('Assert that every object contains keys or properties', () => {
var schema = {
type: 'array',
items: {
type: 'object',
properties: {
id: { type: 'number' },
name: { type: 'string' },
description: { type: ['string', 'null'] },
},
required: ['id', 'name', 'description'],
additionalProperties: false,
},
};

const responseJson = pm.response.json();
pm.expect(responseJson).to.be.jsonSchema(schema);
});

Kiểm tra body có giá trị

Kiểm tra 1 giá trị

pm.test('Message is "Category not found"', function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.equal('Category not found');
});