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

Публикации Rumata

65 публикаций создано Rumata (учитываются публикации только с 18 июня 2023)



#53425 Экспорт объектов из "Object Browser"

Отправлено автор: Rumata 03 марта 2008 - 06:09 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте!
Подскажите пожалуйста как можно экспортнуть дерево объектов из объектного браузера ТС 5.14

экспорт в любом формате



#55489 доступ к объекту

Отправлено автор: Rumata 17 апреля 2008 - 03:37 в SmartBear (AutomatedQA) - Functional Testing

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

Попробуйте использовать метод WaitProperty:

var metka = <metkaObj>;
 
   metka.WaitProperty("Visible", false, 60000);


попробовал, не получаеться...
вот как сделал:
if (Evaluate(tpm_n_obj+'.WaitProperty(''Visible'', true, 60000)'))and(Evaluate(tpm_n_obj+'.WaitProperty(''enabled'', true, 60000)'))and(Evaluate(tpm_n_obj+'.WaitProperty(''exists'', true, 60000)'))then

если выполняеться то я жду секунду и по новой пытаюсь достучаться

условие всегда выполняеться хотя объекта на портлете нет :yahoo:

у меня теты на виртуальной машине, может это влияет, хотя раньше не замечал ни за чем подобном...



#55333 доступ к объекту

Отправлено автор: Rumata 14 апреля 2008 - 10:44 в SmartBear (AutomatedQA) - Functional Testing

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

Столкнулся с такой штукой, не знаю что делать:

у мня есть web интерфейс написанный на AJAX
так вот там есть портлет на котором я делаю какие либо действия,
итак, я, например, выбираю некоторый пункт списка, нажимаю "переместить", после этого у меня на на портлете появлеться метка с анимацией "пожалуста ждите".
Я в коде проверяю наличие метки таким способом:
sys.refresh;
delay(zdk);
if (метка.exists)and(метка.visible)and(метка..enabled) then
 бла-бла-бла

так вот начало имени объекта(метки) я изменяю добавив метод "Wait" получаеться sys.wait<остальное имя>

проблема в том что когда объект исчезает с портлета скрипт его видит и не делает то что мне надо!

в браузере объектов я смотрел, и там этот объект исчезает как только отработает...

незнаю что за .....

Кто нить встречался с подобным?



#47484 Работа с TreeView

Отправлено автор: Rumata 09 октября 2007 - 08:41 в SmartBear (AutomatedQA) - Functional Testing

delphiscript
TC 5.12
тестируемое приложение на Java

Подскажите как можно вытащить имя текущей ноды из TreeView.
В объектах ничего не отображается.:(
т.е. кликнул по TreeView, определил имя ноды, кликнул в другом TreeView нашел тама ноду с таким же именем.



#49951 фунция Evaluate

Отправлено автор: Rumata 05 декабря 2007 - 04:53 в SmartBear (AutomatedQA) - Functional Testing

что-то я много ерунды в предыдущем посте написал, и все без толку
перепишите свои процедры, заменив их на функции, и тогда смело пользуйтесь функцией Evaluate

вот переделанный пример из хелпа

function PostMessage:boolean;
begin
  Log.Message('Success');
  Result:=true;
end;

procedure TestEval;
begin
  Evaluate('PostMessage');
end;


Спасибо и правда помогло!!!

теперь буду хелпы читать более внимательно :-)



#49912 фунция Evaluate

Отправлено автор: Rumata 04 декабря 2007 - 12:20 в SmartBear (AutomatedQA) - Functional Testing

TC 5.12
delphiscript

Люди подскажите что за ошибка не пойму

У меня есть файл там строка: gen_string(1,1,1,1,1,6)
это есть название процедуры.
Теперь в коде, я вытаскиваю из файла строку, пишу в массив(olevariant),потом из массива обратно в переменную(string)
и хочу выполнить такой код:Evaluate (vv+ ' ;');
vv это у меня переменная где записана строка вышеупомянутая эта строка без evaluate выполняется, я блин всё перепробовавл не знаю почему такое может быть

при попытке выполнения кода лезет ошибка Unable to evaluate : gen_string at Line:1, Char:2.

Помогите пожалуйста решить эту проблему.



#55204 создание собственных типов

Отправлено автор: Rumata 10 апреля 2008 - 06:39 в SmartBear (AutomatedQA) - Functional Testing

Привет!

Подскажите плиз, есть ли возможность создать свой тип в тест комплите 5.14(delphiscript)

мне например нужен массив типа запись



#55235 создание собственных типов

Отправлено автор: Rumata 10 апреля 2008 - 10:16 в SmartBear (AutomatedQA) - Functional Testing

спасибо за советы
я нашел способ сделать по другому.
использую параллельно два массива, в первом массиве имя элемента во втором его значение



#46366 Tc Не Видит Кнопку По Которой Надо Кликнуть

Отправлено автор: Rumata 11 сентября 2007 - 06:17 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте все у меня такая вот ошибка, второй день над ней мучаюсь

Использую TectComplete 5.12.454.7
Тестируемая программа написана на java
язык скрипта Delphi

Суть программы такова, есть удалённые Unix сервера которые чего там делают
Программа же их администрирует

так вот
у меня еся на форме проги кнопка "Отчёты" по клику на ней вылазит маленькое окошко где размещены пять кнопок на различные отчеты.
ошибка вот в чем первые две кнопки сверху кликаются без проблем , третья же не хотит: в логе лезит ошибкаThe window is disabled. The action cannot be executed.

Так вот пробовал вчера первые две процедуры комментировать - не работало, теперь же работает клик по третьей кнопке если нет первых процедур
весь прикол в том что процедуры идентичны почти там просто разные имена кнопок
и по проверке кнопка как бы существует
if Sys.Process('javaw').SwingObject('JDialog', 'Окно отчетов ', -1).SwingObject('JRootPane', '', 0).SwingObject('null.layeredPane').SwingObject('null.contentPane').SwingObject('Box', '', 0).SwingObject('JButton', 'Отчет о перезагрузках прикладного сервера', 2).Exists then
begin
// кликаем по кнопке о выводе отчёта( 3-й с верху)
// кнопку он видит пробуем кликнуть
Log.Message('Кнопка экзистится пробуем кликануть по ней');
Sys.Process('javaw').SwingObject('JDialog', 'Окно отчетов ', -1).SwingObject('JRootPane', '', 0).SwingObject('null.layeredPane').SwingObject('null.contentPane').SwingObject('Box', '', 0).SwingObject('JButton', 'Отчет о перезагрузках прикладного сервера', 2).Click();
t := true;
end

исключение не возникает код рабочий.

и скажите ещё у testcomplita порой глюки лезят , это нормальный режим работы ? :)

пробовал ставить у окна свойсва enabled и focus в true всё равно не работает
refresh тоже не работает

скриншот прилагаю
и полный код скрипта
Помогите пожалуста, или есть у кого нить какие идеи по этому поводу

Прикрепленные файлы




#46392 Tc Не Видит Кнопку По Которой Надо Кликнуть

Отправлено автор: Rumata 11 сентября 2007 - 11:07 в SmartBear (AutomatedQA) - Functional Testing

Пасиб Большое Refresh помог!!!
весь день экспериментировал со всякой лабудой, а так не догадался :)

А насчет ошибок: бывает при одном запуске скрипт отрабатывает а потом нет, еще было рабочие процедуры перестали работать, потом ради эксперимента убрал комментарии на других которые делали совершенно другие действия и всё заработало...



#46651 сокрытие приложения

Отправлено автор: Rumata 18 сентября 2007 - 07:54 в SmartBear (AutomatedQA) - Functional Testing

Как запустить приложение чтобы оно могло теститься(клики по кнопкам, ввод данных) но в тоже время его не было видно пользователю, пусть система будет недоступна но окошки не вылазят



#46656 сокрытие приложения

Отправлено автор: Rumata 18 сентября 2007 - 08:54 в SmartBear (AutomatedQA) - Functional Testing

Да я чего то забыл :)
использую DelphiScript
Win XP
тестируемые приложения (точнее не тестируемые в них я делаю дополнительную обработку данных из за чего их желательно скрыть) :
telnet и notepad



#48941 Пожирание памяти TC

Отправлено автор: Rumata 14 ноября 2007 - 08:44 в SmartBear (AutomatedQA) - Functional Testing

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

На мой взгляд, такая проблема нуждается в исследовании под профайлером. А это могут сделать только разработчики TestComplete. Вам необходимо написать им на support@automatedqa.com и предоставить пример, воспроизводящий проблему (или просто шаги как этого добится без примера). Насколько я знаю их отношение к подобным проблемам, в следующем обновлении её пофиксят.

я переставил тесткомплит и теперь она занимает всего 20 метров памяти :-)
Теперь примерчик не представишь, правда выгружается всё равно долго, когда терпение кончаеться приходиться таск менеджером убивать
А что на support писать "Программа виснет, помогите!"? глупо по моему причину всё равно не определишь...
поэтому буду чуть мучиться... :-)



#48930 Пожирание памяти TC

Отправлено автор: Rumata 14 ноября 2007 - 03:12 в SmartBear (AutomatedQA) - Functional Testing

Люди подскажите пожайлуста почему ТС 5.12 так жрёт ресурсы
При загрузке в памяти занимает сразу же 60метров а после получаса работы 150-200 и файл подкачки раздувается до гига
ничего такого я не делаю: картинки в логи не пишу(чистил логи та же картина).
Первоначально вроде не так было, переставлять придётся что ли?


а как вы проверяете, что он столько отжирает?
вообще в ньюсгруппе было много вопросов по этой теме
то же самое касается "вылетов" и "зависаний" ТК после долгой работы

из того, что я помню по этой теме: был вопрос как и тут: почему ТК жрет столько ресурсов?
один из ответов был такой: на самом деле это проблема Windows Task Manager, и что мол если через полчаса работы, когда ТК сожрал много памяти, перестартовать Таск Менеджер, то можно увидеть, что ТК опять занимает 70-80 мегабайт.

Посоветовать могу лишь перезапускать ТК (если, конечно, вы говорите о росте используемой памяти во время запусков скриптов, а не во время их написания).

Вот несколько ответов от АКуА саппорта (можете и сами поисать в их ньюсгруппе, я искал по слову "memory")

Most probably, the high memory consumption is caused by the large number
of ODT classes and objects created during the script execution.
Have you tried clearing ODT data and classes when they are no longer
needed by the script?


The problem occurs because of the large amount of Load Testing results - all results are stored in memory until the test run is completed.
It is not possible to disable the Load Testing log.

The only solution I can propose is to split the test in parts and run them individually


Hi Support,
When I use Files.Compare function to compare two large binary files (each one is about 400Mb), I got exception "Out of memory while expanding memory stream".
=====
Thank you for reporting the issue. We will try to fix it in one of future versions of the tool (but not in the upcoming update).

In the meantime, I suggest that you use a third-party file comparing utility. You can set up such a utility in TestComplete so that it is used when the Files.Compare method is called. Please see the 'Stores Options Dialog' help topic for details.


I have tracked it down to the very long strings assigned to variables in the editor. Removing those stops the memory leak. Temporarily, I've been reading those values into a variable from a file instead. It does seem to be the long strings in the editor - see the project. Just opening it and starting to edit that code will cause it to start. Then, just open up your windows task manager and watch your swap file usage in the performance tab begin to grow


We think that the problem you faced is caused by a great number of HTML elements located on the tested web page: If their number exceeds 5000, the memory consumption you observe is normal. To check our assumption, please check the value of the page's document.all.ChildCount property in TestComplete


устал...
а там еще много...
короче, в любом случае, там слишком много факторов, которые могут влиять (тип приложения, тип тестирования, наличие/отсутствие виртуальных машин, и т.д.), так что вам надо в саппорт


Да мне в принципе не критично...
Проверял через Таск Менеджер(память жрётся во время написания скриптов)
Конечно если перестартовать TC ресурсы освобождаются, но у меня тс вырубаеться почемуто минут 5
Закрываю свой проект(file --> close), по идее должны ресурсы освободиться(чего не происходит) а затем закрываю сам TC и у меня таск менеджер показывает освобождение памяти медлено-медленно... если за пол минуты высвободиться метров 30, то это уже хорошо, машина вроде не слабая...
Впрочем это всё риторика...
Всегда памяти будет мало, а программы будут подтормаживать...



#48887 Пожирание памяти TC

Отправлено автор: Rumata 13 ноября 2007 - 12:02 в SmartBear (AutomatedQA) - Functional Testing

Люди подскажите пожайлуста почему ТС 5.12 так жрёт ресурсы
При загрузке в памяти занимает сразу же 60метров а после получаса работы 150-200 и файл подкачки раздувается до гига
ничего такого я не делаю: картинки в логи не пишу(чистил логи та же картина).
Первоначально вроде не так было, переставлять придётся что ли?



#47432 Буфер обмена

Отправлено автор: Rumata 08 октября 2007 - 10:36 в SmartBear (AutomatedQA) - Functional Testing

вот как на delphiscript:


AssignFile( fff, 'c:\123.txt' );
try
Rewrite(fff);
Write(fff,Sys.Clipboard);
finally
CloseFile( fff );
end;



#47373 Буфер обмена

Отправлено автор: Rumata 05 октября 2007 - 10:04 в SmartBear (AutomatedQA) - Functional Testing

TC 5.12.454.7
Delphiscript

Привет всем!
Подскажите как можно записать в текстовый файл содержимое буфера.
Мне нужно переписать файл.



#48532 по строковому имени процесса сделать действие

Отправлено автор: Rumata 06 ноября 2007 - 11:15 в SmartBear (AutomatedQA) - Functional Testing

delphiscript
tc 5.12


Привет Всем
Проблема вот в чём:

Есть файл 123.txt
в нём написаны имена процессов:
Sys.Process('calc').Window('SciCalc', 'Калькулятор').Window('Button', 'CE')
Sys.Process('calc').Window('SciCalc', 'Калькулятор').Window('Button', '7')
Sys.Process('calc').Window('SciCalc', 'Калькулятор').Window('Button', '8')
Sys.Process('calc').Window('SciCalc', 'Калькулятор').Window('Button', '9')
и так далее
теперь в скрипте я считываю имена процессов в массив(olevariant)

mass_obj := BuiltIn.CreateVariantArray(1, kk); // присваиваю массиву длину
while not eof(f) do
begin
kk := kk + 1;
readln( f, s);
mass_obj[kk] := s;
end;

потом в другой процедуре пытаюсь кликнуть
l_mass_obj := BuiltIn.CreateVariantArray(1, dl_mass); // присваиваю массиву длину
l_mass_obj := mass_obj;
tpm := l_mass_obj[l_i];
tpm.click();

tc ругается на неизвестное имя click
подскажите пжл как можно сделать то что я хочу



#48591 по строковому имени процесса сделать действие

Отправлено автор: Rumata 07 ноября 2007 - 02:53 в SmartBear (AutomatedQA) - Functional Testing

ОГРОМНОЕ СПАСИБО!!!
РАБОТАЕТ!!!
правда нужно изменить на

Evaluate (arr[i] + '.Click;')


да, в ДелфиСкрипте я не силен, однако. Ну, работает - и отлично


Нет, вы правильно написали, по идее у события "клик" есть параметры, а если их не указывать то можно ставить пустые скобки, но видимо сама функция "Evaluate" чего то там преобразовывает и поэтому потом ругается на эти самые скобки



#48537 по строковому имени процесса сделать действие

Отправлено автор: Rumata 06 ноября 2007 - 12:03 в SmartBear (AutomatedQA) - Functional Testing

delphiscript
tc 5.12
tc ругается на неизвестное имя click
подскажите пжл как можно сделать то что я хочу


т.е. вы пытаетесь из строк сделать объекты?
это, конечно, возможно, но не так, как вы пытаетесь сделать (через VariantArray)

если я правильно понял, задача звучит так: есть текстовый файл, в котором хранятся имена объектов, по которым надо кликать. Хранятся в текстовом виде.

Вам проще сделать так: считать содержимое файла в массив, а затем для каждого элемента массива делать так
допустим, массив строк называется arr

Evaluate (arr[i] + '.Click();')
не уверен, но по-моему знак "+" в делфискрипте означает конкатенацию строк.
Основной момент здесь - это использование функции Evaluate, которая позволяет выполнить любой кусок текста, как код скрипта



ОГРОМНОЕ СПАСИБО!!!
РАБОТАЕТ!!!
правда нужно изменить на
Evaluate (arr[i] + '.Click;')



#52851 WEB testing

Отправлено автор: Rumata 13 февраля 2008 - 10:43 в SmartBear (AutomatedQA) - Functional Testing

Вопрос № 2 :)

При записи тестов все пишеться отлично только вот идет адресация по ячейкам таблиц не веб страницах. страницы такие что места нужных елементов могут меняться. Как можно еще к ним обращаться?


У нас была такая же проблема

Метод Find (даже если бы и помогал) работает так долго что всё преимущество автоматизации убивается
Решения:

1) Писать автотест по строго определённому сценарию, тогда можно хоть как то определить ячейки
2) самый действенный, Просить программистов чтобы они фиксировали имена объектов



#57830 Почему код работает ТАК ?

Отправлено автор: Rumata 27 июня 2008 - 04:54 в SmartBear (AutomatedQA) - Functional Testing

Привет!

А если на потоке ввода взвести свойство AutoFlush? Поток наверняка буферизованый и то что вы в него пишете, скорее всего, какое-то время лежит в буфере.
Например:
Код output.BaseStream.SetLength(100000);

input.AutoFlush := true;

Или вручную дергать метод Flush, после каждой записи в поток.

Возможно, буфер влияет и на поток вывода. Он переполянется и все. Что если у базового потока увеличить длину.
Вот так:
output.BaseStream.SetLength(100000);


не получается

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

Я не совсем понял, а CMD.exe в конце закрывается или нет? Если нет, по попробуйте закрывать его (только корректно) перед попыткой чтения выходного потока.

По поводу необходимости нажатия Enter -- это, наверно, приложение не так отрабатывает нажатия, как CMD. Попробуйте использовать метод Write_10(MyCommand + #13).


смд закрываеться , там ведь есть команда quid
Write_10(MyCommand + #13) не работает

у мня счас немного задача изменилась, необходимый мне вывод данных теперь выводится в файл, так что я только ввожу данные а читаю результат после закрытия цмд из текстового файла.

теперь вот пытаюсь стабилизировать всё что делал...



#57804 Почему код работает ТАК ?

Отправлено автор: Rumata 26 июня 2008 - 11:27 в SmartBear (AutomatedQA) - Functional Testing

вот весь уже скока мучусь, как то криво получается :(((

может кто знает, извлечь данные из цмд?

причем просто перенаправлять не получиться так как я запускаю батник(а он jar-ник) а потом уже общаюсь с ним.

сей час немного прогу переделал, добавил Delay(1000); после каждого writeline, так команды стали выполняться(интересно с какого?) но в выходной поток не все данные пишутся выводит пары десятков строчек лога и всё :(

в чём причина хз

подскажите пожалуста возможные решения



#57687 Почему код работает ТАК ?

Отправлено автор: Rumata 25 июня 2008 - 05:37 в SmartBear (AutomatedQA) - Functional Testing

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

Сейчас делал импорт данных из смд, но столкнулся с проблеммой их вводить :)
так вот данные вводяться прекрасно, пока я незапускаю батник из смд, после данные вводяться как одна строка, но если ввести [Enter], то потом данные опять вводяться в поток нормально, объясните почему такое бывает.

вот процедурина
procedure Main;
   var 
   dir,f : string;
   k : integer;
   p, input, output,cmd;
   begin	
   p := dotNET.System_Diagnostics.Process.zctor();
   p.StartInfo.FileName := 'c:\Windows\System32\cmd.exe';
   p.StartInfo.UseShellExecute := false;
   p.StartInfo.RedirectStandardOutput := True;
   p.StartInfo.RedirectStandardInput := True;
   p.Start;
   f := read_name_install_file;
   k := PosEnd(f);
   dir := copy(f,1,k-1);
   f := copy(f,k+1,length(f)-k);  
   input := p.StandardInput;
   output := p.StandardOutput;
   cmd := Sys.Process('cmd',2).Window('ConsoleWindowClass', '*');
   //cmd.Keys('[Enter]');
   input.WriteLine_11('cd '+dir);
   input.WriteLine_11(f);
   input.WriteLine_11('C:\j2sdk1.4.2_12');
   cmd.Keys('[Enter]'); //без этой строки все команды, начиная с предыдущей, 
		 //объединяються в одну и вводятся как одна
   input.WriteLine_11('C:\Sop\jboss-portal-2.6.1.GA');
   input.WriteLine_11('update');
   input.WriteLine_11('127.0.0.1');
   input.WriteLine_11('quit');
 
   while not p.HasExited do 
	 Delay(1000);
   while not output.EndOfStream do
	 Log.Message(output.ReadLine());
   //dotNET.System_Diagnostics.Process.zctor.
   end;



#57711 Почему код работает ТАК ?

Отправлено автор: Rumata 25 июня 2008 - 09:24 в SmartBear (AutomatedQA) - Functional Testing

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

А можно узнать, что такое 'read_name_install_file' и 'PosEnd'?


процедуры

read_name_install_file - возвращает полное имя файла который я запускаю в цмд

PosEnd -
последнее вхождение символа в строку


вот я переделал немного, правда теперь приходиться ентер жать после каждого ввода команды :friends:
procedure Main;
  var 
  dir,f : string;
  k : integer;
  p, input, output,cmd;
  st : boolean;
  s : string;
  ss : widestring;
  begin 
  opred_form_log;
  file_mame_rez_log := 'Install_server_rezult_log.mht';
  ResultDir := 'C:\NAT_EAR_COPY_RESULTS\';
  ArchiveDir := 'C:\artifakts\';   
  p := dotNET.System_Diagnostics.Process.zctor();
  p.StartInfo.FileName := 'c:\Windows\System32\cmd.exe';
  p.StartInfo.UseShellExecute := false;
  p.StartInfo.RedirectStandardOutput := True;
  p.StartInfo.RedirectStandardInput := True;
  p.Start;
  f := read_name_install_file;
  k := PosEnd('\',f);
  dir := copy(f,1,k-1);  // директория запускаемого батника
  f := copy(f,k+1,length(f)-k); // здесь имя батника который запускаю 
  input := p.StandardInput;
  output := p.StandardOutput;
  cmd := Sys.Process('cmd',2).Window('ConsoleWindowClass', '*'); // вторая запущеная цмд
  input.WriteLine_11('cd '+dir); // переход в директорию батника
  input.WriteLine_11(f); // запуск батника
  // теперь идут запросы батника
  input.WriteLine_11('C:\j2sdk1.4.2_12'); // ввод корня  jsd
  cmd.Keys('[Enter]');					  // эмуляция долбанного ентера
  input.WriteLine_11('C:\Sop\jboss-portal-2.6.1.GA');   // ввод корня  jboss-portal-
  cmd.Keys('[Enter]');				// эмуляция долбанного ентера
  input.WriteLine_11('update');	   // выбор сбособа установки
  cmd.Keys('[Enter]');				// эмуляция долбанного ентера
  input.WriteLine_11('127.0.0.1');	// айпи сервера
  cmd.Keys('[Enter]');				// эмуляция долбанного ентера
  input.WriteLine_11('quit');		 //выход
  st := false;
  Log.Message('3');
  while not p.HasExited do // если еще цмд открыто
	Delay(500);
  ss := '';
  Log.Message('4');
  while not output.EndOfStream do
	begin
	if not(st) then
	  if (pos('INFO  [Server] JBoss ',s)<> 0) and (pos('Started in',s)<> 0) then
		st := true;
	s := output.ReadLine();
	ss := ss+#13+s;	
	end;
  Log.Message('Лог запуска сервера', ss, pmNormal, debug_attr );   
  if st then
	Log.Message('Сервер запущен!', '', pmNormal, debug_attr )  
  else
	Log.Message('Сервер не был запущен!', '', pmNormal, error_attr ); 
  ExportResults(ResultDir + file_mame_rez_log);
  add_results_archive(file_mame_rez_log);
  if st then  
	SendEmail(e-mail, e-mail, 'Логи автоинсталлирования сервера', 'На север была успешно произведена установка обновления'+#13+'Логи во вложении', ArchiveName+'.rar')
  else
	SendEmail(e-mail, e-mail, 'Логи автоинсталлирования сервера', 'Установка обновления на север была не удалась'+#13+'Логи во вложении', ArchiveName+'.rar');
  end;