Bỏ qua để đến nội dung

Tự động hóa kiểm thử API trong tích hợp liên tục

Một kịch bản dựng trong giao diện sẽ chạy nguyên vẹn trong pipeline của bạn. Hướng dẫn này nói về việc mở rộng quy mô.

  • Một gói Pro hoặc Enterprise.
  • Một token của tổ chức (rstk_…) để đặt vào kho bí mật của hệ thống CI của bạn. (Việc tự tạo token này từ bảng điều khiển sẽ sớm có.)
Terminal window
RESTORM_TOKEN=$RESTORM_TOKEN restorm \
--open ./api.restorm \
--run "Tests de fumée" \
--headless \
--all-logs \
--out run.log \
--param baseUrl=$BASE_URL

Mã thoát 0 = thành công, 1 = kịch bản thất bại, 2 = lỗi gọi lệnh, 3 = quyền bị từ chối.

Restorm là một ứng dụng máy tính để bàn: ngay cả khi không có cửa sổ, nó vẫn cần một máy chủ hiển thị. Trên một runner Linux, hãy thêm tiền tố xvfb-run -a.

Terminal window
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headless

Đừng bao giờ viết một bí mật vào dự án. Hãy khai báo các biến nhạy cảm của bạn với nguồn bí mật biến môi trường; kho khóa của hệ thống CI sẽ chèn chúng vào, còn Restorm chỉ đọc chúng. Xem Bí mật.

env:
API_TOKEN: ${{ secrets.API_TOKEN }}

Hai cách tiếp cận bổ sung cho nhau:

  1. Một tham số kịch bản kiểu environment: --param Env=staging. Cùng một kịch bản chạy được với bất kỳ đích nào.
  2. Các tham số đơn giản: --param baseUrl=…, --param tenant=….

Việc chuyển đổi tuân theo kiểu đã khai báo của tham số, và một phép chuyển đổi không thực hiện được sẽ làm lần khởi chạy thất bại ngay lập tức thay vì chạy với một giá trị sai. Xem Biến và dữ liệu.

--out run.log ghi nhật ký theo thời gian thực. Hãy công bố nó thành một artefact, kể cả khi job thất bại — vì đó chính là lúc nó có ích.

- uses: actions/upload-artifact@v4
if: always()
with:
name: journal-restorm
path: run.log

Vài thói quen làm thay đổi tất cả khi một job đỏ xuất hiện lúc 3 giờ sáng:

  • Thông điệp khẳng định rõ ràng. Trường message của hành động Khẳng định chính là thứ sẽ xuất hiện trong nhật ký: hãy viết vào đó điều mà bạn mong đợi.
  • Ghi nhật ký ở những bước then chốt. Nếu không có --all-logs, chỉ các mục của hành động Log mới được phát ra: đó là mạch kể chuyện của bạn.
  • Kiểm tra schema thay vì khẳng định từng trường một. Hãy đấu đầu ra errors của Schema validate vào một Log: bạn sẽ có danh sách chính xác các vi phạm.
  • Throw trên những đầu ra else then chốt, để mã thoát phản ánh đúng lần thất bại.
  • Retry bao quanh những lời gọi mạng không ổn định, thay vì chấp nhận các bài kiểm thử chập chờn. Xem Điều khiển.

Hãy nối phần dọn dẹp vào cổng done của kịch bản chính: done chờ cho tới khi toàn bộ đồ thị con kết thúc. Xem Cổng và liên kết.

Cái bẫyCách xử lý
Job đang chờ nhập liệuHãy cung cấp tất cả tham số bằng --param; ở chế độ headless, không thể hỏi gì cả
Một hành động Toast không hiện raĐó là bình thường: nó không có tác dụng ở chế độ headless. Hãy dùng Log
Máy chủ MCP không xuất hiệnĐó là chủ ý: không có màn hình thật thì nó không bao giờ khởi động
Thoát với mã 3Vấn đề ở token hoặc ở gói dịch vụ — thông báo sẽ nói rõ rơi vào trường hợp nào trong bốn
Tệp dự án đã bị chuyển đi--open chấp nhận một đường dẫn tương đối với kho mã: hãy giữ nó ở dạng tương đối

Các pipeline GitHub Actions và GitLab CI nằm trong Chạy headless và CI.