Перейти к содержимому

Публикации cool_rus_killer

17 публикаций создано cool_rus_killer (учитываются публикации только с 25 апреля 2023)


#45750 ...click At Point (238, -84) Which Is Out Of Screen

Отправлено автор: cool_rus_killer 27 августа 2007 - 06:56 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте.

То есть, проблема больше не воспроизводится? А с какой конкретно нодой была проблема, она видна на картинке? Если проблема воспроизводится только в каких-то определённых условиях, попробуйте найти эти условия и описать их здесь.


Проблема пока не воспроизводится. На сколько помню, ошибка выходила, когда после навигации по подузлам узла Узел|Объекты узла|aa|Свойства, необходимо было вернуться обратно (т.е. кликнуть на Узел|Объекты узла|aa|Свойства).
Как только будет свободное время, попытаюсь восстановить ситуацию. (сами понимаете - работа, работа :))

С уважением, Зиннатуллин Рустам.



#45687 ...click At Point (238, -84) Which Is Out Of Screen

Отправлено автор: cool_rus_killer 24 августа 2007 - 06:19 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте.

Полное имя контрола лежит в свойстве ClrFullClassName. Однако похоже, что у вас стандартный контрол. А можете, в таком случае, прислать картинку окна приложения с деревом и видимой проблемной нодой?


Картинку окна прислать могу, только ошибку повторить не удалось, т.к. не удалось точно восстановить те условия.
adm.png



#45607 ...click At Point (238, -84) Which Is Out Of Screen

Отправлено автор: cool_rus_killer 22 августа 2007 - 09:19 в SmartBear (AutomatedQA) - Functional Testing

Какой конкретно контрол вы используете?


В Object Browser написано
ClrClassName TreeView
ProductName Microsoft® .NET Framework
ProductVersion 2.0.50727.42



#45600 Xtramainmenu

Отправлено автор: cool_rus_killer 22 августа 2007 - 07:28 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте!

Не знаю, чтоит ли сюда писать эту проблему, но попробую.

TestComplete 5.14.523.3 demo
Приложение .NET

В тестируемом приложении есть главное меню. Вот такой скрипт:
NameMapping.Syst.NodeHost.Admin.XtraMainMenu.Click('Файл|Выход')

(XtraMainMenu не замаппено, а свойство Admin`а)

Окно Admin имеет меню. Так вот от случая к случаю XtraMainMenu перестает распознаваться. Если перезапустить тестирумое приложение, то XtraMainMenu начинает распознаваться.

Есть ли какие-либо соображения по этому поводу?



#45466 Скорость "ручного" ввода средствами TC

Отправлено автор: cool_rus_killer 17 августа 2007 - 05:09 в SmartBear (AutomatedQA) - Functional Testing

Попробуйте так, на глаз работает так же быстро как вставка через свойство

window.Activate ' делаете активным TextBox		 
		str_Input = "example"
		For i = 1 to Len(str_Input)
				s = Mid(str_Input, i, 1)
				keyCode = VkKeyScan(s)
				Call Win32API.keybd_event(keyCode,0,0,0)
		next


Тут аналогичный метод с keybd_event, но распознающий русские буквы, хоть и реализован в dll.
http://software-test...art=#entry45465



#45465 Вручную Быстрее

Отправлено автор: cool_rus_killer 17 августа 2007 - 05:03 в SmartBear (AutomatedQA) - Functional Testing

Всё! Целый день потратил, но добил!

Написал dll-ку. Теперь и руссий, и английский текст, и скорость. Рай!

Кому интересно, качайте dll-ку.

Прикрепленный файл  UserUtils.zip   24,86К   81 Количество загрузок:

На DelphiScript вот как юзать:

var UserUtils;
procedure InitUserUtilsUnit();
var dllka;
begin
  dllka := Dll.DefineDll('UserUtils');
  dllka.DefineProc('TypeKeys', vt_lpstr, vt_i4, vt_i4); // text, DelayTime, result
  dllka.DefineProc('SetEngLayout', vt_i4);
  dllka.DefineProc('SetRusLayout', vt_i4);
  UserUtils := Dll.Load(Project.Path+'UserUtils.dll', 'UserUtils');   // <<--- Пропишите путь к dll-ке, или скиньте dll-ку в папку с проектом
end;

procedure TypeKeys(Text: string);
var txt;
begin
  txt := Dll.New('LPSTR', Length(Text)+1);
  txt.Text := Text;
  UserUtils.TypeKeys(txt, 10); 
end;
				
procedure Main;
begin
  InitUserUtilsUnit();
  try
	TypeKeys('Cool shit! Вот круто, да?! Асть!! ёёёоу!  ЁЁЁООУУУ yahoo...');
  except
	Log.Error('Exception', ExceptionMessage)
  end;
end;

Еще сделал доступным функции активации русской (UserUtils.SetRusLayout) и английской (UserUtils.SetEngLayout) раскладки. Функции изменяют раскладку того приложения, которое на данный момент активно (foreground window).
Если есть более рациональное предложение, пишите!

Всем удачи!



#45455 Вручную Быстрее

Отправлено автор: cool_rus_killer 16 августа 2007 - 12:13 в SmartBear (AutomatedQA) - Functional Testing

Еще один способ эмуляции ввода через клавиатуру - использование WSH (скорость мгновенная)
Пример на VBScript'е

Set WshShell = CreateObject("WScript.Shell")WshShell.SendKeys("test")
На счет русских символов не знаю и не могу проверить.


Проверил, русские символы не посылаются :(



#45431 Вручную Быстрее

Отправлено автор: cool_rus_killer 16 августа 2007 - 07:03 в SmartBear (AutomatedQA) - Functional Testing

Блин, эта функция не понимает русских символов... :victory: вот гемор.. помогите, люди добрые, я уже в KeyboardLayout полез...



#45430 Вручную Быстрее

Отправлено автор: cool_rus_killer 16 августа 2007 - 05:28 в SmartBear (AutomatedQA) - Functional Testing

... Не подскажешь как можно апгрейдить этот код? :victory:


Уже сам допёр!

// ----------------------------------------------------------------------------- 
// Процедура TypeKeys эмулирует нажатие клавиш, заданных в Text
procedure TypeKeys(Text: string);
var i: integer;
	c: short;
	shift: bool; 
begin
  for i := 1 to Length(Text) do
  begin
	shift := false;
	c := VkKeyScan(Text[i]); 
	if (c shr 8 mod 2 = 1) then
	begin
	  Win32API.keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY, 0);
	  shift := true;
	end;	 
	Win32API.keybd_event(VkKeyScan(Text[i]) and 255,0,0,0);
	if (shift = true) then
	  Win32API.keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);	
	Sleep(1);   // Нужна небольшая задержка, иначе иногда символы пропускаются
  end  
end;

Можно еще и на ALT и CTRL доделать, но, кажется, это не имеет смысла.



#45429 Вручную Быстрее

Отправлено автор: cool_rus_killer 16 августа 2007 - 04:29 в SmartBear (AutomatedQA) - Functional Testing

Да, на видео видел, я бы не сказал, что тормозит так, что невозможно тестить. Так как у многих все работает быстрее(и у меня ТС работает с приложением так быстро, что я не всегда успеваю увидеть что нажимается) я думаю, это связано с особенностью вашего приложения(ну и от части работы ТС). Например, с деревом - на сколько я знаю, дерево - это динамический объект, т.е. при раскрытии какой либо ветки, она создается динамически и, если у вас огромное количество подузлов, то не удивительно, что при работе с таким деревом ТС задумывается. Что с этим делать, подсказать не могу, как мне кажется ничего, ТС работает так, как его сделали =(. Тестите на SilkTest'е раз там не тормозит



SilkTest страшно глючит. У него .net extention иногда не хочет работать.

Кстати, Bog_dan, ты же предлогал методом Win32API.keybd_event вводить текст быстрее?!
Так вот я воспользовался этим методом:

// ----------------------------------------------------------------------------- 
// Процедура TypeKeys эмулирует нажатие клавиш, заданных в Text
procedure TypeKeys(Text: string);
var i: integer;
begin
  for i := 1 to Length(Text) do
  begin
	Win32API.keybd_event(VkKeyScan(Text[i]),0,0,0);
	Sleep(1);   // Нужна небольшая задержка, иначе иногда символы пропускаются
  end  
end;

Так вот, этот метод не понимает разницы, например, между : и ;
Т.е. если в тексте 'd:\aaa', то напечатается 'd;\aaa'
или если '!@#$%', то напечатается '12345'

Не подскажешь как можно апгрейдить этот код? :victory:



#45418 ...click At Point (238, -84) Which Is Out Of Screen

Отправлено автор: cool_rus_killer 15 августа 2007 - 12:43 в SmartBear (AutomatedQA) - Functional Testing

Нашел такое решение данной проблемы:
Вместо ClickItem использовать SelectItem.

Конечно, не совсем то, что хотелось бы, но думаю, если нужно обязательно ClickItem, то можно сначала SelectItem, а потом его же ClickItem.

А вообще хотелось бы понять, почему ClickItem иногда дает сбой! Так что тема открыта. :victory:



#45411 Вручную Быстрее

Отправлено автор: cool_rus_killer 15 августа 2007 - 10:02 в SmartBear (AutomatedQA) - Functional Testing

На счет навигации по дереву: навигация становится тем медленее, чем дальше узел от своего родительского узла (становится заметно, когда родительский узел содержит много (более сотни) подузлов). Не знаю, можно ли с этим что-нибудь поделать :((



#45408 Вручную Быстрее

Отправлено автор: cool_rus_killer 15 августа 2007 - 09:18 в SmartBear (AutomatedQA) - Functional Testing

По поводу медленного набора текста вопрос на форуме уже поднимался. Вот нашел тему - http://software-test...?showtopic=7958. По-моему, были и еще топики, поищите на форуме.


Спасибо за наводку.

Но все-же основной вопрос остается: видели на видео, как происходит навигация по элементам дерева? Из-за чего может так тормозить?



#45405 Вручную Быстрее

Отправлено автор: cool_rus_killer 15 августа 2007 - 08:52 в SmartBear (AutomatedQA) - Functional Testing

Посмотрел ваше видео, могу сказать у меня работает приблизительно с той же скоростью. Как по мне вполне нормальная скорость, при взаимодействии с приложением через GUI.


В SilkTestе все работает гораздо быстрее, окна пролетают - видеть не успеваешь.



#45397 Вручную Быстрее

Отправлено автор: cool_rus_killer 15 августа 2007 - 07:17 в SmartBear (AutomatedQA) - Functional Testing

TestComplete 5.14.523.3
.NET приложение
WinXP SP2 rus
Комп - двухядерный P4 3ГГц, 1 Гб ОЗУ

Зачем он так медленно работает! :crazy:

В настройках тест комплита все задержки (кроме таймаутов) установлены равным нулю.

Посмотрите видео, из него ясно как все это медленно пашет.
Прикрепленный файл  a3.zip   116,4К   98 Количество загрузок:

Тестировал Notebook, все просто летает. Глазом маргнуть не успеваю как окна появляются - исчезают. (только текст все-равно набирается со скоростью примерно 10-20 символов в секунду, хотя что компу стоит набирать 1000 в секунду?!)

Люди добрые, подскажите, плиииз, что за напасть такая... В Object Browsere навигация тоже долго происходит. Нажмешь какой-нибудь объект (окно, к примеру) и ждешь секунды 2-3 (хотя, если погода хорошая, то бывает всего 0,5 секунды ждать приходится). ChildCount процесса 81.
Может ли скорость распознавания объектов зависеть от тестируемого приложения? Может GUI у приложения медленный и поэтому с ним так медленно работает тест?

Вот еще информация, может поможет разобраться.
У главной формы приложения:
Propertyes - около 250 штук
Fields - тоже около 250 штук
Methods - больше 1000 штук
Events - 0.

Кстати, почти у всех окон приложения примерно такое же количество свойств, полей, методов.
Может ли это повлиять на медленность распознавания окон (вновь созданных)? Если да, то что можете посоветовать?

Заранее, всем благодарен.
С уважением, Зиннатуллин Рустам.



#45385 ...click At Point (238, -84) Which Is Out Of Screen

Отправлено автор: cool_rus_killer 14 августа 2007 - 13:14 в SmartBear (AutomatedQA) - Functional Testing

TestComplete 5.14.523.3 demo
WinXP SP2
.NET приложение

Здравствуйте, уважаемые участники форума!

Не понятно по каким причинам иногда при выполнении TreeView.ClickItem(ItemName) выдается сообщение:
There was an attempt to perform a click at point (238, -84) which is out of screen.

Причем ошибка получается примерно в одном из 500 случаев вызова функции.

Привожу код:
procedure AddProp(Name: String);
  var w1 : OleVariant;
  var w2 : OleVariant;
  var w3 : OleVariant;
  var w4 : OleVariant;
begin
  w1 := Aliases.Admin;
  w1.WinFormsObject('BarDockControl', '', 5).WinFormsObject('DockedBarControl', '', 2).Click(18, 8);
  Sleep(200);
  Aliases.Syst.NodeHost.WaitChild('WinFormsObject(''EditEventWizard'')', 10000);
  w2 := Aliases.Syst.NodeHost.EditEventWizard.WinFormsObject('tableLayoutPanel1');
  w3 := w2.panel1.groupBox2.EventInfoStep.WinFormsObject('eventInfoControl1');
  w3.WinFormsObject('textBox1').Keys(Name);
  w3.WinFormsObject('comboBox1').ClickItem('Численный');
  w4 := w3.WinFormsObject('archiveableControl1');
  w4.WinFormsObject('checkBoxArchive').ClickButton;
  w3 := w4.WinFormsObject('numericUpDown1').WinFormsObject('UpDownEdit', '');
  w3.DblClick(15, 7);
  w3.Keys('10');
  w2.tableLayoutPanel2.buttonNext.ClickButton;
  w2 := w1.SplitContainer.SplitterPanel.TreeView;		   //	 <<-- объект TreeView
  w2.ClickItem('|Узел|Объекты узла|nnf4|Свойства|'+Name);
  w2.ExpandItem('|Узел|Объекты узла|nnf4|Свойства|'+Name);
  w2.ClickItem('|Узел|Объекты узла|nnf4|Свойства|'+Name+'|Атрибуты');
  w2.ClickItem('|Узел|Объекты узла|nnf4|Свойства|'+Name+'|Зависимости');
  w2.ClickItem('|Узел|Объекты узла|nnf4|Свойства|'+Name);
  w2.CollapseItem('|Узел|Объекты узла|nnf4|Свойства|'+Name);
  w2.ClickItem('|Узел|Объекты узла|nnf4|Свойства');			   <<----------- Ошибка возникает тут
end;

procedure Main;	 
var i: integer;
begin
  try
	for i := 1 to 100 do
	begin
	  AddProp('bbb'+FormatFloat('00',i));
	end;
  except				
	Log.Error('Exception', ExceptionMessage)
  end;
end;

Список элементов TreeView получается длинным, поэтому при выполнении ClickItem элементы бывают вне зоны видимости, и, возможно, поэтому TestComplete каким-то образом ссылается за границу зоны видимости TreeView.

Баг ли это TestComplete или я чего-то не так делаю?
И еще вопрос в нагрузку :) Почему-то окна долго определяются. Вызов функции Window.WaitWindow занимает обычно одну-две секунды. Т.е., после появления окна, я его вижу 1-2 секунды, и только потом выполняются операции в этом окне. Происходит это всегда.

Буду очень благодарен за ответы.

С уважением, Зиннатуллин Рустам.



#44969 Неясности С Property

Отправлено автор: cool_rus_killer 03 августа 2007 - 06:38 в Портал Software-Testing.Ru

Здравствуйте!

Второй день изучаю SilkTest и не могу польностью разобраться с заданием свойств (property) в скрипте.

Вот такой пример:
[ ] list of string a
		[ ] a = АдминистраторУзел.SplitContainer1.SystemWindowsFormsSplitterP1.SourcesModule.TableLayoutPanel1.ListView1.GetPropertyList()
		[ ] list of string s
		[ ] s = АдминистраторУзел.SplitContainer1.SystemWindowsFormsSplitterP1.SourcesModule.TableLayoutPanel1.ListView1.GetProperty(a[4])

4-й элемент списка a[4] = "Contents"

При выполнении данного кода выходит сообщение
*** Error: Unable find property Contents

Почитав документации немного, подумал, что может нужно знак доллара поставить перед названием. Поставил
...
		[ ] s = АдминистраторУзел.SplitContainer1.SystemWindowsFormsSplitterP1.SourcesModule.TableLayoutPanel1.ListView1.GetProperty("$Contents")
...

И все равно пишет ту же саму ошибку:
*** Error: Unable find property Contents

А куда, спрашивается, делся $ ?

Ниже вышеприведенных строк идет:
[-] АдминистраторУзел.SplitContainer1.SystemWindowsFormsSplitterP1.SourcesModule.TableLayoutPanel1.ListView1.VerifyProperties ({...})
			[ ] 
			[ ] ""
			[-] {...}
				[-] {"Contents",			 [LIST OF STRING] {...}}
					[ ] "A1"
					[ ] "A2"
					[ ] "Obj001"
					[ ] "obj01 from TM03"
					[ ] "Свойства узла"

Причем эта проверка срабатывает нормально, свойство Contents, видимо, обнаруживается.
С чем может быть это связано. Подскажите, пожалуйста.

Заранее, очень благодарен. С уважением, Рустам.