BCG Grid и Stingray Grid в TestComplete
#1
Отправлено 12 августа 2008 - 10:51
На данный момент мы используем(программисты) компонент Stingray Grid. Приложение написано на C++ Visual Studio 2005. Но у меня не получается в TestComplete 6.40 достучаться до ячеек (например получить число столбцов в гриде , кликнуть по нужной ячейке). Грид определяется как 'GXWND'. При записи действий (Start Recording) получаю просто Click(55,90), т.е. просто клик по форме.А хотелось бы именно как Item получить эту ячейку.
На сайте Automated QA скачала примеры для работы с этими компонентами но они тоже не работают ( в тех поддержку отписалась, но они еще не ответили).
Есть аналогичный компонет только другой фирмы BCG Grid. Скачала пример с их сайта, чтобы проверить как в Тесткомплите будут открываться его свойства. Но он также не показывает ни RowCount ни ColCount:( в Object Properties-Finder Tool. Грид определяется как 'BCGPGridCtrl'.
На сайте Automated QA ничего про BCG не нашла, похоже они его не поддерживают.
Может кому-то приходилось уже тестировать гриды фирмы Stingray или BCG, может знаете как получить число ячеек, число строк и т.д. Может что-то доустановить нужно еще?
Заранее спасибо
#2
Отправлено 13 августа 2008 - 05:59
Здравствуйте...
Так Вы можете работать со свойствами и методами этого грида (отсутствие 2-х свойств не показатель) - приложение Open?
Если есть возможность, выложите сюда примерчик грида...
#3
Отправлено 13 августа 2008 - 10:50
Да со свойствами могу работать. Прикладываю картинки какие определяются свойства и методы данного грида .Так Вы можете работать со свойствами и методами этого грида (отсутствие 2-х свойств не показатель) - приложение Open?
Если есть возможность, выложите сюда примерчик грида...
В хелпе прочла что до ячеек в Тесткомплите можно достучаться так : Grid.Model.RowCount например, но совйства Model у моего компанента нет.
Вот кусочек кода - нажатие на ячейку, ввод в ячейку букв нажатие Enter. вот что записал Рекордер:
//DelphiScript w1 := frmMainWindow.Window('GXWND', 'Grid'); w1.VScroll.Pos := 1; w1.Click(457, 24); w1.Window('Edit').Keys('ere[Enter]');Т.е. он просто кликает по координатам, а не по какой-то определенной ячейке:( ( например как в списке или в дереве Item [0])
Три рисунка с методами и свойствами прикрепила вложенным файлом. Методов намного больше все принскринить не стала, но не в одном из них не нашла, к примеру, метода похожего на ColCount или RowCount.
Archive.zip 110,14К 52 Количество загрузок:
#4
Отправлено 13 августа 2008 - 12:23
Если есть способы, то поделитесь пожалуйста
#5
Отправлено 14 августа 2008 - 09:44
...Прикладываю картинки какие определяются свойства и методы данного грида...
Я вообще-то ожидал небольшое тестовое приложение (форма и грид на ней).
Обычно сами гриды данные не содержат, все данные находятся в так называемых datasours'ах. Спросите у разработчиков, с помощью какого объекта set'ятся данные в грид (это может быть, например, какой-нибудь gridview - ищите его в списках Fields для формы, на которой лежит грид; это может быть, повторюсь, datasource - ищите его в списке объектов для грида и т.д.)
#6
Отправлено 14 августа 2008 - 11:38
Пожалуйста расскажите как именно и что спросить у программистов. Один из них подошел ко мне я им показала Ваш вопрос. Он смутно сказал что datasource у них создаются Edit Combobox И др типы ячеек. Выпросила у него кусочек кода как создается одна ячейка в таблице. Приложено ниже. Но что конкретно мне надо искать и как кликать по ячейке по нужной я так и не поняла:((Я вообще-то ожидал небольшое тестовое приложение (форма и грид на ней).
Обычно сами гриды данные не содержат, все данные находятся в так называемых datasours'ах. Спросите у разработчиков, с помощью какого объекта set'ятся данные в грид (это может быть, например, какой-нибудь gridview - ищите его в списках Fields для формы, на которой лежит грид; это может быть, повторюсь, datasource - ищите его в списке объектов для грида и т.д.)
bool cGridParams::Load(cControl &ctrl, int iCurRow) { //cControl& ctrl = m_Controls[iCurRow]; const CString c_strTab = " "; SetStyleRange( CGXRange(iCurRow, 3), CGXStyle().SetItemDataPtr(0) ); if ( ctrl.Type == e_Group || ctrl.Type == e_GroupCheck) { if ( ctrl.Type == e_Group) { SetStyleRange( CGXRange(iCurRow, 1), CGXStyle() .SetEnabled(FALSE) .SetHorizontalAlignment(DT_CENTER) .SetValue("-") .SetControl(GX_IDS_CTRL_STATIC) .SetFont( CGXFont().SetBold(TRUE) ) .SetWrapText(TRUE) .SetInterior( ::GetSysColor(COLOR_INFOBK) ) ); SetStyleRange( CGXRange(iCurRow, 2), CGXStyle() .SetHorizontalAlignment(DT_CENTER) .SetValue( ctrl.strCaption ) .SetEnabled(FALSE) .SetControl(GX_IDS_CTRL_STATIC) .SetFont( CGXFont().SetBold(TRUE) ) .SetWrapText(TRUE) .SetInterior( ::GetSysColor(COLOR_INFOBK) ) ); // скажем группе, что она открыта ctrl.iState = 1; } ....Может мне нужно попросить сделать какие-то дополнительные методы , чтобы получить число столбцов число строк?Может какой-то метод напишут выделения нужной ячейки?
#7
Отправлено 15 августа 2008 - 10:37
#8
Отправлено 18 августа 2008 - 06:01
Сегодня еще раз спрашивала у программистов как они работают с этим компонентом. Они сказали что на форму они кладут Custom Control и именно он и носит имя 'GXWND', которое у меня определяется тесткомплитом. Затем во время выполнения они как то присваивают этому контролу тип CGXGridWnd который является производным от классов CWnd и CGXGridCore. И именно у CGXGridCore они как то вызывают функции SetRowCount SetColCount и т.д. Пожалуйста подскажите, как в тесткомплите добраться до свойств этого объекта (из того который определяется), чтобы тоже получить и число строк и столбцов.
Прошу прощения за долгое молчание, не было возможности ответить.
1) Если есть возможность, попросите программистов накидать пример (форма с гридом с какими-нибудь данными) и выложите его сюда.
2) Ищите похожие объекты на закладке Fields для вашей формы, у них ищите нужные свойства...
#9
Отправлено 18 августа 2008 - 08:09
Хорошо буду просить программистов. Пока еще раз опишу что у них смогла выяснить:Прошу прощения за долгое молчание, не было возможности ответить.
1) Если есть возможность, попросите программистов накидать пример (форма с гридом с какими-нибудь данными) и выложите его сюда.
2) Ищите похожие объекты на закладке Fields для вашей формы, у них ищите нужные свойства...
Они кладут на форму Custom Control имеет DialogID = 'IDC_PARAMS_GRID' и class ='GXWND';
В программе они уже его инициализуют командой m_GridParams.SubclassDlgItem(IDC_PARAMS_GRID, this); Т.е. связывают Custom Control с классом cGridParams. Этот класс является производным:
class cGridParams : public CGXGridWndКласс CGXGridWnd также является производным :
class CGXGridWnd : public CWnd, public CGXGridCoreА именно класс CGXGridCore и является исходным классом Stingray, у которого есть свойства и методы позволяющие получить число столбцов, строк и т.д. В тесткомлите(проверяла на дебажной сборки приложения)ни во вкладке Properties они не определяются, а вкладка Fields вообще пустая.
Вычитала в хелпе статью "Object Properties, Fields and Methods That Are Unavailable to TestComplete", там описан пример :
C++ class C1 { int x;} class C2 : public C1 { int x2;} class C3 : public C1 { int x3;} class C4 : public C2, public C3 { int x4;}и там дословно сказано : "Class C4 has two x members, one inherited from C2 and the other from C3. In the Object Browser you can only see one C4::x member and C2::x. Field C3::x is unavailable to TestComplete". Т.е. может и в нашем приложении достучаться до свойств класса CGXGridCore мне будет в Тесткомплите невозможно.
#10
Отправлено 22 августа 2008 - 09:35
Здравствуйте.Я вообще-то ожидал небольшое тестовое приложение (форма и грид на ней).
Прикладываю тестовое приложение debug ,release и исходники.
Помогите , что необходимо сделать чтобы TestComplete ( у меня версия 6.40) распознал свойства и методы Stingray Grid-a? Может еще что-то нужно установить, или сказать программистам чтобы еще что-то прописали?
Заранее спасибо. test.zip 1,53МБ 50 Количество загрузок:
#11
Отправлено 25 августа 2008 - 05:15
Да, похоже на то, что ваш случай подпадает под это исключение. Возможно, решением для вас стало бы определение новый публичных методов или свойств в классе cGridParams или CGXGridWnd, которые просто являлись бы прокси методами/свойствами для нужных методов/свойств базовых классов, которые недоступны TestComplete'у. Другим решением, хоть и более сложным на мой взгляд, является использование Self-Testing Applications. Подробнее о них найдёте в хелпе.Т.е. может и в нашем приложении достучаться до свойств класса CGXGridCore мне будет в Тесткомплите невозможно.
Дмитрий
#12
Отправлено 25 августа 2008 - 13:32
#13
Отправлено 08 сентября 2008 - 07:39
TestComplete - не пользую... да и зачем ? - когда есть такие как - QTP (Quick Test Professional).На данный момент мы используем(программисты) компонент Stingray Grid. Приложение написано на C++ Visual Studio 2005. Но у меня не получается в TestComplete 6.40 достучаться до ячеек
Stingray Grid о котоором идёт речь отлично распознаётся QTP, естественно при установленном Stingray-Addin-е.
Кроме того - есть поддержка не только Grid-а, но и других контролов от Rogue Wave Software -
тулбары, табы, деревья - в общем полный комплекс...
чем можем... будут ещё вопросы - спрашивайЗаранее спасибо
#14
Отправлено 08 сентября 2008 - 11:15
TestComplete - не пользую... да и зачем ? - когда есть такие как - QTP (Quick Test Professional).
Stingray Grid о котоором идёт речь отлично распознаётся QTP, естественно при установленном Stingray-Addin-е.
Кроме того - есть поддержка не только Grid-а, но и других контролов от Rogue Wave Software -
тулбары, табы, деревья - в общем полный комплекс...
Дело в том, что наша компания позволить себе столь дорогой продукт купить не может. Мне купили лицензию на тесткомплит поэтому его и использую.
#15
Отправлено 08 сентября 2008 - 12:17
TestComplete - не пользую... да и зачем ? - когда есть такие как - QTP (Quick Test Professional).
Stingray Grid о котоором идёт речь отлично распознаётся QTP, естественно при установленном Stingray-Addin-е.
Кроме того - есть поддержка не только Grid-а, но и других контролов от Rogue Wave Software -
тулбары, табы, деревья - в общем полный комплекс...
Дело в том, что наша компания позволить себе столь дорогой продукт купить не может. Мне купили лицензию на тесткомплит поэтому его и использую.
А мы работаем с QTP - он таки стОит своих денег. - действительно мощный продукт.
Возможно стоит подумать ( если пока ещё не завязались на TestComplete ) - перейти на QTP.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных