10 Tip hay cho API Testing

cloudFun

Microsoft Visual Basic 2008.jpg
Khi  Microservices và API  trở nên phổ biến hơn trong phát triển phần mềm, việc test và xác nhận các API này ngày càng quan trọng để đảm bảo chất lượng phần mềm của doanh nghiệp.  API testing và dịch vụ vi mô mang lại nhiều lợi ích. Đầu tiên, chúng cho phép doanh nghiệp dễ dàng test hành vi end-to-end mà không cần phải đầu tư vào việc viết và duy trì test dựa trên UI, bằng cách bắt chước các lệnh gọi API mà khách hàng sẽ tạo ra. Điều này cho phép các bài test ổn định và dễ viết và có thể giúp xác định chính xác vị trí bắt nguồn các vấn đề hệ thống của doanh nghiệp. Các bài test API cũng có thể dễ dàng chạy dưới dạng màn hình, cho phép doanh nghiệp dễ dàng xác định tình trạng ngừng hoạt động và suy giảm hiệu suất trước khi người dùng của doanh nghiệp thực hiện! Tuy nhiên, không giống như các lớp test phổ biến hơn như test đầu cuối và test đơn vị, API testing là một lĩnh vực mới hơn đối với nhiều nhóm kỹ sư. Vì vậy, bài viết này sẽ giúp doanh nghiệp bắt đầu  test các API của mình .     
1603741324067.png

1. Tìm hiểu tại sao các doang nghiệp lại ưu tiên test API 
Tầm quan trọng của việc test các API của doanh nghiệp không thể được phóng đại và đôi khi, nó mang lại giá trị nhanh hơn nhiều so với các hình thức test khác. Điều này là do một số yếu tố khiến API testing trở nên hấp dẫn:
  • Bắt chước Luồng người dùng - các API testing chức năng có thể tuân theo các luồng người dùng chung và thực hiện các lệnh gọi API mà các luồng đó sẽ mang lại. Các test này có thể xác nhận ngay lập tức các luồng người dùng đầy đủ trong hệ thống của doanh nghiệp và đảm bảo rằng chúng được hỗ trợ về mặt chức năng, rất giống các test UI end-to-end. 
  • Test độ ổn định - Test UI thường được sử dụng để test toàn bộ luồng hệ thống, nhưng vấn đề là UI thay đổi rất thường xuyên, thường phá vỡ các test và làm cho việc bảo trì test dần trở thành một mối bận tâm lớn. Ngược lại, các API được xây dựng để trở thành một giao diện ổn định, làm cho các test dựa trên API ổn định hơn rất nhiều và giảm chi phí duy trì các test. 
  • Chi phí test - Các API-based test đáp ứng một phương tiện test tốt các phần lớn của chức năng trong khi xây dựng tương đối nhanh. Các bài test đơn vị rất đơn giản để xây dựng, nhưng doanh nghiệp cần phải viết nhiều chúng để có được mức độ bao quát tốt về hành vi của hệ thống. Một vài test UI có thể nhanh chóng bao phủ một hệ thống lớn, nhưng việc xây dựng chúng rất tốn thời gian.  
  • Các vấn đề mấu chốt - thường là khi các vấn đề phần mềm phát sinh, phần khó nhất là biết chúng bắt nguồn từ đâu. Với các bài test API, doanh nghiệp có thể nhanh chóng phân tích hệ thống và hiểu liệu các vấn đề nằm sau API (trong phần phụ trợ) hoặc trong UI phần mềm. 
2. Hiểu Hành vi API
Bước đầu tiên để viết bất kỳ bài test API nào là phát triển sự hiểu biết về chức năng và cách thức hoạt động của API. Có ba cấp độ hiểu biết về những gì API làm:
  • Phạm vi API - về cơ bản, API này cung cấp chức năng gì? Thông thường, điều này có dạng chỉ để hiểu API cung cấp endpoint nào (đối với API RESTful) hoặc những truy vấn và đột biến nào mà API bộc lộ (đối với API GraphQL ). 
  • Chức năng endpoint - sau khi doanh nghiệp phân bổ tất cả các endpoint có sẵn trong API, bây giờ là lúc để hiểu tất cả chúng làm gì và hoạt động như thế nào. Nhìn bề ngoài, điều này dễ dàng như chỉ cần biết endpoint dự kiến sẽ làm gì, nhưng lý tưởng nhất, trong bước này, doanh nghiệp nên bắt đầu phát triển sự hiểu biết sâu sắc về các endpoint này - những thông số nào mà chúng mong đợi? Phạm vi của các giá trị có thể là gì? Các trường hợp cạnh là gì và điều gì xảy ra khi chúng xảy ra? Cách tốt nhất để làm điều này là chỉ đưa ra yêu cầu cho mỗi endpoint thử các tình huống và đầu vào khác nhau cho đến khi doanh nghiệp cảm thấy như mình đã nắm chắc cách thức hoạt động của nó. 
  • Luồng người dùng - hiểu mọi phần của API là không đủ mà còn cần hiểu cách các API kết hợp với nhau trong một ứng dụng. Hãy xem xét kỹ ứng dụng sử dụng các API này và đảm bảo rằng doanh nghiệp hiểu cách ứng dụng đó được sử dụng và cách sử dụng đó thúc đẩy API.  
Doanh nghiệp càng dành nhiều thời gian để thực sự hiểu API, thì càng có thể viết các bài test tốt hơn!

3. Tạo khẳng định về phản hồi API
Khi doanh nghiệp thực hiện các yêu cầu API trong luồng test của mình, đừng hài lòng với việc chỉ phản hồi thành công. Hãy nghĩ về những gì API dự kiến sẽ trả lại và dữ liệu đó có thể ở định dạng nào và dành thời gian đảm bảo rằng dữ liệu trả về thực hiện đầy đủ hợp đồng API. Lược đồ phản hồi bị hỏng hoặc thiếu dữ liệu có thể tàn phá ứng dụng cuối - đây là cơ hội tốt để bắt những lỗi này trước khi chúng xảy ra!  
1603741249669.png

4. Tạo các luồng chức năng với API
Việc gọi mọi endpoint trong API và đảm bảo rằng nó thực hiện những gì nó cần làm là tốt và đẹp, nhưng câu hỏi lớn hơn là - API có hoạt động đúng chức năng như bình thường không? Cách để test điều này là tạo các luồng chức năng hoàn chỉnh với các bài test - thêm dữ liệu, test xem nó có ở đó hay không bằng một lệnh gọi khác, sửa đổi nó, test các sửa đổi, v.v. Doanh nghiệp nên sử dụng sự quen thuộc của mình với ứng dụng cuối để bắt chước các lệnh gọi API sẽ được thực hiện trong quá trình sử dụng ứng dụng bình thường.
Ví dụ: Trong API thương mại điện tử, các quy trình hoàn chỉnh sẽ bao gồm đăng ký người dùng, tìm kiếm sản phẩm, thêm sản phẩm vào giỏ và thanh toán. 

5. Thực hiện các test được đóng gói
Các bài test tốt được đóng gói hoàn toàn - nghĩa là chúng không dựa vào dữ liệu có sẵn để chạy. Mọi test nên bắt đầu bằng cách thực hiện các lệnh gọi API cần thiết cho các bước tiếp theo.
Ví dụ: Nếu doanh nghiệp cần một người dùng, thì bước đầu tiên phải tạo nó và bước cuối cùng phải thực hiện một lệnh gọi API để xóa nó. 
Các test dựa trên dữ liệu có sẵn có thể không thành công do những thay đổi trong môi trường / dữ liệu bị thiếu và tạo ra các cảnh báo sai.

6. Các tình huống test thành công và thất bại
Khi xây dựng các bài test, hãy nghĩ đến các trường hợp và tình huống cạnh mà API sẽ không thành công / chặn một yêu cầu.
Ví dụ: Đang cố gắng để truy cập vào một tài nguyên mà doanh nghiệp không được uỷ quyền để xem, cố gắng để có được một mục mà không tồn tại, hoặc đi qua một misformatted tham số để các endpoint API.

1603739892048.png

7. Tích hợp Test API vào Quy trình làm việc CI / CD
Khi doanh nghiệp thực hiện các thay đổi đối với phần mềm của mình và triển khai các phiên bản mã mới, các bài test API có thể giúp đảm bảo rằng ứng dụng của doanh nghiệp sẽ không bị hỏng. Tìm kiếm một công cụ test API có thể được kích hoạt bởi công cụ CI / CD của doanh nghiệp và đảm bảo rằng những công cụ đó sẽ chạy test mỗi khi doanh nghiệp đẩy mã mới.   Test API tốt có thể giúp đảm bảo rằng các API của doanh nghiệp hoạt động tốt giữa các lần triển khai và lược đồ mà chúng trả về không vô tình thay đổi - gây rủi ro cho các ứng dụng khác phụ thuộc vào chúng.  

8. Giám sát các API trực tiếp
Ngoài việc hữu ích cho việc xác thực mã của doanh nghiệp, các bài test API còn mang lại giá trị lớn trong việc giám sát hệ thống sản xuất của doanh nghiệp . Chạy test với môi trường sản xuất của doanh nghiệp theo lịch trình đã định để xác thực rằng nó luôn hoạt động và hoạt động khi cần thiết. Giả sử doanh nghiệp đã làm theo mẹo số 5 (làm cho các bài test API của doanh nghiệp được đóng gói), từ đó sẽ có thể dễ dàng chạy chúng trong nhiều môi trường. Hơn nữa, một nền tảng test API tốt sẽ có thể đo lường và phân tích độ trễ cuộc gọi API theo thời gian và không chỉ cảnh báo cho doanh nghiệp nếu hệ thống của doanh nghiệp bị hỏng, mà còn nếu hiệu suất giảm đáng kể.  

9. Xác định Cảnh báo về Test API
Các test không hữu ích lắm trừ khi chúng cung cấp cho doanh nghiệp phản hồi kịp thời, có thể hành động về trạng thái hệ thống của doanh nghiệp. Cho dù chúng chạy định kỳ để theo dõi môi trường sản xuất của doanh nghiệp hoặc trong đường dẫn CI / CD của doanh nghiệp trên mọi phiên bản mã mới, doanh nghiệp muốn biết ngay khi test không thành công để có thể khắc phục tình hình. Các nền tảng API testing tốt sẽ cho phép doanh nghiệp xác định SMS, email và các kênh thông báo khác khi test không thành công.  

1603740185489.png

10. Tích hợp Test vào Chu kỳ phát triển của doanh nghiệp
Việc phát triển các bài test không nên là một nhiệm vụ rời rạc chỉ diễn ra một lần, mà là một phần của mọi tiến bộ trong cơ sở mã. Bất cứ khi nào doanh nghiệp mở rộng API, thêm chức năng bổ sung hoặc hỗ trợ các luồng người dùng mới, hãy đảm bảo test chúng như một phần của quá trình phát triển và yên tâm khi biết rằng các API của doanh nghiệp được bao phủ đầy đủ và được xác thực liên tục.Theo thời gian, cách tiếp cận này sẽ cho phép doanh nghiệp nhanh chóng bao gồm tất cả các chức năng chính của mình bằng các test.

Nguồn: https://dzone.com/articles/top-10-best-tips-for-api-testing-api-testing-tips
 
Top