2

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

4

2 回答 2

1

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

公共类 GenericActionsLibrary : ITestModule

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

公共类 TestLoginScreen : GenericActionsLibrary

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

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

于 2013-10-24T23:14:39.497 回答
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(s)

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

在代码模块中,您正在调用MainLibrary. Inherits在语句之前添加语句,然后从代码块中Implements调用方法:MainLibraryITestModule.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 的网站上,它展示了创建库,这些库在重用于不同的项目时会派上用场。

于 2015-01-05T21:23:37.167 回答