Sáu trong số những thách thức hàng đầu trong thử nghiệm API bao gồm:
- Building irrelevant tests: Xây dựng kiểm thử không liên quan.
- Leaving out response time assertions: Bỏ qua việc xác nhận thời gian phản hồi.
- Not including API dependencies: Không bao gồm các phụ thuộc API.
- Testing APIs in a vacuum: Kiểm tra API trong môi trường chân không.
- Not validating data: Không xác thực dữ liệu.
- Managing API tests manually: Quản lý kiểm thử API theo cách thủ công.
1 – Building irrelevant tests: Xây dựng kiểm thử không liên quan
Một trong những thách thức hàng đầu trong thử nghiệm API là tạo ra các thử nghiệm không bắt chước trải nghiệm người dùng. Thật dễ dàng để thiết lập các bài kiểm tra xác minh các dịch vụ và điểm cuối độc lập, sau đó hoàn thành khi tất cả chúng đều đúng. Ví dụ: Kiểm tra API hàng tồn kho, kiểm tra; kiểm tra API Giỏ hàng, kiểm tra; và như thế.
Tuy nhiên, người dùng cuối có thể sử dụng các phương pháp này kết hợp với nhau, không độc lập. Việc xây dựng các thử nghiệm mà không xem xét các API sẽ được tích hợp như thế nào có thể nhanh hơn trong thời gian ngắn. Tuy nhiên, khi làm như vậy, bạn sẽ không phải kiểm tra các mối lo ngại, điều này có thể ngăn bạn phát hiện và gỡ lỗi các vấn đề API nghiêm trọng tiềm ẩn.
Trong kiểm thử phần mềm truyền thống, các kiểm thử được xây dựng trên nhiều đơn vị hoặc chức năng được gọi là kiểm thử tích hợp (integration test). Việc xây dựng các bài kiểm tra tích hợp cho các API có thể dễ dàng hơn bạn nghĩ. Hãy xem một kịch bản API bán lẻ điển hình như sau:
- GET /items (fetch a list of items).
- POST /items (create a new item).
- GET /items/{itemId} (verify existence of newly created item).
- POST /cart (add this new item to the shopping cart).
- DELETE /items (remove the item).
- GET /items (verify that the item has been removed).
Mỗi API được sử dụng trong trường hợp trên có thể hoạt động khi được kiểm tra độc lập, nhưng nếu không kiểm tra toàn bộ quy trình, bạn không thể chắc chắn rằng chúng đang hoạt động cùng nhau, như mong đợi.
2- Leaving Out Response Time Assertions:
Kiểm thử API có thể được xây dựng để kiểm tra bất kỳ số lượng biến nào, như mã trạng thái (status code) và nội dung phản hồi (response content). Những phần đó có thể rất quan trọng để kiểm tra tính đúng đắn của phương pháp, nhưng điều gì sẽ xảy ra nếu một yêu cầu API mất 10 giây để phản hồi? Liệu trường hợp kiểm tra này vẫn có thể sẽ vượt qua? Mặc dù thường bị bỏ qua, nhưng xác nhận thời gian phản hồi là những bổ sung nhanh chóng nhưng cần thiết cho bất kỳ thử nghiệm API nào để đảm bảo tất cả các hộp của bạn được chọn khi nói đến trải nghiệm người dùng cuối hoàn chỉnh.
Thiết lập xác nhận thời gian phản hồi hợp lý và cho biết bạn hoặc nhà phát triển của bạn nghĩ rằng thời gian phản hồi sẽ mất bao lâu. Nếu bạn bắt đầu ở ngưỡng cao, bạn có thể dễ dàng thu nhỏ quy mô và xem những gì phù hợp với yêu cầu đó. Xác nhận thời gian phản hồi ngưỡng cao tốt hơn rất nhiều, đặc biệt là khi kiểm tra các điểm cuối sản xuất. Một ứng dụng mất quá nhiều thời gian để tải có thể khiến người tiêu dùng của bạn chuyển sang ứng dụng tiếp theo.
3- Not Including API Dependencies
Một thách thức kiểm tra API quan trọng khác đó là không bao gồm các phụ thuộc API như một phần của chiến lược kiểm tra API. Kiểm thử tích hợp phần mềm truyền thống liên quan đến việc kiểm tra các đơn vị riêng biệt với nhau, đảm bảo rằng chúng hoạt động nhất quán và đáng tin cậy cùng nhau. Với các ứng dụng hiện đại phụ thuộc nhiều vào các dịch vụ web, việc dựa vào các dịch vụ web là điều phổ biến. Do đó, việc chỉ thử nghiệm các API của riêng bạn không cung cấp cho bạn bức tranh toàn cảnh về cách ứng dụng của bạn sẽ hoạt động trong thế giới thực.
API của bạn là một sản phẩm phụ thuộc vào các dịch vụ của đối tác và nếu bất kỳ dịch vụ nào trong số đó không thành công, thì API của bạn cũng có thể khiến khách hàng của bạn thất bại. Một nguyên tắc nhỏ là nếu sản phẩm của bạn phụ thuộc vào một dịch vụ, thì bạn nên kiểm tra và giám sát nó. Tích hợp của bên thứ ba có thể có giá trị như API của riêng bạn và nếu ứng dụng hoặc dịch vụ của bạn bị hỏng, người dùng sẽ không biết (hoặc quan tâm) về việc dịch vụ của ai đang bị lỗi.
4- Testing APIs in a Vacuum
Kiểm tra API có thể chỉ là một hành động đơn lẻ, nhưng thời điểm kiểm tra nằm trong quy trình làm việc của bạn, bạn cần đưa các nhóm thích hợp vào khi có vấn đề xảy ra. Các bài kiểm tra API không phải lúc nào cũng thất bại vì những lý do giống nhau và có thể ảnh hưởng đến nhiều bên liên quan. Do đó, các thử nghiệm thất bại đòi hỏi sự chú ý của các nhóm khác nhau trong tổ chức của bạn. Nếu bạn thiết lập thông báo lỗi thử nghiệm chỉ đến với bạn, bạn đang thêm thời gian, công sức và sự đau đầu cho quy trình làm việc của mình.
Hoạt động kiểm tra API được thêm vào quy trình phát triển liên quan đến những người phù hợp thông qua các kênh thông báo mà họ sử dụng nhiều nhất. Thêm thông báo cho nhóm chịu trách nhiệm khắc phục sự cố API bằng cách tích hợp các bài kiểm tra API của bạn với Slack, PagerDuty, Jenkins và các công cụ khác để trao quyền cho toàn bộ nhóm của bạn giải quyết các thách thức kiểm tra API một cách nhanh chóng.
5- Not Validating Data
Bạn có thể nhận được thông báo rằng các bài kiểm tra API thành công. Nhưng nếu các API của bạn không trả lại dữ liệu chính xác trong phản hồi, thì thử nghiệm đó cũng có thể đã thất bại. Để giải quyết thách thức lớn này, điều cần thiết là phải xác minh rằng API của bạn đang trả lại dữ liệu chính xác. Bằng cách kiểm tra các yếu tố như mã trạng thái cụ thể, tiêu đề HTTP và thuộc tính JSON hoặc XML, các nhóm có thể xác định gọi API thành công trông như thế nào và kiểm tra tương ứng.
6- Managing API Tests Manually
Với rất nhiều công cụ dành cho nhà phát triển giúp bạn tự động hóa quy trình làm việc của mình, không có lý do gì để tiếp tục tạo các thử nghiệm API theo cách thủ công. Làm công việc này bằng tay có thể cồng kềnh và làm mất thời gian của các công việc quan trọng khác. Với thử nghiệm API của BlazeMeter, các nhóm có thể tạo các thử nghiệm API trong vài phút và bắt đầu giám sát các API của bạn từ giai đoạn phát triển ban đầu cho đến quá trình sản xuất.
BlazeMeter thậm chí còn cho phép các nhóm vượt ra ngoài thử nghiệm API với các tập lệnh thử nghiệm của họ. Người dùng có thể tạo một bài kiểm tra chức năng và sau đó sử dụng lại bài kiểm tra tương tự để kiểm tra API và giám sát API, cũng như kiểm tra hiệu suất và tải.
Tóm lại:
Với các phương pháp hay nhất này trong kho vũ khí của bạn để giải quyết các thách thức kiểm tra API hàng đầu, bạn có thể bắt đầu thử nghiệm các API hỗ trợ doanh nghiệp của mình. Đăng ký BlazeMeter để bắt đầu thử nghiệm các API của bạn ngay hôm nay.
Leave a Reply