0

我是autosys的新手。。有谁知道如何对特定工作进行正面和负面测试

4

2 回答 2

0

不确定你想测试什么。首先获取要在 Autosys 之外运行的命令或脚本。作为其中的一部分,测试命令或脚本错误处理。Autosys 会将来自 aa 命令的任何零退出代码报告为成功,因此请确保您的脚本在任何退出错误时发出非零退出代码。然后,您可以使用虚拟命令或脚本(如 sleep 命令)测试 autosys 作业是否按计划运行。然后您可以使用实时命令或脚本进行测试。

要测试一个特定的作业,一个肯定的测试是如果你强制启动该作业,它运行成功并且由 autosys 运行的命令生成的日志表明该命令是成功的。对命令作业进行否定测试将取决于正在运行的命令或脚本。更改作业之外的某些内容以使命令或脚本失败。

于 2011-05-04T18:02:24.450 回答
0

Autosys 似乎受到了极大的限制。您可以在 JOB2 中创建一个取决于 JOB1 成功的条件,例如 SUCCESS(JOB1)。但似乎不支持与成功相反的条件。Autosys 提供了一个 RUNNING 和一个 NOTRUNNING 条件,但由于某种原因,它们不幸地省略了包含 NOTSUCCESS。

到目前为止,我想出的最佳解决方法是使用以下 JIL 配置:

insert_job: 0AM-7AM_BOX
job_type: b
start_times: "00:00"
description: "Succeeds if JOB1 succeeds, TERMINATED if JOB1 does not succeed"
term_run_time: 419

insert_job: CHECK_THE_CONDITION
job_type: c
box_name: 0AM-7AM_BOX
command: date
condition: success(JOB1)
description: "Succeeds if JOB1 succeeds"

insert_job: ACT_ON_THE_CONDITION
job_type: c
command: [put the command you want to execute here]
condition: SUCCESS(CHECK_THE_CONDITION)
description: "Run the run between midnight and 7am if the condition is true"

因此,如果 JOB1 在午夜和早上 7 点之间进入状态“SUCCESS”,那么 ACT_ON_THE_CONDITION 将立即运行。由于该命令只是对“date”的虚拟调用,因此它应该立即运行并变为“SUCCESS”,因此 0AM-7AM_BOX 框也将变为“SUCCESS”。

另一种可能性是 JOB3 在早上 7 点之前没有进入状态“SUCCESS”。在这种情况下,“term_run_time”设置将导致盒子进入“TERMINATED”状态。

加起来,

  1. 如果 JOB1 成功,0AM-7AM_BOX -> SUCCESS
  2. 如果 JOB1 是除了 SUCCESS 之外的任何东西,0AM-7AM_BOX -> TERMINATED

这很有用,因为您随后可以设置测试成功条件或终止条件的相关作业(因为 TERMINATED 是您可以放入条件的有效测试)。

于 2011-05-12T14:42:18.207 回答