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.
Giới thiệu
Di chuyển cơ sở hạ tầng kiểm thử API là một trong những công việc nghe có vẻ đơn giản cho đến khi bạn bắt đầu. Các dự án ReadyAPI có thể chứa hàng năm tích lũy các trường hợp kiểm thử, kịch bản 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 tất cả những thứ đó vào Apidog đòi hỏi phải hiểu những gì tự động chuyển đổi, những gì cần chuyển đổi thủ công và những gì bạn có thể quyết định bỏ lại phía sau.
Hướng dẫn này sẽ chỉ dẫn bạn qua quy trình di chuyển từng bước. Nó bao gồm việc xuất dự án ReadyAPI của bạn, phân tích những gì bạn có, nhập vào Apidog, xử lý việc chuyển đổi từ Groovy sang JavaScript, thiết lập CI/CD và quản lý giai đoạn chuyển đổi khi cả hai công cụ chạy song song.
Bước 1: Kiểm toán dự án ReadyAPI của bạn trước khi bắt đầu
Trước khi xuất bất cứ thứ gì, hãy dành thời gian để hiểu những gì có trong dự án ReadyAPI hiện tại của bạn. Việc kiểm toán này sẽ định hình thời gian di chuyển và nơi bạn tập trung nỗ lực.
Mở dự án ReadyAPI của bạn và trả lời các câu hỏi sau:
Bạn có bao nhiêu bộ kiểm thử, trường hợp kiểm thử và bước kiểm thử? Mở bảng Navigator và đếm. Một dự án với 50 trường hợp kiểm thử sẽ di chuyển trong vài giờ. Một dự án với 500 trường hợp sẽ mất vài ngày.
Tỷ lệ các trường hợp kiểm thử REST so với SOAP là bao nhiêu? Các trường hợp kiểm thử REST di chuyển sạch hơn nhiều. Các trường hợp kiểm thử SOAP yêu cầu nhiều công việc thủ công hơn, đặc biệt nếu chúng sử dụng chính sách WS-Security hoặc các khẳng định phức tạp.
Có bao nhiêu kịch bản Groovy trong các trường hợp kiểm thử của bạn? Nhấp qua các trường hợp kiểm thử của bạn và tìm các bước Script. Đếm xem có bao nhiêu trường hợp kiểm thử có logic Groovy tùy chỉnh. Mỗi kịch bản Groovy yêu cầu chuyển đổi thủ công sang JavaScript.
Bạn có đang sử dụng các kiểm thử dựa trên dữ liệu với các bước DataSource không? Apidog hỗ trợ kiểm thử dựa trên dữ liệu với các tệp dữ liệu CSV và JSON, nhưng cách thiết lập khác với mẫu DataSource/DataSink của ReadyAPI.
Bạn có sử dụng nhiều bước Properties hoặc Property Transfer không? Các mẫu này hoạt động khác nhau trong Apidog. Thay vào đó, bạn sẽ sử dụng các biến và biến môi trường.
Bạn có đang chạy kiểm thử tải thông qua LoadUI Pro không? Tích hợp LoadUI Pro không được chuyển sang Apidog. Bạn sẽ cần thiết lập k6 hoặc một công cụ kiểm thử tải khác một cách riêng biệt cho các kịch bản đó.
Ghi lại những phát hiện của bạn. Một bảng tính với tên trường hợp kiểm thử, loại (REST/SOAP), có-Groovy (có/không), và độ phức tạp (đơn giản/trung bình/phức tạp) sẽ cung cấp cho bạn ước tính di chuyển trước khi bạn bắt đầu.
Bước 2: Xuất dự án ReadyAPI của bạn
ReadyAPI lưu trữ các dự án dưới dạng tệp XML. Để xuất một dự án để phân tích:
- Mở ReadyAPI và mở dự án của bạn.
- Đi tới File > Save As để lưu dự án dưới dạng tệp XML độc lập.
- Lưu bất kỳ tệp dữ liệu bên ngoài nào (CSV, Excel, dữ liệu kiểm thử XML) mà các kiểm thử của bạn tham chiếu.
- Ghi lại mọi cấu hình môi trường bạn đã thiết lập trong phần Environments.
XML dự án chứa tất cả các bộ kiểm thử, trường hợp kiểm thử, bước kiểm thử, kịch bản và cấu hình. Đó là một đại diện hoàn chỉnh cho dự án kiểm thử của bạn.
Bước 3: Trích xuất định nghĩa API của bạn
Đường dẫn di chuyển sạch nhất cho các API REST là thông qua một đặc tả OpenAPI, không phải trực tiếp từ XML dự án ReadyAPI.
Tùy chọn A: Xuất từ ReadyAPI. Nếu bạn có một dịch vụ REST trong ReadyAPI, hãy nhấp chuột phải vào nó trong Navigator và tìm tùy chọn xuất hoặc tạo định nghĩa API. ReadyAPI có thể xuất các đặc tả Swagger/OpenAPI từ các định nghĩa dịch vụ.
Tùy chọn B: Sử dụng đặc tả OpenAPI của backend của bạn. Nếu dịch vụ backend của bạn đã cung cấp một đặc tả OpenAPI (tại /openapi.json hoặc tương tự), hãy tải xuống trực tiếp. Điều này cung cấp cho bạn định nghĩa chính xác và cập nhật nhất.
Tùy chọn C: Trích xuất thủ công. Đối với các API không có đặc tả hiện có, hãy sử dụng các yêu cầu REST ReadyAPI của bạn làm nguồn. Ghi lại các điểm cuối, nội dung yêu cầu, tiêu đề và cấu trúc phản hồi. Bạn sẽ tạo lại chúng trong Apidog.
Bước 4: Nhập vào Apidog
Với đặc tả OpenAPI của bạn đã sẵn sàng, hãy nhập nó vào Apidog.
- Mở Apidog và tạo một dự án mới.
- Đi tới APIs > Import và chọn định dạng của bạn (OpenAPI 3.0, Swagger 2.0, v.v.).
- Tải lên tệp đặc tả hoặc dán URL.
- Apidog phân tích đặc tả và tạo định nghĩa API cho tất cả các điểm cuối.
Sau khi nhập, bạn sẽ có một định nghĩa API có cấu trúc với tất cả các điểm cuối, tham số, nội dung yêu cầu và sơ đồ phản hồi được điền sẵn. Đây là nền tảng cho các trường hợp kiểm thử của bạn.
Nếu bạn có các bộ sưu tập Postman hiện có (có thể được di chuyển từ một công cụ trước đó), Apidog cũng nhập chúng thông qua File > Import > Postman.
Bước 5: Tạo lại các trường hợp kiểm thử cho các điểm cuối REST
Đối với các trường hợp kiểm thử REST, quy trình di chuyển là:
- Mở một trường hợp kiểm thử REST của ReadyAPI.
- Xác định các yêu cầu, các khẳng định và bất kỳ nguồn dữ liệu nào mà nó sử dụng.
- Tạo một trường hợp kiểm thử tương ứng trong Apidog bằng cách chọn điểm cuối API và thêm các bước kiểm thử.
Các khẳng định được chuyển đổi như sau:
- Khẳng định Contains (nội dung chứa chuỗi) trở thành một khẳng định JavaScript:
pm.test('contains value', () => { pm.expect(pm.response.text()).to.include('expected string'); }); - Khẳng định mã trạng thái:
pm.test('status 200', () => { pm.response.to.have.status(200); }); - Khẳng định JSONPath:
pm.test('field value', () => { pm.expect(pm.response.json().fieldName).to.equal('expected'); });
Đối với các kiểm thử GET và POST đơn giản mà không có Groovy, quá trình di chuyển này diễn ra nhanh chóng. Một trường hợp kiểm thử đơn giản với 5 đến 10 khẳng định có thể được tạo lại trong 15 đến 30 phút.
Bước 6: Chuyển đổi các script Groovy sang JavaScript
Đây là phần tốn nhiều công sức nhất trong quá trình di chuyển đối với các dự án có nhiều script tùy chỉnh đáng kể.
Các mẫu Groovy phổ biến và các tương đương JavaScript của chúng:
Đọc một giá trị phản hồi:
// Groovy (ReadyAPI)
def response = context.expand('${TestStep#Response}')
def json = new groovy.json.JsonSlurper().parseText(response)
def value = json.fieldName
// JavaScript (Apidog)
const response = pm.response.json();
const value = response.fieldName;
Đặt một biến:
// Groovy
testRunner.testCase.setPropertyValue('myVariable', someValue)
// JavaScript
pm.variables.set('myVariable', someValue);
Các khẳng định có điều kiện:
// Groovy
if (statusCode == 200) {
assert responseBody.contains("success")
}
// JavaScript
if (pm.response.code === 200) {
pm.test('response contains success', () => {
pm.expect(pm.response.text()).to.include('success');
});
}
Thao tác ngày:
// Groovy
def now = new Date()
def formatted = now.format('yyyy-MM-dd')
// JavaScript
const now = new Date();
const formatted = now.toISOString().split('T')[0];
Đối với các script Groovy phức tạp với các import thư viện Java hoặc logic phức tạp, việc chuyển đổi đòi hỏi phân tích cẩn thận. Đọc từng script, hiểu nó đang làm gì và viết JavaScript tương đương. Đừng cố gắng dịch tự động — ngữ nghĩa đủ gần để đánh lừa bạn nhưng đủ khác biệt để gây ra lỗi thầm lặng.
Bước 7: Xử lý các trường hợp kiểm thử SOAP
Các trường hợp kiểm thử SOAP là phần thách thức nhất trong bất kỳ quá trình di chuyển ReadyAPI nào. Apidog không có công cụ SOAP chuyên dụng, vì vậy chúng yêu cầu một cách tiếp cận khác.
Đối với các dịch vụ SOAP cũng cung cấp giao diện REST (ngày càng phổ biến), hãy di chuyển các kiểm thử để sử dụng các điểm cuối REST và loại bỏ lớp SOAP.
Đối với các dịch vụ SOAP không có lựa chọn thay thế REST, bạn có hai lựa chọn:
Giữ ReadyAPI chỉ cho SOAP. Chạy ReadyAPI song song cho các trường hợp kiểm thử SOAP và sử dụng Apidog cho REST. Đây là một giải pháp trung gian thực tế giúp duy trì phạm vi kiểm thử SOAP mà không cản trở quá trình di chuyển REST.
Sử dụng SoapUI Open Source. SoapUI Open Source là miễn phí và xử lý kiểm thử SOAP. Nó không thể thay thế tất cả các tính năng của ReadyAPI, nhưng nó bao gồm kiểm thử chức năng SOAP cơ bản mà không tốn phí cấp phép.
Đừng vội vàng di chuyển SOAP. Các trường hợp kiểm thử WS-Security đặc biệt mang rủi ro đáng kể nếu các khẳng định của chúng không được tái tạo cẩn thận.
Bước 8: Thiết lập môi trường và biến
Tính năng Environment của ReadyAPI ánh xạ tới hệ thống Environment của Apidog. Đối với mỗi môi trường ReadyAPI bạn đã cấu hình:
- Tạo một môi trường tương ứng trong Apidog (Settings > Environments).
- Thêm các biến tương tự: URL cơ sở, mã thông báo xác thực, tiêu đề được chia sẻ, v.v.
- Xác minh rằng các trường hợp kiểm thử tham chiếu các biến với cú pháp Apidog chính xác:
{{variableName}}trong các trường URL và nội dung yêu cầu.
Bước 9: Cấu hình CI/CD
Thiết lập CI của ReadyAPI thường liên quan đến lệnh testrunner trên các tác nhân xây dựng. Apidog sử dụng một cách tiếp cận khác.
Cài đặt Apidog CLI trên tác nhân CI của bạn:
npm install -g apidog-cli
Chạy một bộ sưu tập kiểm thử:
apidog run "path/to/collection.json" -e "environment-id"
Đối với GitHub Actions, một bước trong quy trình làm việc có thể trông như sau:
- name: Run API tests
run: apidog run collection.json --environment staging
Đối với Jenkins, hãy thêm một bước shell vào pipeline của bạn để gọi Apidog CLI. Không yêu cầu cài đặt ReadyAPI trên tác nhân xây dựng.
Cập nhật các tệp cấu hình CI của bạn để sử dụng lệnh mới. Xóa các tham chiếu testrunner của ReadyAPI sau khi các lần chạy Apidog xác thực chính xác.
Bước 10: Chạy cả hai công cụ song song trong quá trình chuyển đổi
Đừng chuyển đổi từ ReadyAPI sang Apidog trong một ngày. Hãy chạy cả hai công cụ song song trong ít nhất một chu kỳ phát hành.
Trong giai đoạn song song:
- Chạy các kiểm thử ReadyAPI trong CI làm cổng kiểm thử có thẩm quyền.
- Chạy các kiểm thử Apidog song song và so sánh kết quả.
- Điều tra bất kỳ lỗi nào trong Apidog mà không xuất hiện trong ReadyAPI.
- Dần dần chỉ thêm các trường hợp kiểm thử mới vào Apidog.
Khi bạn tin rằng Apidog bắt được các lỗi tương tự mà ReadyAPI làm, hãy loại bỏ ReadyAPI khỏi pipeline CI. Giữ lại cài đặt ReadyAPI trong vài tháng như một phương án dự phòng.
Câu hỏi thường gặp
Quá trình di chuyển từ ReadyAPI sang Apidog thường mất bao lâu?Một dự án chỉ REST với kịch bản Groovy tối thiểu có thể di chuyển trong một đến ba ngày. Một dự án lớn với các kịch bản Groovy mở rộng, các trường hợp kiểm thử SOAP và cấu trúc kiểm thử phức tạp có thể mất từ hai đến sáu tuần. Việc kiểm toán trong Bước 1 sẽ cung cấp cho bạn ước tính rõ ràng nhất trước khi bạn cam kết.
Các tệp dữ liệu kiểm thử ReadyAPI của tôi có hoạt động trong Apidog không?Các tệp dữ liệu CSV hoạt động với tính năng kiểm thử dựa trên dữ liệu của Apidog. Định dạng nhập tương tự. Các tệp Excel yêu cầu chuyển đổi sang CSV trước tiên. Các tệp dữ liệu XML cần được cấu trúc lại tùy thuộc vào cách chúng được sử dụng trong ReadyAPI.
Tôi có thể chạy ReadyAPI và Apidog trong cùng một pipeline CI trong quá trình di chuyển không?Có, và đây là cách tiếp cận được khuyến nghị. Thêm bước Apidog CLI vào pipeline hiện có của bạn cùng với bước testrunner của ReadyAPI. So sánh kết quả từng lần chạy trong giai đoạn chuyển đổi.
Tôi có cần tạo lại môi trường thủ công hay có cách tự động nào không?Cấu hình môi trường phải được tạo lại thủ công trong Apidog. Không có tính năng nhập tự động các cài đặt môi trường của ReadyAPI. Giữ các môi trường ReadyAPI của bạn mở trong một cửa sổ trong khi tạo lại chúng trong Apidog.
Điều gì xảy ra với các kiểm thử ReadyAPI không có tương đương REST?Đối với các trường hợp kiểm thử chỉ SOAP không có lựa chọn thay thế REST, các tùy chọn thực tế là duy trì ReadyAPI (có thể với ít giấy phép hơn) cho các kiểm thử cụ thể đó, di chuyển sang SoapUI Open Source, hoặc chấp nhận một khoảng trống kiểm thử nếu các dịch vụ là cũ và ít rủi ro.
Apidog có hỗ trợ các loại khẳng định giống như ReadyAPI không?Apidog hỗ trợ các khẳng định JavaScript có thể biểu thị các điều kiện logic tương tự như các loại khẳng định tích hợp của ReadyAPI. Cú pháp khác nhưng khả năng tương đương cho kiểm thử REST. Một số loại khẳng định cụ thể của ReadyAPI (SOAP Fault, WS-Security) không có tương đương trong Apidog.
Di chuyển từ ReadyAPI sang Apidog là một dự án có ý nghĩa, không phải là một công việc trong một buổi chiều. Các nhóm lập kế hoạch cẩn thận, bắt đầu với một cuộc kiểm toán rõ ràng, di chuyển các trường hợp kiểm thử REST trước và chạy cả hai công cụ song song trong quá trình chuyển đổi sẽ hoàn thành nó mà không có khoảng trống về phạm vi hoặc hồi quy kiểm thử.
