在 TestComplete 中如何获取在 OnLogCheckPoint 事件期间从哪个对象调用对象检查点?
In TestComplete how to get which object the Object Checkpoint was called from during OnLogCheckPoint Event?
我目前正在测试 运行 测试完成时自动检测测试信息。
所以我的要求是这样的
- 我在 testcomplete 中创建了一个测试
- 我附加了具有我自己的代码的 OnLogCheckpoint 事件。
- 在那里我可以获得对象检查点的检查点属性(它们在 LogParams 中可用)
- 但是我找不到获取对象检查点被调用的对象的方法。
有什么方法可以从 OnLogCheckpoint 事件或其他方式的脚本中获取这个 object/alias 在其上执行对象检查点的方法。
OnLogCheckpoint 事件在检查点消息发布到日志时触发,现在在执行检查点时触发。有一个重要的区别:在第一种情况下,事件的目标是日志消息而不是对象树中的实际对象。
但是,在一般情况下,此类消息包含您需要的对象名称。因此,您可以解析日志消息以获取对象的名称。这是一个针对 属性 检查点消息执行此操作的示例脚本 (JScript)。我没有使用其他检查点类型对其进行测试,但此代码可能无需任何更改或只需很少的更改即可与它们一起使用。
function GeneralEvents_OnLogCheckpoint(Sender, LogParams)
{
Log.Message("Object name: " + getObjectNameFromCheckpointMessage(LogParams.StrEx));
}
function getObjectNameFromCheckpointMessage(str)
{
var re = /<th class='BoldLineTop HB'>Object name:<\/th>\s+<th class='BoldLineTop'>((\w|\(|\)|\.|\s|,|-|")+)<\/th>/;
var m = re.exec(str);
if (m === null)
return "";
return m[1];
}
更新:
以下示例脚本显示了如何获取使用对象检查点验证的对象的名称。获取的名字是简称,好像没办法获取全名
function GeneralEvents_OnLogCheckpoint(Sender, LogParams)
{
Log.Message("Object name: " + getObjectNameFromObjectCheckpointMessage(LogParams.StrEx));
}
function getObjectNameFromObjectCheckpointMessage(str)
{
var re = /Click here to show or modify data of the checkpoint \"(\w+)\"\./;
var m = re.exec(str);
if (m === null)
return "";
return Objects.StoredObject(m[1]).Name;
}
我目前正在测试 运行 测试完成时自动检测测试信息。
所以我的要求是这样的
- 我在 testcomplete 中创建了一个测试
- 我附加了具有我自己的代码的 OnLogCheckpoint 事件。
- 在那里我可以获得对象检查点的检查点属性(它们在 LogParams 中可用)
- 但是我找不到获取对象检查点被调用的对象的方法。
有什么方法可以从 OnLogCheckpoint 事件或其他方式的脚本中获取这个 object/alias 在其上执行对象检查点的方法。
OnLogCheckpoint 事件在检查点消息发布到日志时触发,现在在执行检查点时触发。有一个重要的区别:在第一种情况下,事件的目标是日志消息而不是对象树中的实际对象。
但是,在一般情况下,此类消息包含您需要的对象名称。因此,您可以解析日志消息以获取对象的名称。这是一个针对 属性 检查点消息执行此操作的示例脚本 (JScript)。我没有使用其他检查点类型对其进行测试,但此代码可能无需任何更改或只需很少的更改即可与它们一起使用。
function GeneralEvents_OnLogCheckpoint(Sender, LogParams)
{
Log.Message("Object name: " + getObjectNameFromCheckpointMessage(LogParams.StrEx));
}
function getObjectNameFromCheckpointMessage(str)
{
var re = /<th class='BoldLineTop HB'>Object name:<\/th>\s+<th class='BoldLineTop'>((\w|\(|\)|\.|\s|,|-|")+)<\/th>/;
var m = re.exec(str);
if (m === null)
return "";
return m[1];
}
更新:
以下示例脚本显示了如何获取使用对象检查点验证的对象的名称。获取的名字是简称,好像没办法获取全名
function GeneralEvents_OnLogCheckpoint(Sender, LogParams)
{
Log.Message("Object name: " + getObjectNameFromObjectCheckpointMessage(LogParams.StrEx));
}
function getObjectNameFromObjectCheckpointMessage(str)
{
var re = /Click here to show or modify data of the checkpoint \"(\w+)\"\./;
var m = re.exec(str);
if (m === null)
return "";
return Objects.StoredObject(m[1]).Name;
}