runFlow
Chạy một file flow con, có thể kèm biến môi trường.
Command runFlow chạy một chuỗi command từ file flow khác hoặc từ định nghĩa inline. Command này giúp bạn chia nhỏ test và tái sử dụng các chuỗi step chung, như quy trình đăng nhập. Subflow inline (dùng tham số commands) đặc biệt hữu ích cho logic có điều kiện hoặc để gom vài step dưới một label rõ ràng.
Tham số
Command runFlow nhận các tham số sau.
| Parameter | Type | Mô tả |
|---|---|---|
file | string | Đường dẫn tương đối tới file flow cần chạy. |
label | string | Mô tả ngắn subflow làm gì. Hiển thị trong báo cáo, giúp dễ đọc và bảo trì. |
env | map | Map các cặp key-value truyền cho subflow dưới dạng biến môi trường. |
commands | list | Danh sách command chạy inline. Dùng thay cho tham số file với các flow khép kín. |
Ví dụ sử dụng
Các ví dụ sau minh họa cách dùng command runFlow.
Chạy một file flow riêng
Để tái sử dụng một chuỗi step chung, định nghĩa chúng trong file riêng và gọi bằng runFlow. Ví dụ, bạn có thể định nghĩa quy trình đăng nhập một lần và dùng lại trong nhiều test. Flow Login dưới đây được định nghĩa trong một file và dùng lại trong hai flow khác (Profile và Settings).
Login.yaml
appId: com.example.app
---
- launchApp
- tapOn: Username
- inputText: Test User
- tapOn: Password
- inputText: Test Password
- tapOn: LoginProfile.yaml
appId: com.example.app
---
- runFlow: Login.yaml # <-- Chạy các command từ "Login.yaml"
- tapOn: Profile
- assertVisible: "Name: Test User"Settings.yaml
appId: com.example.app
---
- runFlow: Login.yaml # <-- Chạy các command từ "Login.yaml"
- tapOn: Settings
- assertVisible: "Switch to dark mode"Mẹo
File flow là cách rất tốt để trừu tượng hóa các step hoặc tạo component tái sử dụng. Hãy giữ test dễ theo dõi để dễ bảo trì.
Truyền biến môi trường cho subflow
Bạn có thể truyền biến cho subflow bằng tham số env. Các biến này dùng được bên trong subflow.
- runFlow:
file: anotherFlow.yaml
env:
MY_PARAMETER: "123"Khi nào dùng subflow inline
Subflow inline phù hợp với logic có điều kiện hoặc các nhóm step nhỏ không cần file riêng. Dùng label để step có mục đích rõ ràng; nếu không, liệt kê trực tiếp các command sẽ đơn giản hơn.
Chạy một flow inline
Để định nghĩa subflow ngay tại chỗ, dùng tham số commands thay cho file. label đặt tên rõ ràng cho step để bạn nhìn qua biết nó làm gì. Ví dụ:
- runFlow:
label: Sort alphabetically
commands:
- tapOn:
id: sort_icon
- tapOn: algorithm
- tapOn: A-Z
- tapOn: ApplyBạn cũng có thể truyền biến môi trường vào subflow inline:
- runFlow:
env:
INNER_ENV: Inner Parameter
commands:
- inputText: ${INNER_ENV}Nội dung liên quan
Tìm hiểu cách định nghĩa tham số và đặt biến môi trường trong flow ở các trang Parameters and constants.
