Update: bài này đã được viết lại hoàn toàn.
Có bạn hỏi hỏi “anh ơi, có cách nào reuse các function mình đã viết không? có mấy function em cứ phải copy qua lại, mệt quá“
Hiện tại, mình nghĩ đến 2 cách nhưng đều 1 có chung steps:
- (1) Save function dưới dạng String vào Collection Environment
- (2) Get function đó ra và dùng function
eval()
để run function đó. - (3) Sử dụng function một cách bình thường.
Giờ mình sẽ nói đến 2 cách:
- Cách 1: Save mỗi function vào 1 biến
- Cách 2: Save toàn bộ function vào 1 biến dưới dạng function của object.
Nội dung bài viết
Cách 1: Save mỗi function vào 1 biến
Trong phần Pre-request Script của collection, mình sẽ viết như sau:
let f1 = `() => { console.log("this is function f1") }` pm.collectionVariables.set("f1", f1)
Như bạn đã thấy function f1
của mình là String, khi nó sử dụng dấu backtick ở 2 đầu ` `.
Sau đó, ở nơi nào bạn muốn dùng function này, bạn sẽ dùng function eval()
để run String giống như code javascript thật. Có thể là Pre-request Script hoặc Tests của 1 request nào đó.
let f1 = eval(pm.collectionVariables.get('f1')); f1();
Cách 2: Save toàn bộ function vào 1 biến dưới dạng function của object.
Tương tự, ở phần Pre-request Script của collection, mình sẽ viết như sau:
let common = `obj = { print: function(name) {console.log(\`Hello \${name}\`)}, toUpper: function() {console.log("toUpper")} }` pm.collectionVariables.set("common", common)
Điểm đặc biệt:
- Vì mình dùng dấu backtick để biến toàn bộ object này thành String, đôi lúc bạn sẽ gặp phải tình huống syntax error, bạn cần dùng dấu
\
để escape các ký tự đặc biệt\` hoặc \$
Sau đó sử dụng như sau:
eval(pm.collectionVariables.get("common")); obj.print("Giang") obj.toUpper()
Bởi vì mình save cả 1 cái object tên là obj
nên sau khi eval()
thì cái object obj
sẽ available để mình sử dụng.
Tổng kết
Hi vọng bài này sẽ giúp bạn tiết kiệm được chút ít thời gian khi viết script với Postman. Like nếu bài viết có ích cho bạn. Thanks
[…] API Testing với Postman (Phần 15) – Reuse test script This entry was posted in API Testing, Postman and tagged Postman by Giang Nguyen. Bookmark the permalink. […]
a ơi cái script phần Reuse script mà có sử dụng parameters bị lỗi ạ? a kiểm tra lại giúp e với (There was an error in evaluating the test script: ReferenceError: undefinedabc is not defined)
Anh đã chạy lại, ko làm sao cả em nhé. Em kiểm tra lại ở phía em thôi.