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ô.
Điều kiện tiên quyết
Section titled “Điều kiện tiên quyết”- 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ó.)
Nguyên tắc
Section titled “Nguyên tắc”RESTORM_TOKEN=$RESTORM_TOKEN restorm \ --open ./api.restorm \ --run "Tests de fumée" \ --headless \ --all-logs \ --out run.log \ --param baseUrl=$BASE_URLMã 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.
Cần có một màn hình ảo
Section titled “Cần có một màn hình ảo”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.
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headlessCác bí mật
Section titled “Các bí mật”Đừ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 }}Tham số hóa theo môi trường
Section titled “Tham số hóa theo môi trường”Hai cách tiếp cận bổ sung cho nhau:
- 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. - 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.
Công bố nhật ký
Section titled “Công bố nhật ký”--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.logViết kịch bản dễ đọc trong CI
Section titled “Viết kịch bản dễ đọc trong CI”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
messagecủ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
errorscủ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
elsethen 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.
Dọn dẹp
Section titled “Dọn dẹp”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.
Những cái bẫy cần biết
Section titled “Những cái bẫy cần biết”| Cái bẫy | Cách xử lý |
|---|---|
| Job đang chờ nhập liệu | Hã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ã 3 | Vấ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 |
Ví dụ đầy đủ
Section titled “Ví dụ đầy đủ”Các pipeline GitHub Actions và GitLab CI nằm trong Chạy headless và CI.