Những việc bạn bắt buộc phải thành thạo khi làm API testing

Tiêu đề hơi “chém gió” để câu view. =))))

Dưới đây là những thứ mình gặp đi gặp lại khi làm API testing mà mình nghĩ là ai làm cũng nên nắm rõ, nó không hề liên quan đến tool hay ngôn ngữ lập trình. Nếu sau này mình rảnh, mình sẽ viết hướng dẫn cách xử lý từng tình huống. Bắt đầu luôn cho đỡ mất thời gian.

I. Cấu trúc của 1 test:

gồm 3 phần:

  • Data test: Với mỗi test lại có 1 data test khác nhau nên chúng ta nên khởi tạo data trong scope của mỗi test. Tất nhiên là những đoạn nào chung có thể viết vào 1 chỗ rồi dùng lại.
  • Thực hiện actions: Chính là việc call API
  • Kiểm tra kết quả: Tự động kiểm tra kết quả sau mỗi lần call API

Với mỗi 1 mục trong 3 phần trên ta sẽ có khá nhiều việc phải làm

II. Làm gì với data test:

Khi làm việc với data test bạn sẽ nhận ra được là có 2 kiểu data input đầu vào:

  • Dùng lại được
  • Không dùng lại được

Dùng lại được” có nghĩa là nếu là cái data test đấy bao nhiêu lần đi chăng nữa thì vẫn không ảnh hưởng đến kết quả hay không hề gây ra error.

Không dùng lại được” có nghĩa là cái data test đó bạn chỉ được dùng 1 lần. Ví dụ như khi bạn register 1 account trong hệ thống, bạn không thể dùng đi dùng lại 1 email được. Hệ thống sẽ báo lỗi là “email đã tồn tại”

Nói đến đây có thể bạn sẽ nghĩ là thế thì chỉ cần xử lý data “không dùng lại được” thôi –> Đúng mà cũng không đúng.

Bạn nên xử lý cả 2 phần data trên trước khi call API

  • Với data dùng lại được, bạn nên có thêm 1 cái gì đó để bạn có thể phân biệt sau mỗi lần run hoặc để phân biệt giữa manual test và automation test, sau này nếu có lỗi thì có nhiều thông tin để debug hơn. Ví dụ như trường thông tin mô tả, bạn có thể cho thêm date-time kiểu như “Automation test at 08/07/2019 16:40:22”
  • Với data không dùng lại được, bạn sẽ cần có thêm 1 cái gì đó để phân biệt và không bị trùng lặp. Có 2 cách khá dễ dàng đó là sử dụng: UUID hoặc timestamp. Ví dụ: testemail1562310163272@sharklasers.com
  • Với các loại data khác, bạn cũng phải cần biết cách để xử lý như phone number, name, company, date-time, ID… Hãy tìm những function hoặc library để giúp bạn tạo ra data 1 cách nhanh chóng. Ví dụ như Faker của Java, Faker của JS hay Function của Jmeter
  • Với các loại data mà nó nằm ở response của API khác thì bạn phải biết cách extract data. Nếu data dạng json thì có 2 loại dữ liệu bạn phải biết cách lấy, đó là dạng object và array. Bạn có thể đọc thêm https://goessner.net/articles/JsonPath/ và thực hành trước ở đây http://jsonpath.com/

III. Call API thì có gì phải lưu ý:

  • Domain của URL nên được config 1 cách dễ dàng. Ví dụ:
    {{url}}/get?foo1=bar1&foo2=bar2 thay vì http://postman-echo.com/get?foo1=bar1&foo2=bar2
  • Những testcase có dùng chung path thì cũng nên đặt biến để dùng chung, sẽ tránh được các lỗi về typo.
  • Testcase để test 1 api thì nên viết chung phần call API ra 1 function. Ví dụ như hình.

IV. Check kết quả API như thế nào?

  • Nên check response code cho tất cả các test
  • Nếu API nào có liên quan đến logic thì bạn phải biết extract dữ liệu từ response trả về và sử dụng các library giúp check kết quả như JUnit/hamscret/AssertJ hoặc có thể sử dụng các built-in function của các tools như trong Postman hoặc Jmeter.

V. Kết luận

Trên đây là những tasks mà hầu như test API nào cũng gặp phải, hãy cố gắng thành thạo chúng để có thể viết test hiệu quả hơn.

Leave a Reply

Your email address will not be published. Required fields are marked *