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

Публикации Rumata

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



#52851 WEB testing

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

Вопрос № 2 :)

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


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

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

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



#52854 Вопрос о лицензии на ТестКомплит

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

У меня складывается такое впечатление что я один работаю на крякнутой версии :clapping:



#53004 Создание автотеста софта, до того как этот софт появился

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

Привет Всем!

Есть ли у кого интересные идеи по этому вопросу?

Почему возникла идея написать...

Предложили мне такую штуку сделать, я сначала сказал что это в принципе не реально :)
Потом подумал и возникла идейка как это можно сделать.
идея вот в чём:
по СТПО(спецификация требований к программ обеспечен) пишется методика испытаний(ПиМИ)
Теперь составляю "файл ассоциации" эта такой файл где пишутся имена(собственно придуманные и удобные для звучания :)) предполагаемых кнопок, меток полей и др.
Потом по ПиМИ я составляю ещё один файл "файл сценария", и в нём пишу сценарий тестирования по ПиМИ.
Этот сценарий состоит из этих самых "имён" и пара десятка зарез. слов
И весь смысл того что в идеале когда придёт софт я только должен буду воткнуть в файле ассоциации напротив каждого придуманного имени, полное имя настоящего объетка на интерфейсе. и будет всё работать.
Данная система у меня более менее работает
НО
я на неё угрохал кучу времени
она на самом деле не такая уж замечательная как казалась вначале
:(
Вообщем я почти полностью разуверился в этой "Идее" и работаю с ней только потому что жаль потраченного времени и в этих скриптах неплохой набор процедур...
в принципе система неплохая, но она не окупает главного - того что автоматизация должна занимать меньше времени чем мануальное тестирование...

вот...

Если есть мысли по данному вопросу и по тому как я попытался это решить, скажите.



#53033 Создание автотеста софта, до того как этот софт появился

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

http://www.simplytes...rs/Articles.htm


эт конечно всё интересно, но я с английским не особо дружу чтоб литературу на нём читать :)



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

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

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

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



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

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

Привет!

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

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



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

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

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



#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<остальное имя>

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

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

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

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



#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:

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



#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;



#57727 кодировка текста писем

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

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

тут вот такая чтука делаеться...
отправляю письмо а его текст в кракозябре, причём OUTLOOK тему нормально распознаёт
кракозябрами только текст письма
пробовал сохранять исходники скрипта в ANSI и UTF8, и всё равно такаяже картина :(
подскажите как это можно решить
вот сама процедура:
function SendEmail(mFrom, mTo, mSubject, mBody, mAttach);
var
  i, schema, mConfig, mMessage : OleVariant;
begin
  
  try
	schema := 'http://schemas.microsoft.com/cdo/configuration/';
	mConfig := Sys.OleObject('CDO.Configuration');
	mConfig.Fields.Item(schema + 'sendusing') := 2; // cdoSendUsingPort
	mConfig.Fields.Item(schema + 'smtpserver') := 'бла.бла.бла'; // SMTP server
	mConfig.Fields.Item(schema + 'smtpserverport') := 25; // Port number
	// mConfig.Fields.Item(schema + 'sendusername') := ''; // User name (if needed)
	// mConfig.Fields.Item(schema + 'sendpassword') := ''; // User password (if needed)
	mConfig.Fields.Update();
	
  
	mMessage := Sys.OleObject('CDO.Message');
	mMessage.Configuration := mConfig;
	mMessage.From := mFrom;
	mMessage.To := mTo;
	mMessage.Subject := mSubject;
	mMessage.HTMLBody := mBody;
	for i := 0 to GetCSVCount(mAttach) - 1 do
	  mMessage.AddAttachment(GetCSVItem(mAttach, i));
	mMessage.Send();
	Log.Message('Сообщение отправленно!', 'Адресат - '+mTo, pmNormal, debug_attr );
	Result := True;
  except
	Log.Message('Сообщение не отправленно!', '', pmNormal, error_attr );
	Result := False;
  end;
end;



#57769 кодировка текста писем

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

modbear, спасибо помогло

serpent , правильно мой косяк :) я правда переделал чтоб тело письма было текстовое, т.к. мне это не критично. Ради интереса попробовал передавать хтмл, но максимум чего добился так это,то что если ставлю кои8р в кодировке у меня когда письмо приходит во всплывающей подсказке текст читабельный, а при открытии он опять кракозябрами :(
вот я решил не заморачиваться и передавать "текстовое тело" письма :)



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

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

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

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

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

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

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

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



#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) не работает

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

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