API auto test
1. Giới thiệu về api-auto-test
- Hướng dẫn và tài liệu để giúp bạn bắt đầu với api-auto-test.
- api-auto-test là một nền tảng phát triển API miễn phí và mã nguồn mở giúp bạn xây dựng, kiểm tra và tài liệu hóa các API nhanh hơn. Đây là một môi trường phát triển API dựa trên web cho phép bạn gửi yêu cầu và xem phản hồi trong một giao diện duy nhất.
- Tìm các bài viết, hướng dẫn và tài liệu để giúp bạn bắt đầu với api-auto-test.

2. Không gian làm việc
2.1. Tạo một không gian làm việc
-
Để tạo một không gian làm việc, hãy nhấp vào biểu tượng ”+” ở góc trên bên phải của trình chuyển đổi không gian làm việc.

-
Ngoài ra, bạn cũng có thể nhấp vào nút “Create new workspace” trên trang “Profile” trong phần “Workspaces”.

-
Tạo một không gian làm việc sẽ khiến bạn trở thành chủ sở hữu của không gian làm việc đó. Bạn có thể mời người dùng khác vào không gian làm việc và phân công cho họ các vai trò.
2.2. Mời người dùng vào một không gian làm việc
-
Để mời người dùng vào một không gian làm việc, hãy nhấp vào nút “Invite”.

-
Nhập địa chỉ email của người dùng mà bạn muốn mời. Bạn có thể mời nhiều người dùng cùng một lúc bằng cách thêm các địa chỉ email vào các trường nhập liệu.

2.3. Chuyển đổi giữa các không gian làm việc
Để chuyển đổi giữa các không gian làm việc, hãy nhấp vào công cụ chuyển đổi không gian làm việc ở góc trên bên phải của ứng dụng và chọn không gian làm việc mà bạn muốn chuyển đến.

2.4. Chỉnh sửa một không gian làm việc
Bạn chỉ có thể chỉnh sửa một không gian làm việc nếu bạn là chủ sở hữu của không gian làm việc đó.

2.4.1. Xóa một người dùng khỏi không gian làm việc
- Để xóa một người dùng khỏi không gian làm việc, hãy nhấp vào nút cài đặt không gian làm việc ở góc trên bên phải của ứng dụng.
- Sau đó nhấp vào nút “Delete” trên người dùng mà bạn muốn xóa khỏi không gian làm việc.
2.4.3. Rời khỏi một không gian làm việc
- Để rời khỏi một không gian làm việc, hãy nhấp vào nút cài đặt không gian làm việc ở góc trên bên phải của ứng dụng. Sau đó nhấp vào nút “Delete” trên không gian làm việc mà bạn muốn rời.
- Bạn chỉ có thể rời khỏi một không gian làm việc nếu bạn không phải là chủ sở hữu của không gian làm việc đó. Nếu bạn là chủ sở hữu của không gian làm việc, bạn sẽ phải xóa không gian làm việc để rời khỏi nó. Ngoài ra, bạn cũng có thể chuyển quyền sở hữu không gian làm việc cho một người dùng khác và sau đó rời khỏi không gian làm việc.
2.4.4. Thay đổi vai trò thành viên
Có ba loại vai trò cho các thành viên trong một không gian làm việc:
- Owner: Chủ sở hữu của không gian làm việc có quyền truy cập đầy đủ vào không gian làm việc và có thể mời những người dùng khác vào không gian làm việc. Chủ sở hữu cũng có thể xóa không gian làm việc.
- Editor: Biên tập viên của không gian làm việc có quyền chỉnh sửa không gian làm việc và có thể tạo, chỉnh sửa và xóa các bộ sưu tập, môi trường và yêu cầu trong không gian làm việc.
- Viewer: Người xem của không gian làm việc có quyền truy cập chỉ đọc vào không gian làm việc và chỉ có thể xem các bộ sưu tập, môi trường và yêu cầu trong không gian làm việc. Để thay đổi vai trò của một thành viên trong một không gian làm việc, hãy nhấp vào nút cài đặt không gian làm việc ở góc trên bên phải của ứng dụng. Sau đó, nhấp vào menu thả xuống “Role” trên người dùng mà bạn muốn thay đổi vai trò. Sau đó, chọn vai trò mà bạn muốn gán cho người dùng và nhấp vào “Save”.
2.4.5. Xóa một không gian làm việc
Để xóa một không gian làm việc, hãy nhấp vào nút “Delete” trên không gian làm việc mà bạn muốn xóa trên trang “Profile” dưới phần “Workspaces”.
3. Bộ sưu tập
3.1. Tạo một bộ sưu tập mới
Để tạo một bộ sưu tập mới, hãy nhấp vào nút “Add new” trong phần bộ sưu tập và nhập tên của bộ sưu tập. Bạn cũng có thể tạo một bộ sưu tập con bằng cách nhấp vào nút “Add new” trên bộ sưu tập mong muốn và nhập tên của bộ sưu tập con.
3.2. Lưu yêu cầu vào bộ sưu tập
Để thêm một yêu cầu mới vào bộ sưu tập của bạn, bạn có thể nhấp vào nút “Save” trên trang yêu cầu và chọn bộ sưu tập mà bạn muốn thêm vào. Nhấp vào menu thả xuống bên cạnh nút lưu và nhấp vào “Save as” để lưu yêu cầu vào một vị trí mới.
Bạn cũng có thể sử dụng phím tắt Ctrl/Cmd + S để lưu yêu cầu vào một bộ sưu tập.
3.3. Tổ chức bộ sưu tập
Bạn có thể tổ chức bộ sưu tập của mình bằng cách kéo và thả chúng đến vị trí mong muốn. Bạn cũng có thể tạo bộ sưu tập con bằng cách kéo và thả một bộ sưu tập vào một bộ sưu tập khác.
3.3.1. Chỉnh sửa bộ sưu tập
Để chỉnh sửa một bộ sưu tập, hãy nhấp vào nút “Edit” trong tùy chọn của bộ sưu tập.
3.3.2. Thêm yêu cầu vào bộ sưu tập
Để thêm một yêu cầu vào một bộ sưu tập, hãy nhấp vào nút “New request” trong tùy chọn của bộ sưu tập để lưu yêu cầu hiện tại vào bộ sưu tập.
3.4. Nhân bản bộ sưu tập
Để nhân bản một bộ sưu tập, hãy nhấp vào nút “Duplicate” trong tùy chọn của bộ sưu tập.
3.5. Xóa bộ sưu tập
Để xóa một bộ sưu tập, hãy nhấp vào nút “Delete” trong tùy chọn của bộ sưu tập.
3.6. Nhập và xuất bộ sưu tập
Bạn có thể nhập và xuất bộ sưu tập từ api-auto-test, OpenAPI và Postman.
3.6.1. Nhập bộ sưu tập
Để nhập một bộ sưu tập, hãy nhấp vào nút “Import” trong phần bộ sưu tập và chọn loại bộ sưu tập mà bạn muốn nhập.
3.6.2. Xuất bộ sưu tập
Để xuất một bộ sưu tập, hãy nhấp vào nút “Export” trong tùy chọn của bộ sưu tập và chọn loại bộ sưu tập mà bạn muốn xuất.
3.7. Thuộc tính bộ sưu tập
Các thuộc tính bộ sưu tập cho phép bạn định nghĩa các cài đặt áp dụng chung cho tất cả các yêu cầu trong bộ sưu tập.
Chi tiết và tiêu đề xác thực có thể được chỉ định ở cấp độ bộ sưu tập. Các thư mục con và các yêu cầu riêng lẻ trong bộ sưu tập có thể kế thừa các thuộc tính này hoặc định nghĩa xác thực và tiêu đề tùy chỉnh của riêng chúng.
Để thiết lập các thuộc tính bộ sưu tập:
- Nhấp chuột phải vào một bộ sưu tập hoặc một thư mục con trong bộ sưu tập để mở thuộc tính của nó.
- Chỉ định xác thực và tiêu đề mà tất cả các yêu cầu hoặc thư mục lồng nhau nên tuân theo.
- Nếu một thư mục con nên kế thừa các thuộc tính của bộ sưu tập cha, hãy chỉ định xác thực là “kế thừa” và để trống các tiêu đề.
4. Biến
4.1. Phạm vi biến
api-auto-test cung cấp cho bạn các phạm vi biến khác nhau, cho phép bạn sử dụng các phạm vi khác nhau cho các ngữ cảnh khác nhau.
- Global Variables: có thể được truy cập trên toàn bộ api-auto-test và có phạm vi rộng nhất trong tất cả các biến.
- Environment Variables: cho phép các biến của bạn được giới hạn trong một môi trường. Các biến môi trường rất hữu ích khi bạn có cùng một tập hợp các biến cho hai môi trường như sản xuất và staging.
- Request Variables: chỉ được giới hạn trong một yêu cầu cá nhân, các biến yêu cầu rất hữu ích khi bạn muốn sử dụng các biến trong đường dẫn URL của bạn hoặc khi bạn muốn nhúng một URL biến.
- Predefined Variables: được tạo tự động trong thời gian chạy và có thể được truy cập toàn cầu trên toàn bộ api-auto-test bằng cách sử dụng ký hiệu $, chẳng hạn như $guid hoặc $timestamp.
Phạm vi của mỗi biến có thể được xác định từ màu sắc của tên biến
| Variable Scope | Color |
|---|---|
| Toàn cầu | Xanh dương |
| Môi trường | Xanh lá |
| Yêu cầu | Cam |
| Được định nghĩa trước | Vàng |
| Không thể giải quyết | Đỏ |
4.2. Các loại biến
- A regular variable: cho phép người dùng tham chiếu biến trên toàn bộ api-auto-test, và bất kỳ ai cũng có thể thấy giá trị liên quan đến biến. Trong một không gian làm việc, các cặp giá trị biến môi trường thông thường sẽ được đồng bộ hóa với máy chủ, làm cho chúng có sẵn cho tất cả các thành viên trong không gian làm việc. Tuy nhiên, bạn có tùy chọn để chọn xem có đồng bộ hóa giá trị biến thông thường có trong không gian làm việc cá nhân của bạn hay không.
- A secret variable: cho phép người dùng chỉ định bí mật và tham chiếu các giá trị như biến. Các giá trị của các biến bí mật trong bất kỳ không gian làm việc nào sẽ không bao giờ được đồng bộ với máy chủ hoặc chia sẻ với bất kỳ thành viên nào trong không gian làm việc. Dự kiến rằng trong một không gian làm việc hợp tác, người dùng sẽ điền giá trị của biến tại thời gian chạy. Tất cả các giá trị biến bí mật trong api-auto-test sẽ được che giấu bằng dấu hoa thị (***). Các biến bí mật không thể được giới hạn cho một yêu cầu và chỉ có thể được giới hạn trong một môi trường hoặc toàn cầu.
Các giá trị biến bí mật sẽ không được xuất khi một môi trường được xuất.
- A predefined variable: được tạo tự động tại thời gian chạy và cung cấp dữ liệu động, cụ thể theo ngữ cảnh. Các biến đã được định nghĩa trước có sẵn trong toàn bộ các yêu cầu và phản hồi của bạn và rất hữu ích để tích hợp thông tin cấp hệ thống hoặc các giá trị động vào các tương tác API của bạn mà không cần cấu hình thủ công. Tất cả các biến đã được định nghĩa trước đều có thể truy cập trong toàn bộ api-auto-test và có thể được truy xuất bằng cách sử dụng ký hiệu $. Dưới đây là danh sách các biến đã được định nghĩa trước mà giá trị của chúng được tạo động trong quá trình yêu cầu hoặc chạy bộ sưu tập:
Tên Biến Mô tả Ví dụ: guidA định danh duy nhất theo kiểu v4 (GUID) cho mỗi yêu cầu.123e4567-e89b-12d3-a456-426614174000
timestampThời gian UNIX hiện tại tính bằng giây 1693047645isoTimestampNgày và giờ hiện tại theo định dạng ISO-8601 tại UTC không (còn được gọi là “thời gian Zulu” hoặc UTC-0)2024-09-25T00:00:00.000Z
randomUUIDMột UUID ngẫu nhiên 36 ký tự.6929bb52-3ab2-448a-9796-d6480ecad36b
Numbers, Text, and Colors| Variable Name | Description | Example |
|---|---|---|
| $randomAlphaNumeric | Một ký tự ngẫu nhiên alpha-numeric. | A9X1Z3 |
| $randomBoolean | Một giá trị boolean ngẫu nhiên. | true , false |
| $randomInt | Một giá trị số nguyên ngẫu nhiên giữa 0 và 1000. | 29 , 432 , 786 |
| $randomColor | Một màu ngẫu nhiên trong số red, green, blue, yellow, purple, and orange. | yellow |
| $randomHexColor | Một giá trị hex ngẫu nhiên. | #f2a729 |
| $randomAbbreviation | Một từ viết tắt ngẫu nhiên. | SQL , JSON , HTML |
| Variable Name | Description | Example |
|---|---|---|
| $randomIP | Một địa chỉ IPv4 ngẫu nhiên | 192.168.0.101 |
| $randomIPV6 | Một địa chỉ IPv6 ngẫu nhiên | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
| $randomMACAddress | Một địa chỉ MAC ngẫu nhiên. | 00:1B:44:11:3A:B7 |
| $randomPassword | Một mật khẩu alpha-numeric 15 ký tự ngẫu nhiên. | H8w72Sx93KlqA1b |
| $randomLocale | Một mã ngôn ngữ hai chữ cái ngẫu nhiên (ISO 639-1). | en, fr, es |
| $randomUserAgent | Một user agent ngẫu nhiên. | Mozilla/5.0 (Windows NT 10.0; Win64) |
| $randomProtocol | Một giao thức internet ngẫu nhiên. | https, ftp |
| $randomSemver | Một số phiên bản ngữ nghĩa ngẫu nhiên. | 1.2.3 |
| Variable Name | Description | Example |
|---|---|---|
| $randomFirstName | Một tên đầu ngẫu nhiên. | Ethan , Chandler, John |
| $randomLastName | Một họ ngẫu nhiên. | Schaden , Schneider , Doe |
| $randomFullName | Một tên đầy đủ ngẫu nhiên. | Ethan Schaden , Chandler Schneider , John Doe |
| $randomNamePrefix | Một tiền tố tên ngẫu nhiên. | Dr. , Miss. , Prof. |
| $randomNameSuffix | Một hậu tố tên ngẫu nhiên. | MD , PhD , Jr. |
| Variable Name | Description | Example |
|---|---|---|
| $randomCity | Một tên thành phố ngẫu nhiên. | New York , Houston , Philadelphia |
| $randomJobArea | Một khu vực công việc ngẫu nhiên. | Intranet , Development , Testing |
| $randomJobDescriptor | Một mô tả công việc ngẫu nhiên. | Corporate , Lead , Principal |
| $randomJobTitle | Một tiêu đề công việc ngẫu nhiên. | Global Branding Officer , Productivity Analyst |
| $randomJobType | Một loại công việc ngẫu nhiên. | Manager , Coordinator , Director |
5. Môi trường
5.1. Các loại Môi trường
- Môi trường Toàn cầu - Các biến được định nghĩa trong một môi trường toàn cầu có thể được truy cập từ bất kỳ không gian làm việc nào bất cứ lúc nào. Tuy nhiên, các biến được định nghĩa trong môi trường không gian làm việc cá nhân hoặc chia sẻ nếu được sử dụng sẽ có độ ưu tiên cao hơn so với các biến toàn cầu.
- Môi trường Cá nhân - Là cá nhân cho người dùng và không liên kết với một không gian làm việc chia sẻ, tuy nhiên người dùng có thể sử dụng một môi trường cá nhân trong một không gian làm việc chia sẻ mà không cần chia sẻ nó với các thành viên trong không gian làm việc.
- Môi trường Chia sẻ - Là duy nhất cho mỗi không gian làm việc chia sẻ, tất cả các môi trường chia sẻ được tạo ra trong một không gian làm việc chia sẻ đều có thể truy cập được cho mọi thành viên của không gian làm việc chia sẻ.
5.2. Các loại Biến trong một Môi trường
Môi trường api-auto-test cung cấp hỗ trợ cho hai loại biến
- Một biến môi trường Thông thường cho phép người dùng tham chiếu đến biến trong toàn bộ api-auto-test, và bất kỳ ai cũng có thể thấy giá trị liên quan đến biến đó. Trong một không gian làm việc chia sẻ, các cặp giá trị biến môi trường thông thường sẽ được đồng bộ hóa với máy chủ, làm cho chúng có sẵn cho tất cả các thành viên trong không gian làm việc. Tuy nhiên, bạn có tùy chọn để chọn xem có đồng bộ hóa một môi trường cá nhân hoặc toàn cầu hay không.
- Một biến môi trường bí mật cho phép người dùng chỉ định các bí mật và tham chiếu các giá trị như là các biến. Các giá trị của các biến bí mật trong bất kỳ không gian làm việc nào sẽ không bao giờ được đồng bộ với máy chủ hoặc chia sẻ với bất kỳ thành viên nào trong không gian làm việc. Người dùng được kỳ vọng sẽ điền giá trị của biến tại thời điểm chạy. Tất cả các giá trị biến bí mật trong api-auto-test sẽ được che giấu bằng dấu hoa thị (***).
Các giá trị biến bí mật sẽ không được xuất khi một môi trường được xuất.
5.3. Quyền truy cập môi trường chia sẻ
| Environment Variable | Secret Variable | |
|---|---|---|
| Chủ sở hữu không gian làm việc | tạo / xóa biến, chỉnh sửa giá trị và sử dụng | tạo / xóa biến bí mật, thêm giá trị và sử dụng |
| Biên tập viên không gian làm việc | tạo / xóa biến, chỉnh sửa giá trị và sử dụng | tạo / xóa biến bí mật, thêm giá trị và sử dụng |
| Người xem không gian làm việc | sử dụng | thêm giá trị và sử dụng |
5.4. Tạo một môi trường
Nhấp vào biểu tượng "Môi trường" trên thanh bên để tạo môi trường.
Một biến được tạo trong một môi trường có thể được sử dụng bằng cách gõ tên biến được bao quanh bởi dấu ngoặc nhọn đôi <<variable>>.
5.4.1. Tạo biến môi trường từ máy khách
Environment variablesTìm hiểu cách sử dụng các biến môi trường trong các yêu cầu và kịch bản của bạn.
Các biến môi trường cho phép bạn lưu trữ và tái sử dụng các giá trị trong các yêu cầu và kịch bản của bạn.
Bằng cách lưu trữ một giá trị trong một biến:
- Bạn có thể tham chiếu nó trong toàn bộ phần yêu cầu của bạn.
- Bạn có thể thay đổi giá trị của nó bằng cách cập nhật nó ở một nơi duy nhất.
- Bạn tăng khả năng làm việc hiệu quả và giảm thiểu khả năng xảy ra lỗi.
Bạn có thể tạo một môi trường mới bằng cách nhấp vào biểu tượng môi trường trên thanh bên và nhấp vào nút new. Hãy đặt tên cho môi trường là Pokemon Envs. Bây giờ, hãy tạo một biến môi trường có tên baseURL trỏ đến https://pokeapi.co/api/v2.
Tương tự, bạn có thể tạo nhiều môi trường và biến môi trường.
Accessing environment variableNếu bạn có hơn một môi trường, hãy chọn môi trường mà bạn muốn truy cập các biến. Bạn có thể truy cập các biến trong phần yêu cầu bằng cách tham chiếu đến biến theo định dạng sau <<variable_name>>, trong trường hợp của chúng ta, biến sẽ là <<baseURL>> và URL hoàn chỉnh sẽ là <<baseURL>>/pokemon/ditto.
5.4.2. Tạo biến môi trường bằng cách sử dụng kịch bản
Pre-request scriptsTìm hiểu cách sử dụng kịch bản trước yêu cầu trong Hoppscotch.
ScriptsHoppscotch cho phép bạn thêm hành vi động vào các yêu cầu REST API. Điều này cho phép bạn viết các bộ kiểm tra và xây dựng các yêu cầu có thể chứa các tham số động. Bạn có thể thêm ECMAScript mã sẽ thực thi dựa trên các sự kiện trong luồng:
- Các kịch bản trước yêu cầu được thực thi trước khi một yêu cầu được gửi đến máy chủ.
- Bạn có thể thêm nhiều kịch bản trước yêu cầu vào một yêu cầu.
- Bạn có thể thêm kịch bản trước yêu cầu vào cả yêu cầu đã lưu và chưa lưu trong một bộ sưu tập.
Hoppscotch sẽ sau đó thực thi các kịch bản cùng với các yêu cầu theo thứ tự đã chỉ định.
Pre-request scriptKịch bản trước yêu cầu là một đoạn mã sẽ chạy trước khi thực thi yêu cầu.
Bạn có thể sử dụng kịch bản trước yêu cầu cho một tác vụ tiền xử lý như:
- Thiết lập các tham số, tiêu đề.
- Thêm dữ liệu thân.
- Thêm giá trị biến.
- Bao gồm dấu thời gian trong các tiêu đề yêu cầu.
Hoppscotch cung cấp một đối tượng đặc biệt pw chứa nhiều phương thức để tạo kịch bản và kiểm tra. Đối tượng pw là toàn cục và có thể được tham chiếu theo tên để truy cập các phương thức. Ví dụ, để thiết lập một biến môi trường, bạn có thể sử dụng phương pháp pw.env.set().
pw.env.set("variable", "value");
ExamplesHãy cùng xem một số ví dụ về cách bạn có thể sử dụng Hoppscotch để viết các kịch bản trước yêu cầu.
Setting environment variablespw.env.set() có thể được sử dụng trực tiếp để định nghĩa biến môi trường một cách nhanh chóng và thuận tiện. Nó có thể được sử dụng để tổ chức mã yêu cầu tốt hơn.
pw.env.set("baseURL", "https://httpbin.org");pw.env.set("method", "get");
Đi tới tab kịch bản trước yêu cầu và sao chép-dán mã ECMAScript ở trên như hình dưới đây:
Các biến này có thể được truy cập trong phần yêu cầu bằng cách tham chiếu chúng trong dấu ngoặc nhọn kép <<variable_name>>. Vì vậy, URL sẽ là <<baseURL>>/<<method>>.
Hãy lấy một trường hợp mà chúng ta cần kiểm tra dữ liệu người dùng thử ngẫu nhiên có sẵn tại một điểm cuối.
Hãy sử dụng điểm cuối API GET sau https://reqres.in/api/users/.
Thêm <<randomValue>> vào URL điểm cuối.
https://reqres.in/api/users/<<randomValue>>
Bây giờ trong tab kịch bản trước yêu cầu, thêm logic sau.
var random = Math.floor(Math.random() * 10);pw.env.set("randomValue", random.toString());
Mã ECMAScript sẽ gán một số ngẫu nhiên cho biến môi trường randomValue và API sẽ trả về một người dùng ngẫu nhiên liên quan đến giá trị ngẫu nhiên đó.
Bạn sẽ nhận được một phản hồi tương tự như hình dưới đây:
{
"data": {
"id": 4,
"email": "eve.holt@reqres.in",
"first_name": "Eve",
"last_name": "Holt",
"avatar": "https://reqres.in/img/faces/4-image.jpg"
},
"support": {
"url": "https://reqres.in/#support-heading",
"text": "Để giữ cho ReqRes miễn phí, các đóng góp cho chi phí máy chủ được đánh giá cao!"
}
}
5.5. Sử dụng kịch bản
Bạn cũng có thể tạo và xóa các biến môi trường bằng cách sử dụng các kịch bản thông qua đối tượng pw.
pw.env.set("variable", "value"); // Tạo một biến môi trường pw.env.unset("variable"); // Xóa biến môi trường
5.6. Nhân bản một môi trường
Tạo một bản sao của một môi trường hiện có để sửa đổi hoặc thử nghiệm các cấu hình khác nhau mà không ảnh hưởng đến bản gốc:
- Nhấp vào biểu tượng “Environments” trong thanh bên để xem tất cả các môi trường hiện có dưới Global Environments.
- Bên cạnh môi trường bạn muốn nhân bản, nhấp vào biểu tượng More.
- Từ menu thả xuống, chọn Duplicate. Một môi trường mới với hậu tố Duplicate sẽ được tạo ra.