

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Cron 表达式引用
<a name="cron-expression-reference"></a>

此解决方案使用标准 5 字段 Linux cron 格式的子集来制定重复的测试计划。cron 表达式由五个以空格分隔的字段组成。

```
┌───────── minute (0-59)
│ ┌─────── hour (0-23, *, */N, or comma list)
│ │ ┌───── day of month (1-31 or *)
│ │ │ ┌─── month (1-12 or *)
│ │ │ │ ┌─ day of week (0-6, *, range, or list)
│ │ │ │ │
0 9 * * 1-5
```

## 接受的值
<a name="cron-accepted-values"></a>

下表描述了每个字段接受的内容。


| 字段 | 接受的值 | 示例 | 
| --- | --- | --- | 
| 分钟 | 从 0 到 59 之间的单个值。 |  `0`, `30`, `45`  | 
| 小时 |  ` `（每小时）、步长值``、0 到 23 之间的单个值或以逗号分隔的值列表。 |  ` `, ``, `9`, `9,17`  | 
| 日期 |  `*`（每天）或从 1 到 31 的单个值。 |  `*`, `1`, `15`, `31`  | 
| Month |  `*`（每个月）或从 1 到 12 的单个值。 |  `*`, `1`, `6`, `12`  | 
| 星期几 |  `*`（每天）、0 到 6 之间的单个值、使用连字符的范围或逗号分隔的列表。 |  `*`, `0`, `1-5`, `0,6`  | 

星期值使用以下映射：0 = 星期日，1 = 星期一，2 = 星期二，3 = 星期三，4 = 星期四，5 = 星期五，6 = 星期六。

## 不支持的模式
<a name="cron-unsupported-patterns"></a>

以下模式是有效的 Linux cron 语法，但此解决方案不支持。


| 模式 | 示例 | Reason | 
| --- | --- | --- | 
| 分钟步长值 |  `*/15 * * * *`  | 最小调度间隔为一小时。 | 
| 会议纪要清单 |  `0,30 * * * *`  | 最小调度间隔为一小时。 | 
| 月份的日期范围 |  `0 9 1-15 * *`  | 仅接受单日值或通配符。 | 
| 月份的日期清单 |  `0 9 1,15 * *`  | 仅接受单日值或通配符。 | 
| 月份范围 |  `0 9 * 3-9 *`  | 仅接受单月值或通配符。 | 
| 月份清单 |  `0 9 1 1,6,12 *`  | 仅接受单月值或通配符。 | 
| 问号 |  `0 9 ? * ?`  | 问号字符在标准 Linux cron 中无效。请改用 `*`。 | 

## 预设图案
<a name="cron-preset-patterns"></a>

Web 控制台提供以下预设模式，您可以直接选择这些模式。


| 模式名称 | Expression | 说明 | 
| --- | --- | --- | 
| 每小时 |  `0 * * * *`  | 每小时在第 0 分钟运行。 | 
| 每天上午 9:00 |  `0 9 * * *`  | 在所选时区每天上午 9:00 运行一次。 | 
| 工作日上午 8:00 |  `0 8 * * 1-5`  | 周一至周五上午 8:00 运行。 | 
| 每周日下午 5 点 |  `0 17 * * 0`  | 每周日下午 5:00 运行。 | 
| 每月 1 日上午 11 点 |  `0 11 1 * *`  | 在每个月的第一天上午 11:00 运行。 | 

## 调度限制
<a name="cron-scheduling-constraints"></a>
+ 预定测试运行之间的最小间隔为一小时。系统会验证连续运行之间的间隔是否长于估计的测试持续时间。
+ 所有定期计划都需要一个到期日。测试将在到期日期 (UTC) 结束后运行。
+ 计划时区决定了 cron 何时触发。夏令时过渡是自动处理的。如果由于夏令时向前弹跳过渡而导致不存在预定时间，则会跳过该事件。
+ 系统会在 Web 控制台和 API 上验证 cron 表达式。如果表达式与接受的格式不匹配，则无法创建测试。