Получить Ranorex использовать один и тот же код пользователя для всех тестов
Можно ли настроить Ranorex для использования одного и того же пользовательского кода для идентификации кнопок в приложении (вместо переименования их для каждого теста), а также для набора определенного пользователем кода для любых новых тестов. Т.е. общая база кода пользователя для всех тестов?
2 ответа
Да, это возможно и очень удобно. Что вы делаете, это есть библиотека модуля кода, который наследует от ITestModule
например,
открытый класс GenericActionsLibrary: ITestModule
и затем в разделе кода пользователя модуля записи есть класс, унаследованный от вашей библиотеки.
открытый класс TestLoginScreen: GenericActionsLibrary
В модуле записи каждый раз, когда вы добавляете действие с кодом пользователя, раскрывающийся список заполняется методами как модуля кода пользователя, так и GenericActionsLibrary
,
Ваш GenericActionsLibrary
потребуется собственная статическая ссылка на хранилище.
Вот как я это сделал. Я использую 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 рассказывается о создании библиотек, которые пригодятся при повторном использовании для различных проектов.