Chào các bạn đã đến với chủ đề tiếp theo của mình. Hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách để lưu cả 1 list data vào trong environment.
Giả sử mình có api test của Postman như sau: https://postman-echo.com/post
Body là:
{
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
]
}
I. Cách save array
Nhiệm vụ bây giờ là: Save toàn bộ authors vào 1 array, sau đó save array vào environment
var jsonData = pm.response.json();
// Get list books from response
var books = jsonData.json.book;
// Only for debug
console.log(books);
// Get list of authors, then save to environment
var authors = _.map(books, 'author');
// Need convert to String before save to environment
pm.environment.set("authors", JSON.stringify(authors));
// Only for debug
for (i = 0; i < authors.length; i++){
console.log(authors[i]);
}
Lưu ý: để save object hoặc array vào trong environment, bạn cần phải JSON.stringify()
cái object hoặc array đó trước.
Và đây là kết quả
- Console log
- Environment
II. Cách dùng array đã save
- Nếu bạn muốn sử dụng 1 phần tử của array đã được lưu lại ở trong những request tiếp theo. Ví dụ như muốn “lấy random phần tử author”
Bạn sẽ code như sau:
Pre-Request tab:
let authors = JSON.parse(pm.environment.get('authors'));
let index = _.random(authors.length - 1);
pm.variables.set("author", authors[index]);
- Vì “authors” được lưu trong environment sẽ ở dạng String, chứ ko phải array, nên sau khi get value ra, thì ta phải dùng
JSON.parse()
để cho nó trở lại là array, rồi save vào 1 biến nào đó. - Muốn get 1 phần trong array, ta phải biết vị trí (index) của phần tử đó. Do đó, để lấy được 1 phần tử random thì ta cũng cho index random luôn. Tuy nhiên, nó chỉ được phép random trong khoảng từ
0 --> [array length] - 1
mà thôi. Nếu ngoài khoảng đó, nó sẽ bị lỗi ArrayIndexOutOfBound, có nghĩa là access vào 1 vị trí nằm ngoài array. - Save biến đó vào vùng tạm
variables
vì ta không cần keep track biến đó theo thời gian, ta chỉ cần lưu tạm, để bên body có thể lấy được value
Nguồn:
https://giangtester.com/api-testing-voi-postman-phan-14-xu-ly-array/