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

Các tính năng run trên Station

Trang này hướng dẫn cách chọn run option, đọc một run dùng nhiều browser, hiểu time limit và refresh danh sách test trên Station.

Tester (QA Engineer trở lên) bắt đầu run trên Station. Một phần ngắn ở cuối trang dành cho người viết workload.

  • Station là app trên máy Windows của bạn, dùng để chạy test. Bạn mở nó trong browser. Console là web app chứa các project, kết quả và report.
  • Bạn phải đăng nhập Station bằng một account có role QA Engineer (hoặc cao hơn) trong project. Role Viewer chỉ xem được, không chạy được.
  • Một workload là một test repo. Một suite là một thư mục chứa test bên trong repo đó. Profile là một bộ giá trị mặc định có tên cho run (ví dụ smoke), được định nghĩa trong repo.

Run option xuất hiện ở ba nơi: trang Explorer (nơi bạn tick chọn test), trang Run và dialog Re-run…. Trên trang Run, các field nằm ngay trên trang. Trong Explorer và dialog Re-run, chúng nằm trong khung Run options, mặc định đóng: dòng dưới tiêu đề khung tóm tắt các option, ví dụ “smoke · 2 workers · headed”. Chọn dòng đó để mở khung.

Field Tác dụng
Workers Số browser mà run được mở cùng lúc. Mỗi suite có nhóm worker riêng. Các test có lock tag trong cùng một suite luôn chạy lần lượt từng test.
Retries Số lần một test fail được chạy lại (từ 0 đến 5).
Time limit Auto (Station tự tính) hoặc Fixed tính bằng phút (từ 1 đến 720).
Browser Visible mở cửa sổ browser trên máy này để bạn theo dõi. Khi chọn Hidden, browser không chiếm màn hình của bạn. Option này không làm thay đổi kết quả.

Mỗi field lấy giá trị ban đầu từ profile và ghi rõ điều đó (“from smoke”). Khi bạn đổi một field, field đó hiển thị changed kèm link reset để trả về giá trị của profile. Tiêu đề khung cũng hiển thị nhãn changed, và một dòng ở cuối liệt kê các thay đổi (“1 change from smoke. Changed runs are out of the quality gates and metrics.”) kèm nút Reset all.

Số worker còn bị giới hạn bởi Station. Xem Settings, Runs, Workers on this Station; giá trị này dùng chung cho mọi run trên Station này. Nếu run của bạn yêu cầu nhiều hơn, field sẽ báo “capped at N by this Station”.

Nếu bạn đổi Workers, Retries hoặc Time limit, run được đánh dấu Overridden trong Console (“Overridden: … (excluded from quality gates)” trên trang của run). Run Overridden không được tính vào quality gate, readiness của release và các trend metric, vì số liệu của chúng không so được với run bình thường. Chúng vẫn xuất hiện trong danh sách run, kèm tên những gì bạn đã đổi.

  • Browser (Visible hoặc Hidden) không làm run bị Overridden.
  • Time limit Auto không làm run bị Overridden. Time limit Fixed thì có.
  • Override các variable thông thường cho một run (trên trang Run) cũng đánh dấu run là Overridden.

Nếu run cần được tính (ví dụ cho một release), hãy giữ các option theo giá trị của profile.

Khi một run gồm nhiều suite, màn hình live hiển thị thêm:

  • Dải ô vuông có một ô nhấp nháy cho mỗi test đang chạy.
  • Running now liệt kê từng test đang chạy với ID, tiêu đề ngắn, suite và thời gian đã chạy (ví dụ MM-AR-013 · Rule toggle… · 02:41).
  • Suites có một dòng cho mỗi suite: tiến độ (số đã xong trên tổng số), số test fail, trạng thái, số worker đang dùng và link Report.

Trạng thái của một suite là một trong các giá trị sau:

Trạng thái Ý nghĩa
Waiting for a free worker Mọi worker của Station đều đang bận. Suite sẽ bắt đầu khi có một worker rảnh.
Waiting for lease … Một run khác đang giữ lock mà suite này cần. Suite sẽ bắt đầu khi run kia kết thúc.
Running Các test đang chạy.
Done Mọi test của suite đã xong.
Stopped Run kết thúc trước khi mọi test của suite xong.
Did not start Run kết thúc khi suite vẫn còn đang chờ.

Log hiển thị một dòng cho mỗi event, kèm tên suite trong ngoặc vuông. Khi có nhiều suite, hãy filter log bằng các nút suite phía trên nó (All hoặc một suite).

Report: mỗi suite có report riêng. Trong màn hình live và trang History, dùng Open report: cho từng suite. Run chỉ có một suite thì có một nút Open report duy nhất. Run có nhiều suite không upload report lên Console; các report nằm lại trên Station này.

Mọi run đều dừng ở một time limit, để một run bị treo không giữ lock mãi mãi.

  • Cách tính. Với mỗi test, Station xem thời gian test đó đã chạy trong 10 run gần nhất trên Station này. Station cộng thêm thời gian retry, phân bổ các suite lên các worker có sẵn và ra một con số ước tính. Time limit bằng con số ước tính cộng thêm một nửa, nhưng không bao giờ thấp hơn time limit của chính profile, và không bao giờ quá 720 phút (12 giờ). Khi chưa có history, Station giả định mỗi test mất 2 phút.
  • Trước khi chạy, trang Run hiển thị, ví dụ, “Estimated 38 min, limit 57 min”, và field Time limit giải thích giá trị Auto của nó. Nếu bạn chọn Fixed thấp hơn con số ước tính, bạn sẽ thấy “The limit is below the estimate”. Bạn vẫn có thể bắt đầu run.
  • Chỉ tính thời gian làm việc. Đồng hồ tạm dừng khi run chỉ đang chờ lock hoặc chờ một worker rảnh.
  • Ở mức 80 %, màn hình live hiển thị “Most of the time limit is used”. Run vẫn tiếp tục.
  • Khi chạm time limit, Station dừng run. Run kết thúc với lý do run-timeout.

Các test bị cắt ngang, hoặc chưa bao giờ bắt đầu, được ghi nhận là chưa xong (trạng thái Not run). Chúng không phải failure và không bị tính vào quality gate. Số test đã xong cộng số test Not run luôn bằng số test bạn đã chọn. Điều này cũng áp dụng khi bạn cancel một run: các test đang chạy được ghi nhận là chưa xong.

  1. Xem thông báo “N of M tests did not finish”. Thông báo này cho biết run đã dừng vì chạm time limit.
  2. Chạy lại các test còn thiếu: tick chọn chúng trong Explorer, hoặc dùng Re-run… trên run.
  3. Nếu việc này xảy ra thường xuyên, hãy chọn Fixed với time limit dài hơn (run sẽ bị đánh dấu Overridden), hoặc đề nghị tăng timeoutMinutes trong profile.
  4. Nếu một test bị treo, hãy xem log của nó trước. Time limit dài hơn không sửa được lỗi treo.

Explorer liệt kê các test theo danh sách gần nhất mà Station này đã tạo. Station chạy đúng commit đó, nên các test bạn tick chính là các test sẽ chạy. Danh sách chỉ được cập nhật khi một run đang chuẩn bị, nên có thể cũ hơn repo.

Để cập nhật danh sách:

  1. Mở Explorer và chọn workload.
  2. Chọn Refresh from main. Nút sẽ cho thấy đang xử lý; bạn vẫn dùng trang bình thường.
  3. Một thông báo cho biết kết quả:
    • “Tests updated: N tests, now at abc1234”: danh sách đã mới.
    • “Already up to date (abc1234)”: không cần làm gì.
    • “Offline: no newer commit could be fetched (using abc1234)”: bạn đang offline, nên danh sách không đổi.
  4. Dòng phía trên danh sách hiển thị commit và thời điểm tạo danh sách.

Nên biết:

  • Các test đã tick mà vẫn còn tồn tại thì vẫn được tick. Các test đã biến mất được liệt kê là không còn trong catalog.
  • Refresh không bắt đầu run, không chiếm chỗ trong queue và không có run number.
  • Console biết về danh sách mới ở run kế tiếp của bạn.
  • Lần đầu có thể mất vài phút, vì có thể cần cài các dependency của test. Refresh dừng sau 10 phút.
  • Hãy refresh khi bạn biết repo đã thay đổi, ví dụ sau khi đồng nghiệp merge test mới hoặc thay đổi manifest, và trước khi bạn bắt đầu một run phụ thuộc vào các thay đổi đó.

Nếu refresh fail, Explorer hiển thị “The test list could not be refreshed” kèm lý do. Các lỗi bạn có thể gặp: refresh-running (đang có một lần refresh workload này: hãy chờ), catalog-refresh-failed (đọc lý do; thường là Playwright config cần một variable chưa được đặt) và catalog-refresh-timeout (thử lại; check mạng).

Khi account của bạn hết hạn, bạn có 3 ngày chỉ được xem. Trong Explorer, danh sách environment hiển thị “view only” và trang báo “Your account has expired. An expired account can only view. Ask an admin to extend it, then refresh the configuration.” Mục Settings, Account hiển thị “Expired; view only until …”. Sau 3 ngày, account không làm được gì nữa. Hãy nhờ Project Admin hoặc System Admin gia hạn (xem User và role).

Một lock tag, ví dụ @mutates-config, đánh dấu các test thay đổi config dùng chung trong hệ thống đang được test. Trong orbit.workload.yaml:

locks:
- { tag: "@mutates-config", scope: suite }
  • scope: environment (quy tắc ban đầu): khi một run đang giữ lock, không run nào khác trên environment đó được chạy các test này.
  • scope: suite: lock chỉ ngăn các run dùng cùng một suite chạy cùng lúc. Hai suite khác nhau có thể chạy cùng lúc.
  • Một suite là thư mục đầu tiên nằm dưới suites/ có chứa file test, ví dụ suites/AUTO_MM01_ASSIGNMENT_RULE. Repo không có suites/ thì dùng thư mục cấp cao nhất của file.
  • Bên trong một suite có test mang lock tag, các test luôn chạy lần lượt từng test.
  • Khi Station liệt kê test, nó load Playwright config của bạn chỉ với các variable thông thường. Đừng bao giờ đọc secret trong lúc config đang load.

Các Station hiện tại và manifest checker đều hiểu scope: suite. Nếu một Station hoặc checker rất cũ từ chối nó, hãy nhờ người vận hành bản cài Orbit của bạn update chúng.

Bạn thấy Cách xử lý
“You cannot run on this workload” Bạn chỉ có quyền xem. Nhờ Project Admin cấp role QA Engineer.
“Your account has expired” Xem phần Account hết hạn ở trên.
Run kết thúc với run-timeout Xem “Cần làm gì khi run bị cắt ngang”.
Một suite báo “Waiting for lease …” rất lâu Một run khác đang giữ lock. Mở Live hoặc History để xem run đó, hoặc chờ.
Explorer liệt kê test cũ Chọn Refresh from main.
“Offline: no newer commit could be fetched” Kết nối mạng rồi refresh lại.
Run bị đánh dấu Overridden dù bạn không muốn Bạn đã đổi số worker, số retry, time limit hoặc một variable. Hãy chạy lại với các giá trị của profile (Reset all).