DEV Community

Cover image for Cách chuyển đổi từ ReadyAPI sang Apidog
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Cách chuyển đổi từ ReadyAPI sang Apidog

Tóm tắt

Di chuyển từ ReadyAPI sang Apidog khá đơn giản đối với các bộ kiểm thử nặng về REST. Hãy xuất dự án ReadyAPI của bạn, chuyển đổi những gì có thể thông qua việc nhập OpenAPI và tạo lại thủ công các kịch bản Groovy bằng JavaScript. Các trường hợp kiểm thử SOAP yêu cầu nhiều công việc thủ công nhất. Lập kế hoạch di chuyển theo từng giai đoạn để duy trì phạm vi kiểm thử liên tục.

Dùng thử Apidog ngay hôm nay

💡Apidog là một nền tảng phát triển API tất cả trong một miễn phí, nhập các thông số kỹ thuật OpenAPI và bộ sưu tập Postman, đồng thời chạy các pipeline kiểm thử với các script JavaScript. Hãy dùng thử Apidog miễn phí, không yêu cầu thẻ tín dụng.

Giới thiệu

Di chuyển cơ sở hạ tầng kiểm thử API là một nhiệm vụ có thể phức tạp khi bắt đầu thực hiện. Dự án ReadyAPI thường chứa nhiều năm tích lũy các trường hợp kiểm thử, script Groovy tùy chỉnh, tệp dữ liệu, môi trường và cấu trúc bộ kiểm thử phức tạp. Đưa toàn bộ vào Apidog đòi hỏi bạn phải xác định rõ phần nào có thể tự động chuyển đổi, phần nào phải làm thủ công và phần nào có thể loại bỏ.

Bài viết này hướng dẫn từng bước quy trình di chuyển, gồm xuất dự án ReadyAPI, phân tích hiện trạng, nhập vào Apidog, chuyển đổi Groovy sang JavaScript, thiết lập CI/CD và quản lý giai đoạn chuyển đổi song song hai công cụ.

Bước 1: Kiểm toán dự án ReadyAPI của bạn

Trước khi xuất dữ liệu, hãy kiểm tra kỹ dự án ReadyAPI hiện tại:

  • Số lượng bộ kiểm thử, trường hợp kiểm thử, bước kiểm thử: Mở Navigator để đếm. Dự án nhỏ (50 testcase) có thể di chuyển trong vài giờ, lớn (500+) có thể mất nhiều ngày.
  • Tỷ lệ REST/SOAP: REST dễ di chuyển, SOAP cần xử lý thủ công, nhất là khi có WS-Security hoặc khẳng định phức tạp.
  • Số lượng script Groovy: Kiểm tra các bước Script để đếm số testcase có logic Groovy tùy chỉnh; mỗi script cần chuyển sang JavaScript.
  • Kiểm thử dựa trên dữ liệu: Apidog hỗ trợ CSV/JSON, nhưng thiết lập khác với DataSource/DataSink của ReadyAPI.
  • Sử dụng Properties/Property Transfer: Apidog dùng biến và biến môi trường thay vì Property.
  • Có sử dụng LoadUI Pro không: LoadUI Pro không chuyển sang Apidog; cần dùng k6 hoặc công cụ khác ngoài.

Ghi chú lại phát hiện vào bảng tính: tên testcase, loại (REST/SOAP), groovy (có/không), độ phức tạp.

Bước 2: Xuất dự án ReadyAPI

  1. Mở ReadyAPI và dự án của bạn.
  2. Chọn File > Save As để lưu dự án dưới dạng tệp XML độc lập.
  3. Lưu các tệp dữ liệu bên ngoài (CSV, Excel, XML) được tham chiếu.
  4. Ghi lại cấu hình môi trường trong phần Environments.

Tệp XML chứa toàn bộ cấu trúc bộ kiểm thử, testcase, step, script và cấu hình.

Bước 3: Trích xuất định nghĩa API

Luồng di chuyển REST tối ưu là qua đặc tả OpenAPI:

  • A. Xuất từ ReadyAPI: Nhấp chuột phải vào dịch vụ REST > Export hoặc Generate API Definition (Swagger/OpenAPI).
  • B. Lấy đặc tả OpenAPI từ backend: Nếu có sẵn ở /openapi.json, tải trực tiếp cho độ chính xác cao.
  • C. Trích xuất thủ công: Dùng các request REST trong ReadyAPI để ghi lại endpoint, body, header, schema response. Tạo lại thủ công trong Apidog.

Bước 4: Nhập vào Apidog

  1. Mở Apidog, tạo dự án mới.
  2. Vào APIs > Import, chọn định dạng (OpenAPI 3.0, Swagger 2.0, v.v.).
  3. Tải tệp đặc tả hoặc dán URL.
  4. Apidog sẽ phân tích và tạo cấu trúc endpoint, tham số, request, response schema tự động.

Nếu có bộ sưu tập Postman, vào File > Import > Postman để nhập.

Bước 5: Tạo lại testcase cho endpoint REST

  1. Mở từng testcase REST trong ReadyAPI.
  2. Xác định request, assertion, nguồn dữ liệu sử dụng.
  3. Tạo testcase tương ứng trong Apidog: chọn endpoint, thêm các bước kiểm thử.

Chuyển đổi assertion:

  • Contains:
  pm.test('contains value', () => { pm.expect(pm.response.text()).to.include('expected string'); });
Enter fullscreen mode Exit fullscreen mode
  • Status code:
  pm.test('status 200', () => { pm.response.to.have.status(200); });
Enter fullscreen mode Exit fullscreen mode
  • JSONPath:
  pm.test('field value', () => { pm.expect(pm.response.json().fieldName).to.equal('expected'); });
Enter fullscreen mode Exit fullscreen mode

Testcase GET, POST không Groovy có thể chuyển nhanh (15-30 phút/case đơn giản).

Bước 6: Chuyển đổi script Groovy sang JavaScript

Một số mẫu Groovy phổ biến và chuyển đổi:

  • Đọc giá trị response:

    // Groovy (ReadyAPI)
    def response = context.expand('${TestStep#Response}')
    def json = new groovy.json.JsonSlurper().parseText(response)
    def value = json.fieldName
    
```javascript
// JavaScript (Apidog)
const response = pm.response.json();
const value = response.fieldName;
```
Enter fullscreen mode Exit fullscreen mode
  • Đặt biến:

    // Groovy
    testRunner.testCase.setPropertyValue('myVariable', someValue)
    
```javascript
// JavaScript
pm.variables.set('myVariable', someValue);
```
Enter fullscreen mode Exit fullscreen mode
  • Khẳng định có điều kiện:

    // Groovy
    if (statusCode == 200) {
      assert responseBody.contains("success")
    }
    
```javascript
// JavaScript
if (pm.response.code === 200) {
  pm.test('response contains success', () => {
    pm.expect(pm.response.text()).to.include('success');
  });
}
```
Enter fullscreen mode Exit fullscreen mode
  • Thao tác ngày:

    // Groovy
    def now = new Date()
    def formatted = now.format('yyyy-MM-dd')
    
```javascript
// JavaScript
const now = new Date();
const formatted = now.toISOString().split('T')[0];
```
Enter fullscreen mode Exit fullscreen mode

Script phức tạp với import thư viện Java cần phân tích và viết lại logic tương đương trong JavaScript. Không nên dịch tự động, nên kiểm tra kỹ từng script.

Bước 7: Xử lý testcase SOAP

SOAP là phần khó tự động nhất:

  • Nếu dịch vụ SOAP có REST API thay thế, chuyển hết testcase sang REST để loại bỏ SOAP.
  • Nếu không có REST, hai lựa chọn:
    • Giữ ReadyAPI chỉ cho SOAP: Chạy song song với Apidog cho REST.
    • Dùng SoapUI Open Source: Miễn phí, hỗ trợ SOAP cơ bản.

Đặc biệt với WS-Security, cần kiểm soát chặt chẽ assertion khi di chuyển.

Bước 8: Thiết lập môi trường & biến

Mapping Environment của ReadyAPI sang Apidog:

  1. Tạo môi trường tương ứng trong Apidog (Settings > Environments).
  2. Thêm biến: base URL, token, headers, v.v.
  3. Kiểm tra tham chiếu biến với cú pháp {{variableName}} trong URL/request body.

Bước 9: Cấu hình CI/CD

ReadyAPI dùng lệnh testrunner, Apidog dùng CLI.

Cài đặt Apidog CLI:

npm install -g apidog-cli
Enter fullscreen mode Exit fullscreen mode

Chạy bộ kiểm thử:

apidog run "path/to/collection.json" -e "environment-id"
Enter fullscreen mode Exit fullscreen mode

GitHub Actions:

- name: Run API tests
  run: apidog run collection.json --environment staging
Enter fullscreen mode Exit fullscreen mode

Jenkins: Thêm bước shell gọi Apidog CLI vào pipeline.

Cập nhật cấu hình CI để dùng lệnh mới, loại bỏ testrunner sau khi Apidog chạy ổn định.

Bước 10: Chạy song song hai công cụ trong giai đoạn chuyển đổi

Không nên chuyển hoàn toàn trong một ngày. Nên chạy song song ít nhất một chu kỳ phát hành:

  • Chạy ReadyAPI trong CI như nguồn kiểm thử chính.
  • Chạy Apidog song song, so sánh kết quả.
  • Kiểm tra lỗi lệch giữa hai công cụ.
  • Thêm testcase mới vào Apidog.
  • Khi Apidog đạt độ tin cậy, loại ReadyAPI khỏi CI, giữ cài đặt dự phòng vài tháng.

Câu hỏi thường gặp

Di chuyển từ ReadyAPI sang Apidog mất bao lâu?

Dự án chỉ REST, ít Groovy: 1-3 ngày. Dự án lớn, nhiều Groovy, SOAP, cấu trúc phức tạp: 2-6 tuần. Kiểm toán ở Bước 1 giúp ước tính sát thực tế.

Tệp dữ liệu kiểm thử ReadyAPI dùng được không?

CSV dùng trực tiếp với Apidog. Excel phải chuyển sang CSV. XML cần cấu trúc lại tùy mục đích sử dụng.

Có thể chạy ReadyAPI và Apidog cùng pipeline CI không?

Có. Nên thêm bước Apidog CLI vào pipeline hiện tại song song với testrunner, so sánh kết quả.

Môi trường có nhập tự động sang Apidog không?

Không. Phải tạo lại thủ công trong Apidog. Nên mở song song để đối chiếu.

Testcase ReadyAPI không có REST tương đương thì sao?

Với testcase SOAP không có REST, có thể giữ ReadyAPI (ít license), chuyển sang SoapUI Open Source, hoặc chấp nhận khoảng trống kiểm thử nếu dịch vụ cũ/ít rủi ro.

Apidog có hỗ trợ assertion như ReadyAPI không?

Apidog hỗ trợ assertion JavaScript tương đương logic với ReadyAPI cho REST. Một số assertion đặc thù SOAP/WS-Security không có tương đương.


Di chuyển từ ReadyAPI sang Apidog là dự án cần lên kế hoạch rõ ràng. Kiểm toán kỹ, ưu tiên REST, chuyển đổi dần và chạy song song sẽ giúp bạn chuyển đổi không bị gián đoạn kiểm thử hoặc mất coverage.

Top comments (0)