Hàm postman.setNextRequest(): Điều Khiển Thứ Tự Thực Thi APIs
Có lẽ Runner Collections là một tính năng rất quen thuộc với các bạn thường sử dụng POSTMAN. Nó cho phép chạy tất cả APIs có trong Collection theo thứ tự hiển thị từ trên xuống. Nếu muốn thay đổi thứ tự thực thi, trước khi nhấn “Run”, chúng ta phải thay đổi thủ công vị trí của các APIs. Điều này đặt ra câu hỏi: Làm thế nào có thể tự động hóa hành vi này, tức là có thể thay đổi thứ tự thực thi các APIs tùy ý mà không cần phải sửa tay cho mỗi lần chạy Collection. Hãy cùng Test Mentor thử sức với tình huống này nhé!
Xem bài trước: Phương thức .shift(): Trích Xuất Và Loại Bỏ Test Case Đã Thực Thi
Nội Dung Bài Viết
Làm thế nào để thực thi hoặc bỏ qua API tiếp theo dựa trên một điều kiện cụ thể?
Giả sử chúng ta chạy một Collection gồm 2 APIs theo thứ tự: ❶ Register user → ❷ Login.
Khi API Register user thực thi xong, tính năng Runner Collections không quan tâm đến việc đăng ký người dùng thành công hay thất bại, nó vẫn tiếp tục thực thi API Login. Tuy nhiên, nếu đăng ký người dùng thất bại, việc gọi API Login sẽ không có ý nghĩa vì chắc chắn rằng trường hợp này dù có đăng nhập cũng sẽ thất bại. Vì vậy, chúng ta cần phải xử lý thành hai trường hợp như sau:
- Trường hợp 1: Chạy API Register user. Nếu đăng ký người dùng thành công, tiếp tục chạy API Login.
- Trường hợp 2: Chạy API Register user. Nếu đăng ký người dùng thất bại, dừng chạy Collection tại đây (không chạy API Login).
→ Vậy, làm thế nào thực thi hoặc bỏ qua API Login dựa trên kết quả thực thi API Register user?
Tham khảo thêm khóa học API Testing từ cơ bản đến nâng cao của Test Mentor:
Giới thiệu về hàm postman.setNextRequest()
Hàm postman.setNextRequest() cho phép chỉ định request nào sẽ thực thi tiếp theo sau khi hoàn tất request hiện tại. Bằng cách sử dụng hàm này, chúng ta có thể tùy chỉnh quy trình làm việc giữa các requests, điều khiển chúng thực thi theo trình tự chúng ta mong muốn. Điều này tạo nên mối liên kết chặt chẽ giữa chúng.
Hàm nhận giá trị đầu vào như sau:
- “Tên của API“ nếu muốn gọi API tiếp theo.
postman.setNextRequest("request_name")
- null nếu muốn dừng quá trình chạy Collection sau khi hoàn thành request hiện tại.
postman.setNextRequest(null)
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ử sức viết test script
Như đã mô tả trong phần đặt vấn đề, chúng ta biết rằng chỉ trường hợp đăng ký người dùng thành công, thì mới tiến hành gọi API Login. Để nhận biết liệu thao tác đăng ký người dùng có thành công hay không, chúng ta sẽ dựa vào giá trị Status Code được trả về ở phần Response của API Register user. Đặc tả chỉ định: nếu đăng ký thành công, server sẽ phản hồi với Status Code = 201. Vậy nên, chúng ta sẽ sử dụng giá trị này để quyết định xem có tiếp tục gọi API Login hay không.
Ở Tab Tests của API Register user,
- Bước 1: Sử dụng cú pháp pm.response.code để trích xuất giá trị Status Code sau khi API Register user thực thi xong.
- Bước 2: Kết hợp câu lệnh if-else và hàm postman.setNextRequest() để điều khiển luồng kiểm thử như sau:
- Nếu đăng ký người dùng thành công (Status Code = 201) thì thực thi API Login.
→ Viết câu lệnh postman.setNextRequest(“Tên request API Login“)
- Ngược lại, không thực thi API Login.
→ Viết câu lệnh postman.setNextRequest(null)
- Bước 3: Viết một bài đánh giá kiểm tra giá trị Status code để xác nhận thao tác đăng ký người dùng thành công hay không.
Sample Script & Video
Đầu tiên, tải về Sample Script được đính kèm ở phía dưới. Sau đó, truy cập video “Hàm postman.setNextRequest(): Điều Khiển Thứ Tự Thực Thi APIs” được đăng tải trên kênh YouTube chính thức của Test Mentor để xem hướng dẫn chi tiết nhé!
Các cú pháp sử dụng trong test script
- Cú pháp gọi Biến: {{variable name}}
- Trích xuất giá trị Status Code được trả về từ Server: pm.response.code
- Đưa Biến vào Environment: pm.environment.set()
- Câu lệnh điều kiện If-else
- Hàm chỉ định request sẽ thực thi tiếp theo: postman.setNextRequest()
Kết luận
Vậy là chúng ta vừa bổ sung thêm một công cụ mới vào bộ sưu tập các công cụ hữu ích khi thực hiện Kiểm thử tự động API bằng công cụ POSTMAN. Mặc dù hàm postman.setNextRequest() có cách hoạt động vô cùng đơn giản nhưng nó lại mang đến hiệu suất đáng kể, giúp Tester có thể linh hoạt tùy chỉnh luồng kiểm thử các APIs.
Bên cạnh hàm postman.setNextRequest(), Test Mentor còn chia sẻ rất nhiều công cụ hữu ích khác thông qua những bài viết trong danh mục API Testing. Hy vọng rằng những bài viết này sẽ là một nguồn tham khảo hữu ích, giúp bạn vượt qua những khó khăn trên hành trình khám phá Kiểm thử tự động API bằng công cụ POSTMAN.
Đặ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.
Hoàng Hà
Leave a Comment