Selenium RC server (PHP)
Новые темы форума тестировщиков
Selenium RC server (PHP)
Functional Tester и контекстные меню, тестирование интеграции в оболоч
Специалист по автоматизированному тестированию в московский офис Kaspe
Специалист по автоматизированному тестированию в московский офис Kaspe
Тестировщик ПО для мобильных устройств
Тестировщик ПО для мобильных устройств
Специалист по управлению лицензиями (фриланс)
Специалист по управлению лицензиями (фриланс)
Инженер технической поддержки (Help Desk) (Москва, м.Войковская)
Инженер технической поддержки (Help Desk) (Москва, м.Войковская)
CPU, GPU
CPU, GPU
Issue Document - need help! срочно
Issue Document - need help! срочно
Selenium 2.0 (Webdriver)
Selenium 2.0 (Webdriver)
тестирование web-интерфейса
тестирование web-интерфейса
вакансия Senior QA Engineer - OpenWay Group
вакансия Senior QA Engineer - OpenWay Group
WEB тестирование
WEB тестирование
Как проверить что объект сущесвтует на странице? SystemUtil.Run "iexplore.exe","http://google.com" wait 3 If Browser("Browser").Page("Google").WebButton("Поиск Google").Exist Then MsgBox "Exist" Else MsgBox "Doesn't exist" End If В данном примере выдаст Exist - всё честно А теперь меняем google.com на ya.ru SystemUtil.Run "iexplore.exe","http://ya.ru" wait 3 If Browser("Browser").Page("Google").WebButton("Поиск Google").Exist Then MsgBox "Exist" Else MsgBox "Doesn't exist" End If И всё равно выдаст Exist. В чём прикол ? Кнопка Browser("Browser").Page("Google").WebButton("Поиск Google") добавлена в локальный репозиторий.
Как проверить что объект сущесвтует на странице? SystemUtil.Run "iexplore.exe","http://google.com" wait 3 If Browser("Browser").Page("Google").WebButton("Поиск Google").Exist Then MsgBox "Exist" Else MsgBox "Doesn't exist" End If В данном примере выдаст Exist - всё честно А теперь меняем google.com на ya.ru SystemUtil.Run "iexplore.exe","http://ya.ru" wait 3 If Browser("Browser").Page("Google").WebButton("Поиск Google").Exist Then MsgBox "Exist" Else MsgBox "Doesn't exist" End If И всё равно выдаст Exist. В чём прикол ? Кнопка Browser("Browser").Page("Google").WebButton("Поиск Google") добавлена в локальный репозиторий.
Error: The window does not respond. Помогите!
Error: The window does not respond. Помогите!
ATL и AFX контролы
ATL и AFX контролы
Тестировщик приложения на Java Me и Symbian
Тестировщик приложения на Java Me и Symbian
Тестирование методом свободного поиска (exploratory testing)
Тестирование методом свободного поиска (exploratory testing)
Working with custom controls in QTP after (delphi) application restart
Скрытый текст
Call LaunchApp() Call LoginApp(LOGIN_PARAMS) Call InvokeForm (MENU_SESSION_QUIT) Call LaunchApp() Call LoginApp(LOGIN_PARAMS) Call InvokeForm (MENU_SESSION_QUIT)' Вот именно тут, глобально, и падает тест! Тест падает на последней строке с кодом -214746725 "General run-time error" и деталями "Неопознанная ошибка". Подробности ниже. Итак, запуск, логин на сервер, выход. Первая часть, запуск, выглядит так:
Скрытый текст
Public Sub LaunchMicex() SystemUtil.CloseProcessByName(AppName) ' тут убивается процесс приложения, а не просто мягкий выход SystemUtil.Run(appFullPath) ReportPass "Запуск приложения выполнен", "Приложение запущено по пути: " & appFullPath End Sub и отрабатывает независимо ни от чего. Вторая часть заполняет диалоговое окошко логина, там тоже нет проблем, все контролы там более-менее стандартные (или был маппинг к стандартным), с третьей частью проблемы.
Скрытый текст
Public Function InvokeForm(menuPath) InvokeForm = True On Error Resume Next Dim targetMenuPath, obj targetMenuPath = menuPath Set obj = GetTOByName(FORM_MAIN, GetID(MAIN_MENU), toClass) obj.Select targetMenuPath ' <<<==== ТУТ появляется ошибка! If err.Number <> 0 Then Set ec = GetErrorCopy() On Error GoTo 0 Err.Raise ec.number, signature, FormatError(ec, "Не удалось обратиться к меню " & targetMenuPath & "]") End If On Error GoTo 0 End Function GetTOByName: Private Function GetTOByName(ByVal formName, ByVal toName, ByRef toClass) Dim toNode On Error Resume Next ' поиск в репозитории подходящий объектов, подходящий объект должен быть один. Set buf = GetFormNode(formName).ChildElementsByPath("./qtpRep:ChildObjects/qtpRep:Object[@Name='" & toName & "']") If Err.Number<>0 Then On Error GoTo 0 Err.Raise ec.number, signature, FormatError(ec, "Окно " & formName & " не найдено в репозитории") ElseIf buf.Count = 0 Then On Error GoTo 0 Err.Raise ERROR_GENERAL, signature, "Объект " & formName & "." & toName & " не найден в репозитории" ElseIf buf.count > 1 Then On Error GoTo 0 Err.Raise ERROR_GENERAL, signature, "Найдено несколько объектов с именем " & formName & "." & toName & " в репозитории" End If On Error GoTo 0 Set toNode = buf.Item(1) ' test object name and class are attributes of TO node toClass = toNode.Attributes.ItemByName("Class").Value On Error Resume Next Select Case toClass ' тут долгое перечисление того, какие типы знаю Case "DelphiTBXToolbar" Set GetTOByName = GetFormByName(formName).DelphiTBXToolbar(toName) ' GetFormByName выдаёт из репозитория объект, соответствующий имени formName Case Else On Error GoTo 0 Err.Raise ERROR_GENERAL, signature, "Неизвестный класс " & toClass & " тестового объекта " & formName & "." & toName End Select If err.Number<>0 Then Set ec = GetErrorCopy() On Error GoTo 0 Err.Raise ec.number, signature, FormatError(ec, "Ошибка получения тестового объекта " & formName & "." & toName) End If On Error GoTo 0 End Function При обращении к меню в первый раз всё происходит хорошо. При обращении второй раз тест вываливается с ошибкой на строке obj.Select targetMenuPath. Extensibility:
Скрытый текст
<ClassInfo Name="DelphiTBXToolbar" BaseClassInfoName="DelphiObject" GenericTypeID="object"> <TypeInfo> <Operation Name="Select" PropertyType="Method"> <!-- Appears as tooltip in Keyword View --> <Description>Select toolbar item by ItemName.</Description> <!-- Used to generate the 'Documentation' column in Keyword View --> <Documentation><![CDATA[Select : %a1.]]></Documentation> <!-- definition of the MenuPath argument --> <Argument Name="MenuPath" Direction="In" IsMandatory="true"> <Type VariantType="String"/> </Argument> </Operation> </TypeInfo> <!-- Identification property definitions. By default all identification properties are displayed in the Object Spy. Identification properties for which ForDescription="true" comprise the test object description. QuickTest uses these properties to identify the correct object in the application. Identification properties for which ForVerification="true", can be accessed in QuickTest by checkpoints and output values. --> <IdentificationProperties> <IdentificationProperty Name="delphi_name" ForDescription="true"/> <IdentificationProperty Name="y" ForVerification="true"/> <IdentificationProperty Name="x" ForVerification="true"/> <IdentificationProperty Name="WindowExtendedStyle" /> <IdentificationProperty Name="WindowStyle" /> <IdentificationProperty Name="width" ForVerification="true"/> <IdentificationProperty Name="visible" ForVerification="true"/> <IdentificationProperty Name="RegExpWndTitle" /> <IdentificationProperty Name="RegExpWndClass" /> <IdentificationProperty Name="NativeClass" ForDescription="true"/> <IdentificationProperty Name="hWnd" /> <IdentificationProperty Name="height" ForVerification="true"/> <IdentificationProperty Name="focused" ForVerification="true"/> <IdentificationProperty Name="enabled" ForVerification="true"/> <IdentificationProperty Name="abs_y" /> <IdentificationProperty Name="abs_x" /> <IdentificationProperty Name="Position" ForVerification="true"/> </IdentificationProperties> </ClassInfo> Могу ещё привести код на Delphi, который в приложение встраивается, но пока не хочу. Этот модуль писал не я, он три года работает.. Хотя там тоже есть странности.
Working with custom controls in QTP after (delphi) application restart
Скрытый текст
Call LaunchApp() Call LoginApp(LOGIN_PARAMS) Call InvokeForm (MENU_SESSION_QUIT) Call LaunchApp() Call LoginApp(LOGIN_PARAMS) Call InvokeForm (MENU_SESSION_QUIT)' Вот именно тут, глобально, и падает тест! Тест падает на последней строке с кодом -214746725 "General run-time error" и деталями "Неопознанная ошибка". Подробности ниже. Итак, запуск, логин на сервер, выход. Первая часть, запуск, выглядит так:
Скрытый текст
Public Sub LaunchMicex() SystemUtil.CloseProcessByName(AppName) ' тут убивается процесс приложения, а не просто мягкий выход SystemUtil.Run(appFullPath) ReportPass "Запуск приложения выполнен", "Приложение запущено по пути: " & appFullPath End Sub и отрабатывает независимо ни от чего. Вторая часть заполняет диалоговое окошко логина, там тоже нет проблем, все контролы там более-менее стандартные (или был маппинг к стандартным), с третьей частью проблемы.
Скрытый текст
Public Function InvokeForm(menuPath) InvokeForm = True On Error Resume Next Dim targetMenuPath, obj targetMenuPath = menuPath Set obj = GetTOByName(FORM_MAIN, GetID(MAIN_MENU), toClass) obj.Select targetMenuPath ' <<<==== ТУТ появляется ошибка! If err.Number <> 0 Then Set ec = GetErrorCopy() On Error GoTo 0 Err.Raise ec.number, signature, FormatError(ec, "Не удалось обратиться к меню " & targetMenuPath & "]") End If On Error GoTo 0 End Function GetTOByName: Private Function GetTOByName(ByVal formName, ByVal toName, ByRef toClass) Dim toNode On Error Resume Next ' поиск в репозитории подходящий объектов, подходящий объект должен быть один. Set buf = GetFormNode(formName).ChildElementsByPath("./qtpRep:ChildObjects/qtpRep:Object[@Name='" & toName & "']") If Err.Number<>0 Then On Error GoTo 0 Err.Raise ec.number, signature, FormatError(ec, "Окно " & formName & " не найдено в репозитории") ElseIf buf.Count = 0 Then On Error GoTo 0 Err.Raise ERROR_GENERAL, signature, "Объект " & formName & "." & toName & " не найден в репозитории" ElseIf buf.count > 1 Then On Error GoTo 0 Err.Raise ERROR_GENERAL, signature, "Найдено несколько объектов с именем " & formName & "." & toName & " в репозитории" End If On Error GoTo 0 Set toNode = buf.Item(1) ' test object name and class are attributes of TO node toClass = toNode.Attributes.ItemByName("Class").Value On Error Resume Next Select Case toClass ' тут долгое перечисление того, какие типы знаю Case "DelphiTBXToolbar" Set GetTOByName = GetFormByName(formName).DelphiTBXToolbar(toName) ' GetFormByName выдаёт из репозитория объект, соответствующий имени formName Case Else On Error GoTo 0 Err.Raise ERROR_GENERAL, signature, "Неизвестный класс " & toClass & " тестового объекта " & formName & "." & toName End Select If err.Number<>0 Then Set ec = GetErrorCopy() On Error GoTo 0 Err.Raise ec.number, signature, FormatError(ec, "Ошибка получения тестового объекта " & formName & "." & toName) End If On Error GoTo 0 End Function При обращении к меню в первый раз всё происходит хорошо. При обращении второй раз тест вываливается с ошибкой на строке obj.Select targetMenuPath. Extensibility:
Скрытый текст
<ClassInfo Name="DelphiTBXToolbar" BaseClassInfoName="DelphiObject" GenericTypeID="object"> <TypeInfo> <Operation Name="Select" PropertyType="Method"> <!-- Appears as tooltip in Keyword View --> <Description>Select toolbar item by ItemName.</Description> <!-- Used to generate the 'Documentation' column in Keyword View --> <Documentation><![CDATA[Select : %a1.]]></Documentation> <!-- definition of the MenuPath argument --> <Argument Name="MenuPath" Direction="In" IsMandatory="true"> <Type VariantType="String"/> </Argument> </Operation> </TypeInfo> <!-- Identification property definitions. By default all identification properties are displayed in the Object Spy. Identification properties for which ForDescription="true" comprise the test object description. QuickTest uses these properties to identify the correct object in the application. Identification properties for which ForVerification="true", can be accessed in QuickTest by checkpoints and output values. --> <IdentificationProperties> <IdentificationProperty Name="delphi_name" ForDescription="true"/> <IdentificationProperty Name="y" ForVerification="true"/> <IdentificationProperty Name="x" ForVerification="true"/> <IdentificationProperty Name="WindowExtendedStyle" /> <IdentificationProperty Name="WindowStyle" /> <IdentificationProperty Name="width" ForVerification="true"/> <IdentificationProperty Name="visible" ForVerification="true"/> <IdentificationProperty Name="RegExpWndTitle" /> <IdentificationProperty Name="RegExpWndClass" /> <IdentificationProperty Name="NativeClass" ForDescription="true"/> <IdentificationProperty Name="hWnd" /> <IdentificationProperty Name="height" ForVerification="true"/> <IdentificationProperty Name="focused" ForVerification="true"/> <IdentificationProperty Name="enabled" ForVerification="true"/> <IdentificationProperty Name="abs_y" /> <IdentificationProperty Name="abs_x" /> <IdentificationProperty Name="Position" ForVerification="true"/> </IdentificationProperties> </ClassInfo> Могу ещё привести код на Delphi, который в приложение встраивается, но пока не хочу. Этот модуль писал не я, он три года работает.. Хотя там тоже есть странности.
Тест
Реструктуризация форума
Реструктуризация форума
«Что желаете на гарнир к тестам?»
«Что желаете на гарнир к тестам?»
Подбор ссылок по разделу
© 2010 | Software-Testing.Ru |
В избранное | ||