[Bài 7] Project structure cho Automation Api Testing sử dụng Rest-Assured

Mỗi người có 1 cách structure project khác nhau, cách mình đưa ra dưới đây chỉ mang hình thức tham khảo. Mình cần những packages sau đây:

  • src > test > Test suite / Features: nơi chứa các tests cho từng API hoặc nhiều API (gộp thành các flow)
  • src > test > Resources: nơi chứa các file data dùng cho test (csv, json)
  • src > main > Models: nơi chứa các Java Object, dùng cho việc mapping sang Json / xml Object. Đọc thêm bài 4.
  • src > main > Utilities: nơi chứa các Class hỗ trợ mình trong việc xử lý các vấn đề technical, không liên quan đến business, ví dụ như đọc file, log…
  • src > main > Resources: chứa file dùng cho project, ngoài test-data như configuration…
  • Ngoài ra bạn sẽ có 1 số file sẽ đặt dưới level của Project như: gitignore, pom.xml / build.gradle …

Bạn có thể nhìn ví dụ dưới đây

Cách để tạo ra folder dạng trên dễ nhất là sử dụng template project của Maven hoặc Gradle. Cái này các bạn có thể tự tìm hiểu.

Ở các bài sau, mình sẽ hướng dẫn refactor lại code từ bài 3 đến bài 6, cho phù hợp với structure này, cùng với đó là bổ sung thêm nhiều bài nữa:

  • Cách đọc config file để có thể linh động run test cho nhiều môi trường khác nhau (nằm trong utilities package)
  • Cách sử dụng 1 số Config có sẵn của Rest-Assured để log cái mình cần
  • Cách xử lý với Json data phức tạp
  • Cách xử lý Authentication khi app dùng Json Web Token (JWT)
  • Cách tổ chức code khi viết test API flow

Code của phần này, mình đặt ở https://github.com/lucas-nguyen-17/restassured

Bài này chỉ ngắn vậy thôi, chờ các bài tiếp theo nhé. 😀

0

8 thoughts on “[Bài 7] Project structure cho Automation Api Testing sử dụng Rest-Assured

    • Ủa, bạn quan tâm hả. 😀 thế để t viết tiếp, thấy chả có ai comment gì cả, đoán là không ai đọc nên t ko viết. Chờ 1 vài ngày tới nhé. Cảm ơn!

      0
      • Tks ad,
        Auto api cũng là phần quan trọng mà…kaka. Chờ hoài mà ko thấy bài nào ra cả..tham khảo những bài viết của ad cũng giúp mình phần nào hoàn thành cái FW của mình hơn.

        0
        • Okay bạn ơi, để t tìm lại project demo rồi viết tiếp. Lâu ko đụng, ko biết vứt đâu rồi

          0
  1. Baì viết của anh rất hay. Seri bài của anh e đã đọc gần hết, cám ơn anh vì đã share. Hiện tại em đang bị vướng mắc với issue xử lí với Json phức tạp, xử lí các kiểu date, datetime, object lồng object. Anh có thể viết tiếp phần này được không.
    Cách xử lý Authentication khi app dùng Json Web Token (JWT) -> phần này chắc cũng hay lắm đây và chắc là em sẽ giúp ích cho em rất nhiều.

    +1
    • Cảm ơn em, anh có thể viết tiếp được nhưng anh không chắc về thời gian sẽ viết, vì đó cũng nằm trong nội dung của lớp học api test.

      0
  2. Em tìm hiểu qua về cypress, không biết AD có tìm hiểu về nó không ạ? Nó gần giống như selenium, hay 1 điểm là mình có thể viết api testing hoặc ui automation trên đó. Nhưng tài liệu về nó khá ít. Nếu AD có biết về nó thì anh chia sẻ thêm cả những bài viết về nó nhé ạ. Em cảm ơn ạ!

    0
    • Hi bạn,
      Mình có tìm hiểu qua về cypress trước đây, chạy thử 1 vài test demo. Mình cũng vừa đọc lại docs của cypress, nó không hề có api test đâu bạn.
      Nó đơn giản là 1 tool tương tác với browser, giống kiểu selenium nhưng cách thức khác, có vẻ nó tương tác bằng javascript trực tiếp, chứ không thông qua chromedriver như selenium.

      Theo mình hiểu, tài liệu của nó không nhiều vì cypress mục đích ban đầu là dành cho front-end dev, nó chỉ chứa các test script đơn giản tương tác và assert element, chứ không quá tập trung vào functional test như selenium. Tuy nhiên, việc phát triển tiếp đến mức độ nào là tùy vào tư duy của mỗi người thôi, người ta chỉ viết docs cho những thứ cơ bản nhất.

      Mình không biết nhiều về javascript + typescript nên trong tương lai gần sẽ không có những bài viết về cypress. Có thể là năm sau, mình sẽ tìm hiểu kỹ hơn.

      0

Leave a Reply to Viktor Cancel reply

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