让Ranorex对所有测试使用相同的用户代码

时间:2013-10-09 19:04:51

标签: ranorex

是否可以将Ranorex配置为使用相同的用户代码来识别应用程序中的按钮(而不是为每个测试重命名它们),并为任何新测试配置一组用户定义的代码。即所有测试的通用用户代码库?

2 个答案:

答案 0 :(得分:1)

是的,这是可能的,非常方便。你所做的是拥有一个继承自ITestModule的代码模块库,例如

  

public class GenericActionsLibrary:ITestModule

然后在录制模块的用户代码部分中,该类继承自您的库。

  

公共类TestLoginScreen:GenericActionsLibrary

在录制模块中,每次添加用户代码操作时,下拉列表都会填充用户代码模块和GenericActionsLibrary中的方法。

您的GenericActionsLibrary将需要自己的存储库静态引用。

答案 1 :(得分:0)

我是这样做的。我在Ranorex中使用Visual Basic(VB)而不是C#CS。

在Ranorex

  • “添加代码模块”MainLibrary
  • “添加代码模块”StartBrowser

在代码模块MainLibrary中注释掉三个代码块:

第一个是

'Implements ITestModule

第二个是

        ''' <summary>
        ''' Constructs a new instance.
        ''' </summary>
'        Public Sub New()
'            ' Do not delete - a parameterless constructor is required!
'        End Sub

第三个位置是

        ''' <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(Of ITestModule)"/> method
        ''' that will in turn invoke this method.</remarks>
'        Sub Run() Implements ITestModule.Run
'            Mouse.DefaultMoveTime = 300
'            Keyboard.DefaultKeyPressTime = 100
'            Delay.SpeedFactor = 1.0
'        End Sub

为要从其他代码模块调用的操作添加Sub

Public Sub OpenBrowser
    Host.Local.OpenBrowser("http://www.ranorex.com", "IE", "", False, False)
End Sub

在代码模块中,您正在调用MainLibrary中的方法。在Inherits语句之前添加Implements语句,然后从MainLibrary代码块中的ITestModule.Run调用该方法:

   Public Class StartBrowser
        Inherits MainLibrary
        Implements ITestModule

        ''' <summary>
        ''' Constructs a new instance.
        ''' </summary>
        Public Sub New()
            ' Do not delete - a parameterless constructor is required!
        End Sub

        ''' <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(Of ITestModule)"/> method
        ''' that will in turn invoke this method.</remarks>
        Sub StartBrowser_Run() Implements ITestModule.Run
            Mouse.DefaultMoveTime = 300
            Keyboard.DefaultKeyPressTime = 100
            Delay.SpeedFactor = 1.0

            'Call the public method from MainLibrary Class.
            OpenBrowser()
        End Sub

    End Class

Ranorex's Website上,它显示了创建在重用不同项目时派上用场的库。