Tab ‘Pre-request Script’: Kiểm Thử Đồng Thời Nhiều Test Case
Trong hai bài viết “Phương thức .shift(): Trích Xuất Và Loại Bỏ Test Case Đã Thực Thi” và “Hàm postman.setNextRequest(): Điều Khiển Thứ Tự Thực Thi APIs“, Test Mentor đã giới thiệu về 2 công cụ .shift() và .setNextRequest(). Cả 2 công cụ này đều đóng vai trò quan trọng trong việc chuẩn bị dữ liệu kiểm thử (test data) ngay trong Tab Pre-request Script của POSTMAN, khắc phục nhược điểm của phương pháp sử dụng dữ liệu từ các file CSV hoặc JSON. Vậy làm thế nào chúng ta có thể kết hợp chúng lại với nhau để tạo ra một test script hoàn chỉnh? Hãy cùng Test Mentor chinh phục thử thách này nhé!
Xem bài trước: Hàm postman.setNextRequest(): Điều Khiển Thứ Tự Thực Thi APIs
Nội Dung Bài Viết
Làm thế nào để kiểm thử API với nhiều kịch bản bằng chức năng Runner Collection?
Giả sử chúng ta phải thực hiện kiểm thử API Register user với 3 trường hợp sau đây:
- TH1: Kiểm tra đăng ký người dùng thành công với Email và Password hợp lệ.
- TH2: Kiểm tra đăng ký người dùng thất bại do trùng Email.
- TH3: Kiểm tra đăng ký người dùng thất bại do Email bị bỏ trống.
Thông thường, khi nhấn nút “Send” ở một API cụ thể hoặc nhấn nút “Run” trên Collection, kết quả là API đó chỉ chạy 1 lần với 1 bộ dữ liệu kiểm thử.
→ Vậy, làm thế nào để thực hiện kiểm thử với nhiều kịch bản kiểm thử khác nhau trong cùng 1 lần chạy Collection?
Tham khảo thêm khóa học API Testing từ cơ bản đến nâng cao của Test Mentor:
Hướng dẫn giải quyết vấn đề
Việc tạo test script kiểm thử API (API Testing) với nhiều kịch bản không quá khó, nhưng đòi hỏi chúng ta phải có ý tưởng rõ ràng, rồi sau đó đi tìm các cú pháp phù hợp và cuối cùng sắp xếp chúng một cách hợp lý.
Ý tưởng chủ đạo
- Chuẩn bị dữ liệu kiểm thử: Xác định số lượng bộ dữ liệu kiểm thử cần sử dụng. Mỗi bộ dữ liệu tương ứng với một lần chạy API.
- Trích xuất bộ dữ liệu kiểm thử cho mỗi lần chạy: Trước mỗi lần gọi API, trích xuất từng bộ dữ liệu kiểm thử rồi đưa chúng vào Environment. Những giá trị này sẽ là giá trị đầu vào khi gửi request đến server.
- Tự động gọi lại API: Sau khi API chạy xong, tiếp tục gọi lại API.
- Thiết lập điều kiện dừng gọi API: Xác định sau khi chạy xong bộ dữ liệu kiểm thử cuối cùng, dừng gọi API để kết thúc quá trình chạy Collection.
Thử sức viết test script
Từ bốn ý tưởng chủ đạo trên, hãy áp dụng toàn bộ kiến thức đã được học ở các bài viết trước và thử sức triển khai test script cùng Test Mentor nhé!
- Ở Tab Pre-request Script
Bước 1: Khai báo biến “isFirstExecution”. Biến này dùng để kiểm tra đây có phải lần đầu tiên gọi API hay không.
Bước 2: Nếu đây là lần đầu tiên chạy API thì:
- Gán biến isFirstExecution = true.
- Khai báo biến “testData” để lưu danh sách các bộ kiểm thử. Mỗi bộ dữ liệu kiểm thử là một object, chứa các thông tin cơ bản như “testCaseID“, “email“, “password“, v.v.
- Đưa cả 2 thông tin vừa khai báo ở trên vào Environment.
Bước 3: Lấy ra danh sách bộ kiểm thử vừa lưu vào Environment ở bước 2.
Bước 4: Khai báo biến “currentTestData” để chứa bộ dữ liệu kiểm thử cho mỗi lần chạy. Sử dụng phương thức .shift() để trích xuất bộ dữ liệu kiểm thử đầu tiên có trong mảng “testData” và gán nó vào biến vừa khai báo.
Bước 5: Tương tự, khai báo biến “currentEmail“, “currentPassword” để lưu giá trị Email, Password được lấy ra từ biến “currentTestData“.
Bước 6: Lưu cả 3 biến “currentTestData“, “currentEmail“, “currentPassword” vào Environment.
Bước 7: Cập nhật giá trị của biến “testData” đang lưu trong Environment thành giá trị sau khi loại bỏ object đầu tiên bằng phương thức array.shift().
- Ở Tab Body
Bước 8: Sử dụng cú pháp gọi biến {{currentEmail}} cho parameter “email” và {{currentPassword}} cho 2 parameter “password” và “passwordRepeat” để tham chiếu dữ liệu email và password đang lưu trong Environment.
- Ở Tab Tests
Bước 9: Lấy ra giá trị “testData“, “currentTestData” từ Environment.
Bước 10: Trích xuất thông tin Status Code từ Respone API và viết 1 bài assert kiểm thử Status Code.
Bước 11: Sử dụng thuộc tính .length để xác định độ dài của mảng “testData” rồi thiết lập điều kiện dừng gọi API:
- Nếu độ dài mảng > 0, set hàm postman.setNextRequest(“Register user”) để gọi tiếp API.
- Ngược lại, set hàm postman.setNextRequest(null) để dừng gọi API, kết thúc tiến trình chạy Collection.
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“.
Sample Script & Video
Đầu tiên, tải về Sample Script được đính kèm ở phía dưới. Sau đó, truy cập video “Tab ‘Pre-request Script’: Thực Thi Kiểm Thử Đồng Thời Nhiều Test Case” đượ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}}
- Đưa Biến vào Environment: pm.environment.set()
- Truy xuất Biến từ Environment: pm.environment.get()
- In thông tin ở cửa sổ Console: console.log()
- Trích xuất giá trị Status Code được trả về từ Server: pm.response.code
- Chuyển đổi Environment trong POSTMAN thành một đối tượng JavaScript: pm.environment.toObject()
- Xóa Biến được chỉ định ra khỏi môi trường hiện tại: pm.environment.unset()
- Chỉ định request sẽ thực thi tiếp theo: postman.setNextRequest()
- Câu lệnh điều kiện If-else
- Vòng lặp For
- Phương thức JavaScript chuyển một đối tượng JavaScript sang một chuỗi JSON: JSON.stringify()
- Phương thức JavaScript chuyển đổi một chuỗi JSON thành một đối tượng JavaScript: JSON.parse()
- Phương thức JavaScript loại bỏ phần tử đầu tiên của mảng và trả về phần tử đó: array.shift()
- Phương thức Javascript kiểm tra một mảng có chứa phần tử cụ thể hay không: array.includes()
- Thuộc tính JavaScript trả về độ dài của chuỗi hoặc mảng đối tượng: .length
Kết luận
Vậy là Test Mentor đã hoàn tất hướng dẫn cách chuẩn bị dữ liệu kiểm thử ngay trong Tab Pre-request Script của từng API, giúp thực thi kiểm thử đồng thời nhiều test case mà không phụ thuộc vào dữ liệu được chuẩn bị từ CSV hay JSON.
Khi các Testers bắt đầu tiếp cận Kiểm thử tự động (Automation Testing) thường có nhiều băn khoăn và e ngại, đặc biệt là đối với những bạn không học chuyên ngành IT. Tuy nhiên, thực tế cho thấy việc viết test script không quá phức tạp nếu ta hiểu rõ vấn đề cần giải quyết. Sau đó, chỉ cần tìm kiếm các công cụ phù hợp và sắp xếp chúng một cách hợp lý. Test Mentor mong rằng những bài viết trong danh mục API Testing sẽ là một nguồn tham khảo hữu ích và đồng thời là người bạn đồng hành, hỗ trợ các Testers trên hành trình chinh phục Kiểm thử tự động API bằng công cụ POSTMAN.
Đặc biệt, nếu bạn muố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