REST là một kiểu kiến trúc phần mềm, thường được sử dụng cho các dịch vụ web. Do tính phổ biến của nó, bạn có thể sẽ cần phải tải thử nghiệm các API RESTful vào một lúc nào đó. Kiểm tra API có thể được thực hiện với Apache JMeter ™. Đọc bài viết này để tìm hiểu cách làm.

1 – REST AND RESTFUL APIS – GIỚI THIỆU

REST (Representational State Transfer) là một mẫu thiết kế phần mềm thường được sử dụng cho các ứng dụng web. Chúng ta có thể nghĩ về REST như một phong cách kiến trúc phần mềm. Ý tưởng cơ bản của REST là coi các đối tượng ở phía máy chủ (ví dụ: các hàng trong bảng cơ sở dữ liệu) là tài nguyên có thể được tạo hoặc phá hủy. Khi chúng tôi nói RESTful API, chúng tôi đang đề cập đến việc triển khai các dịch vụ web của kiến trúc REST.

Cách hiểu cơ bản nhất về RESTful là cách định dạng URL của các ứng dụng web của bạn. Ví dụ: nếu tài nguyên của bạn được gọi là “articles”, thì:

  • /article – Cách người dùng truy cập TẤT CẢ các bài đăng.
  • /article/:id – Cách người dùng truy cập và xem một bài đăng riêng lẻ được truy xuất dựa trên id duy nhất của chúng.
  • /posts/new – Biểu mẫu tạo bài đăng mới được hiển thị như thế nào.

RESTful API xác định một tập hợp các chức năng mà nhà phát triển có thể sử dụng để thực hiện các yêu cầu và nhận phản hồi thông qua giao thức HTTP, chẳng hạn như GET, POST, PUT và DELETE.

  • Gửi một yêu cầu GET đến /users sẽ truy xuất người dùng từ cấp cơ sở dữ liệu.
  • Gửi một yêu cầu POST tới /users sẽ tạo ra một người dùng mới ở cấp cơ sở dữ liệu.
  • Gửi một yêu cầu PUT tới /users/:id sẽ cập nhật các thuộc tính của một người dùng nhất định, lại được xác định bởi một id duy nhất.
  • Gửi một yêu cầu DELETE tới /users/:id sẽ xóa một người dùng nhất định, lại được xác định bởi một id duy nhất.

2 – CÁCH LOAD TEST API RESTFUL VỚI JMETER

Load Test RESTful API có thể dễ dàng thực hiện trong JMeter với HTTP Request Sampler.

Môi trường làm việc của chúng ta:

API để test: jsonplaceholder.typicode.com

Khái niệm:
– Request: Yêu cầu
– Response: Phản hồi

1 – THÊM MỘT THREAD GROUP

Click chuột phải ->  Add- > Thread Group

Ở đây chúng tôi đã xác định “Number of Threads = 50” và “Loop Count = 5”. Điều này cho phép chúng tôi mô phỏng 50 yêu cầu khác nhau trong 5 lần. Tôi đặt tên cho Thread Group là “REST Example”.

2 – THÊM MỘT HTTP REQUEST

Click chuột phải vào REST Example -> Add -> Sampler -> HTTP Request.

Add a HTTP Request. API testing

3 – ĐIỀN CÁC GIÁ TRỊ CẦN THIẾT

  • Name – tên của người lấy mẫu hiện tại.
  • Protocol – theo mặc định đây là HTTP, nhưng nó cũng có thể là HTTPS hoặc FILE.
  • Server – địa chỉ IP hoặc tên miền của máy chủ. Trường này là bắt buộc.
  • Port – máy chủ web mà cổng sẽ lắng nghe. Theo mặc định: 80.
  • Method – GET, POST, PUT, DELETE, v.v. Trường này là bắt buộc.
  • Path – đường dẫn đến tài nguyên. Nếu điều này yêu cầu tham số chuỗi trong truy vấn, hãy thêm chúng vào bên dưới trong phần “Send Parameters With the Request”.
  • Content encoding – nếu bạn đang sử dụng POST, PUT, PATCH hoặc FILE, có một mã hóa ký tự sẽ được sử dụng.

POST

Chúng ta sẽ đăng dữ liệu dưới dạng đối tượng JSON. JSON, hoặc JavaScript Object Notation, là một cách để lưu trữ thông tin một cách có tổ chức, dễ truy cập. Tóm lại, JSON cung cấp cho chúng ta một bộ sưu tập dữ liệu mà con người có thể đọc được mà chúng ta có thể truy cập theo cách hợp lý.

4 – THIẾT LẬP MỘT CONTENT-TYPE HEADER

Click chuột phải vào Test Plan -> Add -> Config element -> HTTP Header Manager

5 – THÊM MỘT “CONTENT-TYPE”

Thêm một “Content-Type” tương đương với “application/json”, như hình dưới:

Quan trọng! API RESTful của chúng ta trong bài đăng này rất đơn giản nên chúng ta không cần gửi header và bạn có thể bỏ qua bước này. Nhưng trong những trường hợp khác, bước này là cần thiết.

6 – THÊM MỘT HTTP REQUEST SAMPLER

Click chuột phải vào REST Example -> Add -> Sampler -> HTTP Request

7 – ĐIỀN CÁC TRƯỜNG LIÊN QUAN

  • Name – POST method
  • Server – jsonplaceholder.typicode.com
  • Method – POST
  • Path – “/article”
  • Parameters-Post Body – thêm yêu cầu nội dung

Bây giờ bạn sẽ thấy cửa sổ này:

Add a HTTP Request Sampler to our REST Example thread group. API testing

8 – THÊM MỘT LISTENER ĐỂ XEM PHẢN HỒI YÊU CẦU

Click chuột phải vào REST Example -> Add -> Listener -> View Results Tree

Nó sẽ trông giống thế này:

Add a Listener to see the Request response. API testing

GET

9 – KIỂM TRA PHƯƠNG THỨC GET

Để kiểm tra phương thức GET, hãy tạo một HTTP Request sampler mới và điền vào các thông tin đăng nhập sau

  • Name – GET method
  • Server – jsonplaceholder.typicode.com
  • Method – GET
  • Path – “/articles”
GET method, API testing

10 – XEM KẾT QUẢ TRONG VIEW RESULTS TREE

Trong View Results Tree, bạn có thể xem tất cả các posts nhận được bằng phương thức GET:

In the View Results Tree you can see all the posts received by the GET method. API testing

RESPONSE ASSERTIONS

11 – XÁC NHẬN PHẢN HỒI

Nếu bạn cần xác minh rằng post được trình bày trong phản hồi nhận được của bạn, hãy sử dụng Response Assertion.

Click chuột phải vào GET method -> Add -> Assertions -> Response Assertion

Để cài đặt của cửa sổ này làm mặc định. Bạn chỉ cần định cấu hình “Patterns to Test”, như bên dưới, theo phản hồi bạn muốn kiểm tra.

response assertions, API testing

Response Assertion hoạt động như thế nào?

Trong phản hồi, các post khác nhau có id, tiêu đề và nội dung khác nhau. Response Assertion xem xét toàn bộ phản hồi và tìm kiếm sự phù hợp giữa các mẫu bạn đã viết ra và nội dung phản hồi chứa. Nếu có sự trùng khớp, bài kiểm tra sẽ đạt. Nếu không – bài kiểm tra sẽ không đạt.

Trong ví dụ này, tôi đã lấy tiêu đề của một bài đăng trên máy chủ của chúng tôi. Nó tương đương với “qui est esse”. Kể từ khi có một khớp, bài kiểm tra đạt.

Response Assertion, API testing, jmeter

Tuy nhiên, nếu chúng ta thay đổi mẫu thành “blazemeter title”

response assertion api load testing

Sau đó, bạn có thể thấy rằng các bài kiểm tra phương pháp GET của chúng ta không đạt.

assertion failure message API testing

Thông báo xác nhận thất bại: Kiểm tra không thành công: văn bản dự kiến sẽ chứa /blazemeter title/

Đọc bài viết Tiếng Anh tại đây: https://www.blazemeter.com/blog/rest-api-testing-how-to-do-it-right/

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Copy link
Powered by Social Snap