Hôm nay có bạn hỏi về việc lưu cả 1 list vào trong environment, mình cũng viết 1 bài ngắn nói về việc này.
Mình xử dụng luôn api test của Postman: 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 } ] }

Nhiệm vụ bây giờ là: Save toàn bộ author vào 1 array, sau đó save array vào environment

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[javascript] 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'); pm.environment.set("authors", authors); // Only for debug for (i = 0; i < authors.length; i++){ console.log(authors[i]); } [/javascript] |
Và đây là kết quả
- Console log

- Environment

0
Hi anh Giang,
Cho em hỏi trường hợp này :
Ví dụ em save 1 variable là 1 array động (mảng này được response từ api A)
Mảng này có 10 phần tử.
Em muốn tạo request cho api B với 10 phần tử đó theo tuần tự, nếu phải tạo 10 requests thì sẽ mất time.
VD :
a = {1,2,3,4,5,6,7,8,9,10}
url/post/id[a]
Liệu có cách nào chỉ tạo 1 request nhưng run tất cả các thành phần trong mảng luôn không?
Cám ơn anh.
Hi bạn, bạn có thể sử dụng postman.setNextRequest(‘request_name’).
Muốn rõ hơn bạn có thể follow theo bài này. https://ambertests.com/2019/01/28/postman-how-to-dynamic-iteration-within-a-collection/ .Tuy nhiên, cái chức năng này chỉ chạy trong runner, ko debug được trực tiếp đâu.
Nếu bạn muốn tìm hiểu code thì mình gửi file script, bạn import vào postman mà xem. https://gist.github.com/giang-nguyen-niteco/8bbd41869d1e217a185474fe0b5c7843
Cho e hỏi chút về cách set vulue save vào environment.
Trong response của header, em muốn set ra được value nó nó mà không được,
ví dụ như : set-cookie, nó có 2 key như thế, e chỉ lấy được 1 key, còn 1 key không lấy để lưu được.
Xin lỗi, anh ko hiểu em đang gặp vấn đề gì nữa, đọc không hiểu.
Ví dụ Header của response trả về có 2 key cùng có tên là Set-cookie.
Mỗi 1 key lại có 1 value khác nhau, giờ em muốn lấy value của key : Set-cookie đó luuw vào environment để làm value cho API khác.
và em dùng theo hàm Test này ”
var cookie = null;
pm.test(“Collect redirect location”, function () {
pm.response.to.have.header(“Set-Cookie”);
cookie = pm.response.headers.get(“Set-Cookie”);
if (cookie !== undefined) {
pm.environment.set(“redirURL”, cookie);
}
});
Nó không lấy được giá trị em mong muốn ạ.
okay anh hiểu ý em rồi, tuy nhiên anh cần response để biết là em có đang extract đúng ko.
Hi anh, em có 1 mảng kiểu này
[ {“id”:”27489494″,
“name”:”abc”},
{“id”:”27489989494″,
“name”:”ab5c”},
{“id”:”2748379494″,
“name”:”a3bc”},
{“id”:”27487489494″,
“name”:”a2bc”}]
em muốn set riêng từng id theo name vào environment thì làm như nào ạ, value động có thể thay đổi.
Hi em, “từng id theo name” –> save id khi name == giá trị nào đó ah?
Nếu đúng muốn như thế, em có thể tham khảo ví dụ: https://gist.github.com/lucas-nguyen-17/6bd24593f95bbf9d2880af6d7233f335