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');
});