--- Bài mới hơn ---
Chia Sẻ: Hướng Dẫn Viết Luận Án Viết Luận Văn: Cấu Trúc Bài Nghiên Cứu (Kỳ 3) Cách Viết Một Bài Báo Khoa Học (Phần 3 Hướng Dẫn Đánh Giá Nhân Viên Cuối Năm Theo 3 Bước Cực Kỳ Hiệu Quả 5 Cách Tạo Ứng Dụng Tuyệt Vời Để Tạo App Điện Thoại Không Cần Biết Lập Trình
1 ngày đẹp trời ,chúng ta nhận được thông điệp yêu cầu Test các API của dự án . 1 sự hoang mang không hề nhẹ khi ta chưa bao giờ động vào API , không biết mặt mũi nó như nào, thậm chí còn không biết API là gì, được dùng như thế nào …Vậy làm sao để test được nó ? test như thế nào? Có giống test app / web/…bình thường không nhỉ?….
Thực ra, khi làm công việc testing , cái chúng ta cần là mindset để đưa ra các testcase hiệu quả , còn việc tiếp cận với 1 loại ứng dụng mới hay 1 lĩnh vực công nghệ mới , có lẽ chỉ là việc học cách thức hoạt động và cách sử dụng nó thôi nhỉ 🙂
Với API Testing cũng thế , đầu tiên chúng ta cần trả lời các câu hỏi cơ bản : API là gì ? Làm cách nào để Test được nó khi không có giao diện người dùng ?
Google sẽ trả lời đầy đủ cho chúng ta những câu hỏi này ,chỉ cần chúng ta gõ từ khóa vào để hỏi thôi 😀
Đầu tiên cần có tài liệu mô tả API (API Document)
Tiếp nữa là cần cài tool Postman
2. Tạo bộ Testcase API
Để test API, chúng mình cũng cần tạo TC theo business flow của app . Mặc dù không có giao diện người dùng , nhưng test API chúng ta cũng cần phải test được tất cả các trường hợp được mô tả trong requirement , chạy được hết 1 flow của app . Như vậy , các viewpoint cho API testcase cũng sẽ bao gồm :
- business flow
- token (truyền sai token , token expried , không truyền token , token must be unique,….)
- Permission
- truyền ID vào URL (truyền sai ID , không truyền ID , ID must be unique,…)
- header
- request / respone
- …..
(Các thuật ngữ trong API như : token, authorization, header, method, body , request, respone , status code, message code,…sẽ coi như đã biết, nếu chưa biết có thể google thêm 😀 )
3.1. Khởi đông postman và tạo collection
Collection : Không bắt buộc phải tạo, tuy nhiên cũng giống như việc lưu trữ file trên máy tính, nếu chúng ta cứ tạo ra các file mới và vứt bừa bãi trên desktop thì sẽ rất khó để quản lý và theo dõi, cách giải quyết là tạo các folder chứa các file chung mục đích vào với nhau ,rất thuận tiện cho việc quản lý theo thư mục. Collection trên postman cũng tương tự như 1 folder , nó giúp chúng ta lưu trữ các request vào chung 1 chỗ .
Màn hình Create new collection như trên sẽ được hiển thị
Sau khi tạo, collection sẽ hiển thị ở bên trái cửa sổ làm việc . Các bạn có thể nhấn vào button để thao tác 1 số setting cho collection
Share collections: get link để share collection với người khác
Rename: Đổi tên của collection.
Add Folder: tạo thêm collection mới bên trong Collection đó.
Duplicate: nhân đôi collection đang có.
Export: Xuất collection ra dạng file .json
Monitor Collection: Dùng để test hiệu năng
Mock Collection: giúp giả lập các API sử dụng chức năng Example mà postman hỗ trợ. Publish Docs: Tạo ra API Docs định dạng HTML.
Các bạn có thể import link collection được share bởi người khác để tiếp tục làm việc bằng cách :
3.2. Khai báo biến trong Collection variable
Trong quá trình test với các request , có rất nhiều giá trị mà request nào chúng ta cũng phải khai báo (VD như thông tin server , token,…) . Khi thay đổi các thông số này , chúng ta sẽ phải sửa lại ở từng request , việc này rất mất time và to tay 😀 . Thay vì việc liên tục copy và paste mỗi khi tạo request , chúng ta chỉ cần khai báo 1 lần bằng cách Edit collection và chọn Variables để bắt đầu khai báo biến .
Để khai báo biến token hay bất kỳ 1 giá trị nào khác chúng ta cũng làm tương tự. Giá trị Current values sẽ tự sinh sau khi nhập initial values
Sau khi biến đã được khai báo, để sử dụng các biến này trong các request , chúng ta gọi biến theo cú pháp {{tên biến}}
Ví dụ :
3.3. Gửi request với Postman
Sau này nếu có thay đổi giá trị của các biến này, chúng ta chỉ việc vào update lại initial values cho nó thôi 🙂
Để gửi request lên server , chúng ta cần có các thông tin sau :
Method
Các method thường được sử dụng :
- GET :được sử dụng để lấy thông tin từ sever theo URI đã cung cấp (VD : view thông tin user ,…)
- POST : gửi thông tin tới sever thông qua các biểu mẫu http (VD : Create user ,..)
- PUT: ghi đè tất cả thông tin của đối tượng với những gì được gửi lên (VD : Update user,..)
- PATH : ghi đè các thông tin được thay đổi của đối tượng (VD : Update user,…)
- DELETE : xóa tài nguyên trên server.(VD: Xóa user,…)
2. URL
3. Header
4. Body
3.4. Truyền Token
Server sẽ trả về respone , VD như sau :
Khi gửi request login (get token) , server sẽ trả về 1 token để từ các request sau user phải truyền đúng token vào mới request được. Nó giống như chiếc chìa khóa để vào nhà vậy 🙂
Token là 1 chuỗi random và unique . Ví dụ request login lần đầu tiên sinh ra 1 token, bạn tiếp tục send request lần nữa, server sẽ trả về 1 token mới không trùng với token trước.
Vậy chúng ta truyền token vào đâu để gửi request ?
Có thể truyền token bằng 2 cách như sau :
Để tự động check response trả về ,chúng ta có thể sử dụng 1 vài dòng code đơn giản . Ví dụ muốn kiểm tra login thành công, chúng ta mở tab Tests trên Postman và viết script sau :
pm.test(“Status code is 200”, function () { pm.response.to.have.status(200); pm.test(“Status code name has string OK”, function () { pm.response.to.have.status(“OK”);
Sau khi send request , kết quả sẽ được hiển thị ở phần Test Results như sau :
Hoặc để kiểm tra login thành công trả về status code :200 , status code name : OK ,chúng ta viết 2 dòng code sau vào phần Tests :
3.6. Trích xuất data trong response để sử dụng trong các request tiếp theo
Để kiểm tra trường hợp trả về Fail ,chúng ta sửa expect khác với kết quả thực tế , VD như sau:
Trong quá trình test , có rất nhiều thông tin từ respone mà chúng ta cần trích xuất để làm input cho request tiếp theo. Việc copy paste gây mất time ,đôi khi copy sai dẫn đến gửi request sai . Không sao, chúng ta có thể làm “smart” hơn bằng cách viết script để trích xuất data mong muốn từ response trả về . Ví dụ muốn lấy token và userID trong respone trả về, ta viết code như sau :
Đoạn code này có nghĩa là lấy thông tin token , userId và đặt thành biến có tên là “token” , “userID”
3.7 . Pre-request script
Để sử dụng các biến này trong request khác, chúng ta gọi biến theo cú pháp {{tên biến}}
Ví dụ : Lấy thông tin userID và token trong respone trả về để truyền vào URL và header cho request tiếp theo :
Các bước khi gửi 1 request :
pm.globals.set(“name”, “User” + parseInt(Math.random().toString(9).substring(2,7)));
Như vậy chúng ta có thể sử dụng Pre-request script để tạo data(biến) để truyền vào param cho request
VD: Viết dòng code sau để tạo 1 biến “name” có giá trị là “UserXXXXX” .
Sau đó truyền biến này vào body để gửi request
Khi chạy request này ,server sẽ tự động sinh ra user name là giá trị ngẫu nhiên theo đúng cú pháp UserXXXXX
--- Bài cũ hơn ---
Tạo 1 Rest Api Phục Vụ Cho Mục Đích Học Tập Trong 30 Giây Tất Tần Tật Về Restful Apis Và Công Cụ Postman Restful Api Là Gì? Cùng Tìm Hiểu Về Restful Api Restful Api Web Service Là Gì Tạo Restful Api Web Service Trong Java Spring Boot Vấn Đề Nhận Check (Séc) Từ Nước Ngoài Gửi Về Việt Nam?