有 init、action 和 end 函数。是否可以有多种操作方法?我希望它在单独的执行线程上运行。
3 回答
在 VuGen 中添加操作很容易,但它不允许您在同一个 vuser 中并行执行它们。如果你想并行执行,你需要在控制器上为脚本运行多个 vuser。
在 vuser 中实例化新线程非常困难,并且需要您使用 Win API 来创建线程 - 绝对不推荐。
如果您希望并行执行 2 个不同的操作,请改用多个脚本。您将无法在 vuser 之间共享变量或数据。
是的,您可以有多个操作。录制时,您可以从 VUGen 工具栏指定新操作。您也可以将所有内容记录到“动作”中,然后编辑脚本并创建自己的动作并将代码粘贴到那里。
至于其他操作,您可以编辑 LR 配置,即 default.usp 和您的 [project].usr 文件。我可以从一开始就说,尽管弄乱配置文件可能是有风险的,如果这样做,请先备份文件或项目并谨慎行事。
也就是说,这似乎确实克服了未启用“创建新操作”的问题(尽管我很想知道导致该问题的一系列情况 - @TheBlastOne 表明它与使用的协议有关)。
无论如何,编辑您的 default.usp 为您的新操作(例如 Action2)添加一个 RulLogicRunRoot 条目,并在 LR 执行生命周期中对其进行配置,如下所示:
默认.usp
[RunLogicRunRoot:Action2]
MercIniTreeSectionName="Action2"
RunLogicObjectKind="Action" <-- "Action" in this case means LR object type
Name="Action2"
MercIniTreeFather="RunLogicRunRoot"
RunLogicActionType="VuserRun"
...
Profile Actions name=vuser_init,Action,Action2,vuser_end
...
RunLogicActionOrder="Action,Action2"
...
MercIniTreeSons="Action,Action2"
不确定您需要编辑多少 [project].usr 文件,但无论如何您都应该为新操作定义操作和解释器:
[项目].usr
[Actions]
vuser_init=vuser_init.c
Action=Action.c
Action2=Action2.c
vuser_end=vuser_end.c
...
[Interpreters]
vuser_init=cci
Action=cci
Action2=cci
vuser_end=cci
...
我不确定需要多少以下内容,但为每个条目创建一个条目(根据操作脚本)可能是明智的:
[Recorded Actions]
...
[Replayed Actions]
...
[Modified Actions]
最后,不要忘记在您的项目目录中创建一个 Action2.c(具有适当命名的函数以避免与 Action.c 冲突)。在 LR 中重新打开您的项目,它应该在您的脚本视图中包含 Action2。
NB 抱歉,但我无法回答您关于线程的问题……还没有那么先进。