如何在Ranorex中使用全局变量?

How to use Global variables in Ranorex?

我需要创建全局变量并将其用作可选参数,但不知道如何实现它。

我在 Ranorex studio 中创建了全局变量:

此变量也出现在 Data binding 标签中:

但是我不能在代码中使用这个变量。 (ASECore 包不包含任何参数)。

在最高节点中设置该变量后,您可以使用它并在较低节点中为其分配变量。因此,当您在测试套件中创建一个智能文件夹并转到数据绑定时,您会注意到参数下存在全局。您需要做的就是使用一个变量进行记录,该变量将使用全局变量并 link 它在该文件夹中。

您可以在Ranorex Record 模块或Ranorex Code 模块中使用全局变量。我先介绍一下它们的使用方法。

在记录模块中创建

在Record模块中,点击右上角的Variables...按钮,添加你想在redord模块中使用的变量。

然后在您的录音中使用它们:


在代码模块中创建

当您创建代码模块时,它将如下所示:

/// <summary>
/// Description of MyCode.
/// </summary>
[TestModule("32310FEC-5336-4F83-B448-ABC851EE5731", ModuleType.UserCode, 1)]
public class MyCode : ITestModule
{
    /// <summary>
    /// Constructs a new instance.
    /// </summary>
    public MyCode()
    {
        // Do not delete - a parameterless constructor is required!
    }

    /// <summary>
    /// Performs the playback of actions in this module.
    /// </summary>
    /// <remarks>You should not call this method directly, instead pass the module
    /// instance to the <see cref="TestModuleRunner.Run(ITestModule)"/> method
    /// that will in turn invoke this method.</remarks>
    void ITestModule.Run()
    {
        Mouse.DefaultMoveTime = 300;
        Keyboard.DefaultKeyPressTime = 100;
        Delay.SpeedFactor = 1.0;
    }
}

现在,右键单击代码并选择“插入新模块变量”。然后您可以设置名称和默认值。按确定,它将添加如下内容:

string _MyVariable = "DefaultValue";
[TestVariable("de0fb4a9-32ba-4635-8f0f-4ff6db184c3f")]
public string MyVariable
{
    get { return _MyVariable; }
    set { _MyVariable = value; }
}

现在,您可以像使用普通 C# 属性一样使用 运行 方法中的变量:

repo.Calculator.CalculatorResults.PressKeys(Input_1);
repo.Calculator.PlusButton.Click();
repo.Calculator.CalculatorResults.PressKeys(Input_2);
repo.Calculator.EqualButton.Click();

如何在套件中绑定变量

创建全局参数时,确实不能在套件级别绑定它们。

因此关闭对话框并右键单击 Record/Code 模块并选择“数据绑定”

在较低的 table 中,您可以将 Record/Code 模块的变量绑定到全局变量。如果他们同名,你也可以Auto-bind他们。

当您现在执行测试套件时,全局变量的值将在测试中使用。如果您单独执行 Record/Code 模块,那么将在测试中使用默认值。