API Testing

1. API là gì?

  • API là một từ viết tắt của Application Programming Interface (Giao diện lập trình ứng dụng).
  • Nó cho phép giao tiếp và trao đổi dữ liệu giữa hai hệ thống phần mềm riêng biệt. Một hệ thống phần mềm thực hiện một API chứa các hàm / các thủ tục phụ có thể được thực hiện bởi một hệ thống phần mềm khác.

2. API Testing là gì?

  • API Testing hoàn toàn khác với GUI Testing và chủ yếu tập trung vào lớp logic nghiệp vụ của kiến trúc phần mềm. Thử nghiệm này sẽ không tập trung vào giao diện của ứng dụng.
  • Thay vì sử dụng đầu vào tiêu chuẩn (bàn phím) và đầu ra, trong thử nghiệm API, bạn sử dụng phần mềm để gọi đến API, nhận dữ liệu đầu ra và ghi lại phản ứng của hệ thống.
  • Thử nghiệm API yêu cầu ứng dụng tương tác với API. Để thử nghiệm một API, bạn sẽ cần phải: + Sử dụng Công cụ Kiểm tra để điều khiển API + Viết mã của riêng bạn để kiểm tra API

3. Setup môi trường test API.

  • API Testing khác với các loại thử nghiệm khác như là GUI, tuy nhiên bạn phải thiết lập môi trường ban đầu, gọi API với bộ tham số yêu cầu và cuối cùng kiểm tra kết quả kiểm tra. Do đó, Thiết lập một môi trường thử nghiệm cho các thử nghiệm API có vẻ phức tạp một chút.
  • Cơ sở dữ liệu và máy chủ phải được cấu hình theo yêu cầu của ứng dụng.
  • Sau khi quá trình cài đặt hoàn tất, hãy gọi hàm API để kiểm tra xem API đó có hoạt động hay không.
  1. Phân loại đầu ra của 1 API. Đầu ra của API có thể là: 4.1. Bất kỳ dữ liệu nào 4.2. Trạng thái (Pass or Fail) 4.3. Gọi tới API khác MỘT SỐ VÍ DỤ như: 4.1. Bất kỳ dữ liệu nào Ví dụ: Có một hàm API cần thêm hai số nguyên.
Long add(int a, int b)

Các con số này phải được đưa ra như các tham số đầu vào. Đầu ra nên là tổng của hai số nguyên. Đầu ra này cần phải được xác minh với kết quả dự kiến.

add (1234, 5656)

Các ngoại lệ phải được xử lý nếu số vượt quá giới hạn số nguyên.

4.2. Trạng thái (Pass or Fail)

Xem xét chức năng API dưới đây :

Lock()
Unlock()
Delete()

Nó sẽ trả về bất kỳ giá trị nào như True (trong trường hợp thành công) hoặc false (Trong trường hợp lỗi) như một đầu ra. Một trường hợp thử nghiệm chính xác hơn sẽ được, có thể gọi các chức năng trong bất kỳ của kịch bản và sau đó kiểm tra những thay đổi trong cơ sở dữ liệu hoặc GUI ứng dụng. Gọi hàm cần được thực hiện như: Trong trường hợp này, chúng ta gọi một trong những hàm API mà lần lượt sẽ gọi hàm khác. Ví dụ - Chức năng API đầu tiên có thể được sử dụng để xóa một bản ghi đã chỉ định trong bảng và chức năng này lần lượt gọi một hàm khác để làm mới cơ sở dữ liệu.

5. Tạo test cases cho API testing.

Các trường hợp thử nghiệm về kiểm tra API dựa trên:

  • Giá trị trả lại dựa trên điều kiện đầu vào: Nó tương đối dễ dàng để kiểm tra, như đầu vào có thể được xác định và kết quả có thể được chứng thực
  • Không trả lại bất cứ điều gì: Khi không có giá trị trả về, hành vi của API trên hệ thống sẽ được kiểm tra
  • Kích hoạt một số API / sự kiện / gián đoạn khác: Nếu đầu ra của một API kích hoạt một số sự kiện hoặc gián đoạn, thì những sự kiện đó và người nghe ngắt phải được theo dõi
  • Cập nhật cấu trúc dữ liệu: Cập nhật cấu trúc dữ liệu sẽ có một số kết quả hoặc ảnh hưởng lên hệ thống và cần được chứng thực
  • Sửa đổi một số tài nguyên nhất định: Nếu API gọi sửa đổi một số tài nguyên thì cần phải xác nhận hợp lệ bằng cách truy cập các tài nguyên tương ứng

6. Định hướng của API testing.

Các điểm sau đây giúp người dùng thực hiện phương pháp kiểm tra API:

  • Hiểu được chức năng của chương trình API và xác định rõ phạm vi của chương trình
  • Áp dụng các kỹ thuật kiểm tra như các lớp tương đương, phân tích giá trị biên và báo lỗi và viết các trường hợp thử nghiệm cho API
  • Các tham số đầu vào cho API cần được lên kế hoạch và xác định một cách thích hợp
  • Thực hiện các trường hợp thử nghiệm và so sánh kết quả mong đợi và thực tế.

7. Sự khác nhau giữa API testing và Unit testing.

8. Phương thức test API.

Thử nghiệm API nên bao gồm ít nhất sau các phương pháp thử nghiệm ngoài quy trình SDLC thông thường:

  • Thử nghiệm phát hiện: Nhóm thử nghiệm phải thực hiện theo cách thủ công tập hợp các cuộc gọi được ghi lại trong API như xác minh rằng một tài nguyên cụ thể được tiếp xúc bởi API có thể được liệt kê, tạo và xóa theo cách thích hợp
  • Kiểm tra khả năng sử dụng: Thử nghiệm này xác minh liệu API có hoạt động và thân thiện với người sử dụng hay không. Và API cũng tích hợp tốt với nền tảng khác cũng như
  • Kiểm tra bảo mật: Thử nghiệm này bao gồm loại chứng thực được yêu cầu và liệu dữ liệu nhạy cảm có được mã hóa qua HTTP hoặc cả hai
  • Thử nghiệm tự động: Kiểm tra API nên đạt đến cực đại trong việc tạo ra một bộ tập lệnh hoặc một công cụ có thể được sử dụng để thực hiện API thường xuyên
  • Tài liệu: Nhóm kiểm tra phải đảm bảo rằng tài liệu là đầy đủ và cung cấp đủ thông tin để tương tác với API. Tài liệu phải là một phần của kết quả cuối cùng

9. Thực hành

  • TCs nên được nhóm lại theo nhóm kiểm tra
  • Trên mỗi case, bạn nên khai báo của các API đang được gọi.
  • Lựa chọn thông số cần được đề cập rõ ràng trong bản thân bài kiểm tra
  • Ưu tiên các cuộc gọi chức năng API sao cho người kiểm tra thử nghiệm
  • Mỗi trường hợp kiểm tra phải tự chứa và độc lập với các mối quan hệ phụ thuộc nhất có thể
  • Tránh "test chaining" trong sự phát triển của bạn
  • Cần phải đặc biệt chú ý khi xử lý các chức năng gọi một lần như - Xoá, CloseWindow, v.v ...
  • Gọi trình tự nên được thực hiện và có kế hoạch tốt
  • Để đảm bảo phạm vi kiểm tra hoàn chỉnh, tạo các trường hợp thử nghiệm cho tất cả các kết hợp đầu vào có thể có của API.

10. Phân loại bug của API Testing

  • Không thể xử lý các điều kiện lỗi một cách mượt mà
  • Không sử dụng cờ
  • Thiếu hoặc nhân bản chức năng
  • Các vấn đề đáng tin cậy. Khó khăn khi kết nối và nhận phản hồi từ API.
  • Vân đê bảo mật
  • Vấn đề đa luồng
  • Vấn đề hiệu năng. API thời gian phản hồi rất cao.
  • Lỗi / cảnh báo không đúng cho người gọi
  • Xử lý sai số giá trị đối số hợp lệ
  • Dữ liệu phản hồi không được cấu trúc chính xác (JSON hoặc XML)

11. Giới thiệu 1 số tool

  • SOAPUI
  • Runscope
  • Postman with jetpacks
  • Postman with Newman
  • Curl
  • Cfix
  • Check
  • CTESK
  • dotTEST
  • Eclipse SDK tool- Automated API testing

12. Tổng kết

API bao gồm một tập các lớp / hàm / thủ tục đại diện cho lớp logic nghiệp vụ. Nếu API không được kiểm tra đúng, nó có thể gây ra các vấn đề không chỉ đối với ứng dụng API mà còn trong hàm gọi. Theo nguồn: http://www.guru99.com/api-testing.html