Cú Pháp pm.environment.set(), get(): Trao Đổi Dữ Liệu Giữa Các API
Trong một hệ thống, các API luôn tương tác mật thiết với nhau. Mỗi API thường cần sử dụng dữ liệu được cung cấp bởi các API khác. Điều này đặt ra câu hỏi quan trọng: Làm thế nào để đảm bảo các API có thể tương tác và trao đổi dữ liệu một cách hiệu quả khi thực thi kiểm thử API bằng POSTMAN? Cùng Test Mentor tìm hiểu thông qua bài viết này nhé!
Xem bài trước: Sử dụng biến trong POSTMAN: Cách tối ưu hóa kiểm thử API
Nội Dung Bài Viết
Những khó khăn trong việc trao đổi dữ liệu giữa các API khi kiểm thử bằng POSTMAN
Vấn đề 1: Sử dụng dữ liệu trả về ở Response Body để gọi API tiếp theo
Sau khi Login thành công, API Login sẽ trả về token, chúng ta cần sử dụng token này để xác thực cho các API khác, chẳng hạn như API “Add Item”. Tương tự, khi muốn lấy thông tin id của Item vừa được add vào Basket bằng API “Get Item”, chúng ta cần sử dụng token từ API “Login” và id từ API “Add Item”.
→ Làm thế nào để chúng ta có thể tự động trích xuất dữ liệu từ Response Body và tổ chức chúng vào một nơi chung, để các API khác có thể sử dụng mà không cần phải sao chép và dán thủ công?
Vấn đề 2: Sử dụng test data được chuẩn bị ở Tab Pre-request Script cho Tab Body và Tab Tests.
Trong trường hợp cần thực thi API nhiều lần với các trường hợp kiểm thử khác nhau, chúng ta có thể khai báo các giá trị đầu vào dưới dạng biến ở Tab Pre-request Script. Ví dụ, chuẩn bị test data cho 2 parameters Email và Password ở Tab Pre-request Script.
→ Làm thế nào để parameter Email và Password ở Tab Body có thể sử dụng dữ liệu được khai báo ở Tab Pre-request Script?
→ Làm thế nào để in ra giá trị Email và Password ở Tab Test Results?
Tham khảo thêm khóa học API Testing từ cơ bản đến nâng cao của Test Mentor:
Cú pháp pm.environment.set(), .get(): Giải pháp cho vấn đề trao đổi dữ liệu giữa các API
Chúng ta biết rằng, giá trị được khai báo ở mỗi Tab trong POSTMAN chỉ hoạt động ở phạm vi Tab mà chúng được khai báo (đây là tính chất của Biến Local). Vậy, để có thể chia sẻ dữ liệu giữa các Tab trong POSTMAN, chúng ta cần một nơi chung chứa các giá trị đó và tất cả các API đều có thể truy cập và trích xuất dữ liệu ở đó.
Biến môi trường (Environment variables), Biến bộ sưu tập (Collection variables), Biến toàn cục (Global variables) là những nơi mà các API có thể truy cập và sử dụng các giá trị được khai báo ở đây.
→ Vì vậy, chúng ta sẽ sử dụng cú pháp .set(“variable_key”,”variable_value”) để khai báo và cú pháp .get(“variable_key”) để trích xuất các biến được lưu ở đây.
Cú pháp thiết lập và trích xuất Biến
TYPE | METHOD |
Environment | pm.environment.set(“variable_key”,”variable_value”) |
pm.environment.get(“variable_key”) | |
Collection | pm.collectionVariables.set(“variable_key”,”variable_value”) |
pm.collectionVariables.get(“variable_key”) | |
Global | pm.globals.set(“variable_key”,”variable_value”) |
pm.globals.get(“variable_key”) |
Các bước giải quyết cho từng vấn đề:
Cách hoạt động của cú pháp .set() và .get() không có sự khác biệt giữa Biến Environment, Biến Collections và Biến Global trong POSTMAN. Do đó, trong bài viết này, Test Mentor sẽ lấy ví dụ về Biến Environment để minh họa cách sử dụng chúng.
Vấn đề 1
- Tạo một môi trường dùng để chứa giá trị token.
- Ở Tab Tests của API Login, khai báo biến token với cú pháp let token = pm.response.json().authentication.token (cú pháp pm.response.json().authentication.token được sử dụng để trích xuất giá trị token được trả về từ API Login). Sau đó, sử dụng cú pháp pm.environment.set(“variable_key”,”variable_value”) để đưa giá trị token vào môi trường đã tạo ở bước 1.
- Ở Tab Headers của API “Add Item”, sử dụng cú pháp gọi biến {{variable_name}} để truy cập và sử dụng biến token được khai báo ở Environment.
Vấn đề 2
- Tạo một môi trường dùng để chứa test data.
- Ở Tab Pre-request Script, khai báo biến Email và Password với giá trị Email và Password được sử dụng để login. Sử dụng cú pháp pm.environment.set(“variable_key”,”variable_value”) để đưa 2 giá trị này vào Environment.
- Ở Tab Body, sử dụng cú pháp gọi biến {{variable_name}} để truy cập và sử dụng biến Email, Password đã khai báo ở Environment.
- Ở Tab Tests, sử dụng cú pháp trích xuất biến pm.environment.get(“variable_key”) để truy cập và sử dụng Email, Password đã khai báo ở Environment.
Thực hành với Sample Script!!!
Cài đặt môi trường kiểm thử local
Trước khi thực hành, hãy đảm bảo bạn đã cài đặt thành công môi trường kiểm thử local với ứng dụng Juice Shop. Tham khảo hướng dẫn cài đặt tại bài Blog “Hướng dẫn cài đặt môi trường kiểm thử local“.
Thực hành chạy test script trên POSTMAN
Đầu tiên, tải Sample Script được đính kèm ở phía dưới. Sau đó, truy cập video “Cú Pháp pm.environment.set(), get(): Trao Đổi Dữ Liệu Giữa Các API” được đăng tải trên kênh YouTube chính thức của Test Mentor và thực hành chạy Script theo các hướng dẫn được cung cấp trong video.
Các cú pháp sử dụng trong test script
- Cú pháp gọi Biến: {{variable name}}
- Trích xuất dữ liệu JSON từ Response Body: pm.response.json()
Kết luận
Vậy là chúng ta đã tìm hiểu xong về cách sử dụng cú pháp pm.environment.set(), pm.environment.get() để trao đổi dữ liệu giữa các Tab trong POSTMAN. Hy vọng thông qua những ví dụ thực tế, bạn đã hiểu và có thể áp dụng chúng để cải thiện hiệu suất công việc kiểm thử hằng ngày.
Nếu bạn muốn khám phá thêm về Kiểm thử API với POSTMAN, hãy xem thêm các bài viết hữu ích trong danh mục API Testing của chúng tôi.
Đặc biệt, nếu bạn nâng cao kiến thức về Kiểm thử API và mong muốn nhận được hướng dẫn trực tiếp, bạn có thể tham khảo Khóa học kiểm thử API tại Test Mentor.
Xem bài tiếp theo: Câu Lệnh If-else Trong POSTMAN: Kiểm Soát Luồng Kiểm Thử
Tài liệu tham khảo
Giới thiệu về Biến trong POSTMAN: Defining variables in scripts
Hoàng Hà
Leave a Comment