Bỏ qua, đến nội dung

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.

ParameterTypeMô tả
filestringĐường dẫn tương đối tới file flow cần chạy.
labelstringMô tả ngắn subflow làm gì. Hiển thị trong báo cáo, giúp dễ đọc và bảo trì.
envmapMap các cặp key-value truyền cho subflow dưới dạng biến môi trường.
commandslistDanh 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 ​

yaml
appId: com.example.app
---
- launchApp
- tapOn: Username
- inputText: Test User
- tapOn: Password
- inputText: Test Password
- tapOn: Login

Profile.yaml ​

yaml
appId: com.example.app
---
- runFlow: Login.yaml # <-- Chạy các command từ "Login.yaml"
- tapOn: Profile
- assertVisible: "Name: Test User"

Settings.yaml ​

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.

yaml
- 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ụ:

yaml
- runFlow:
    label: Sort alphabetically
    commands:
      - tapOn:
          id: sort_icon
      - tapOn: algorithm
      - tapOn: A-Z
      - tapOn: Apply

Bạn cũng có thể truyền biến môi trường vào subflow inline:

yaml
- runFlow:
    env:
      INNER_ENV: Inner Parameter
    commands:
      - inputText: ${INNER_ENV}

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.