[Bài 9] Challenge-Build body object có cấu trúc phức tạp

Nếu bạn đã follow series Rest-Assured từ đầu đến giờ, bạn thấy hầu hết body đều có cấu trúc rất đơn giản. Ví dụ như trong bài 4:

{
  "id": 1,
  "firstName": "Vernon",
  "lastName": "Harper",
  "email": "egestas.rhoncus.Proin@massaQuisqueporttitor.org",
  "programme": "Financial Analysis",
  "courses": [
    "Accounting",
    "Statistics"
  ]
}

Bài này mình sẽ liệt kê ra 1 số object có cấu trúc “phức tạp” mà mình đã gặp trong thực tế khi làm dự án, tất nhiên mình chỉ ví dụ thôi.

I. Object lồng object

{
  "account": {
    "name": "lucas",
    "age": 20,
    "is_admin": true
  },
  "colors": [
    "red",
    "orange"
  ],
  "star": 4.5
}

II. Object lồng Object, object con có thể thay đổi

Có khi thì

{
  "data": {
    "name": "lucas",
    "age": 20,
    "is_admin": true
  },
  "string": "Hi"
}

hoặc

{
  "data": {
    "machine": "lucas",
    "created_time": 12423423420,
  },
  "string": "Hi"
}

Bạn có thể thấy là các properties của object data là hoàn toàn khác nhau, nếu làm theo bài 4 thì chắc bạn không thể làm ra 1 object data là có các properties thay đổi như vậy được.

III. Object có 1 vài field lúc có, lúc không

{
  "data": {
    "machine": "lucas",
    "created_time": 12423423420,
  },
  "is_admin": true
}
{
  "data": {
    "machine": "lucas",
    "created_time": 12423423420,
  }

}

Field is_admin lúc cần, lúc không cần.

IV. Object rỗng

Ví dụ:

{
  "data": {
    
  },
  "string": "Hi"
}

V. Object vừa là cha, vừa là con

{
  "query": {
    "logic": {
      "data": {
        "logic": {
          "operation": ">"
        },
        "name": "lucas",
        "age": 20,
        "is_admin": true
      },
      
    },
    
  },
  "string": "Hi"
}

Thằng object logic vừa là cha, vừa là con của object data

Trên đây là 5 kiểu object mình đã từng gặp, các bạn có thể thử sức, tự build xem sao. Nếu không build được mà muốn biết đáp án thì có 2 cách:

  • Chờ bài viết đáp án (sẽ ra trong tương lai, chưa cố định thời gian)
  • Hoặc là đăng ký lớp học api automation testing của mình. Hehe

Leave a Reply

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