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

Публикации Rumata

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



#47462 Как определить был ли создан файл

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

есть идеи, исходника нету :)

варианты:
1) перед запуском программы удалять из папки все XLS файлы, а в нужный момент проверять, что файл с таким расширением появился

2) я так предполагаю, что это какой-то репорт, который генерится при определенных условиях (например, при нажатии на кнопку в приложении). В момент, когда наступают эти условия, можно запомнить время с точностью до минуты и потом проверить, что файл XXXX_YYYYMMDDHHNN**.xls существует. Тут есть один недостаток: допустим, вы запомнили время в момент 11:59:59 и нажали соответствующую кнопку в приложении. Естественно, что файл не будет иметь имя XXX_20071008115959, а будет типа XXX_20071008120030. Еще хуже, если скрипт запомнит время ночью, скажем в 23-59-59/ Там изменится не только время, но и дата

3) ваш вариант с простой проверкой количества файлов не очень удачный, так как в этой папке могут создаваться/удаляться и другие файлы, что повлияет на результат непредсказуемо. То же самое касается проверки даты модификации директории. Если уж и проверять количество, то только файлов формата XXX_YYYY*****.xls

Сам я, когда решал подобную задачу (правда, с помощью СилкТеста, но это не важно), использовал вариант 1+2, т.е. сначала удалял все подобные файлы, потом дожидался, пока текущее время будет HH:NN:01, запоминал эти HH:NN и генерировал репорт, а потом проверял наличие файла XXX_YYYYDDMMHHNN**.xls. У такого варианта есть только один способ свалиться: если запоминаемое время прийдется как раз на 23:59 и файл будет генерироваться больше минуты, что обычно не наблюдается и вообще маловероятно =)


да тоже были похожие мысли
В этой директории файлы никакие другие файлы больше не создаются поэтому ошибок не возникнет
Поэтому самый оптимальный вариант пересчитывать каждый раз количество файлов в директории и по изменившемуся количеству определить создался файл али нет.
Мне в принципе не важно контролировать параметры файла кроме расширения. нужно зафиксировать только то что файл с расширением ".xls" добавился в данную директорию

Только я не знаю как это сделать а время поджимает



#47492 Как определить был ли создан файл

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

Рекомендую почитать вот это надеюсь поможет тут находиться очень хорошее руководство!!!


Спасибо!



#47430 Как определить был ли создан файл

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

delphiscript

Тут опять вопрос появился, может кто что подобное делал?

У меня тестируемое приложение при моих определенных действиях создает в нужной директории файл формата ХХХХХХХХХ_20071008152634.xls

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

Есть у кого нить идеи?
если можно то с исходником



#47491 Как определить был ли создан файл

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

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



Вот, примерчик сделал.

function getNewFiles(path, oldFileList);
var
  i : Integer;
  SearchRec : TSearchRec;
  newFileList;
begin
  SearchRec := TSearchRec;
  i := FindFirst(path, faAnyFile, SearchRec);
  
  newFileList := '';
  while i = 0 do
  begin
	  if Pos(Utilities.LowerCase(SearchRec.Name), Utilities.LowerCase(oldFileList)) = 0 then
	  begin
		  newFileList := newFileList + SearchRec.Name + #13#10;
	  end;
	  i := FindNext(SearchRec);
	end;
  Utilities.FindClose(SearchRec);
  
  Result := Utilities.Trim(newFileList);
end;

procedure Main;
var
  path, fileList, newFileList; 
begin
  path := 'C:\Folder\*.xls';
  fileList := getNewFiles(path, '');
  Log.Message(path, fileList);

  //.. Создать файл
  
  newFileList := getNewFiles(path, fileList);
  Log.Message(path, newFileList);
end;



ОГРОМНОЕ СПАСИБО!!!
Всё получилось!



#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


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



#52629 Текстовый файл

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

можно записать все строки в массив(я делала так) и потом из массива вытаскивала по штуке.
PS (тоже встречалась с такой фигней что не освобождался файл и потом приходилось перегружать ТС - как избавиться на 100 % так не поняла)


классная идея спасибо!!!
счас вот реализую

Сначала перекидываю весь файл в двумерный массив а потом с ним работаю.

Если не я один с этим столкнулся выложу исходники может кому поможет


вот процедура которя пишет в массив
procedure From_file_in_file(file_ : elevariant);
var
fff; // файловая переменная
ks : integer; // количество строк в файле
ks_i : integer; // счётчик
str_f;
begin
if debug then
log.message('DEBUG: Начало процедуры перенесения файла в массив');
if not(fileexists(file_)) then
begin
Fatal_Error('Невозможно найти файл сценария: ',file_);
end;
AssignFile( fff, file_ );
Reset(fff);
// нужно определить размерность массивa
if debug then
log.message('DEBUG: Определяю размерность массива');
ks := 0;
while not(eof(fff)) do
begin
readln(fff,str_f);
ks := ks + 1;
end;
closefile(fff);
Reset(fff);
// создаю массив необходимой размерности
m_file := BuiltIn.CreateVariantArray(1, ks);
//заполняю массив
for ks_i := 1 to ks do
readln(fff,m_file[ks_i]);
closefile(fff);
if debug then
log.message('DEBUG: размерность массива: '+ inttostr(ks));
end;


в коде нужно сделать определ глоб переменную непример q
a потом заменить или делать по аналогии

reset(f) ---> q:=1
s := read(f) ---> s := massiv[q];
s := readln(f) ---> s := massiv[q+1];

вообщем всё просто и сердито :)



#52625 Текстовый файл

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

можно записать все строки в массив(я делала так) и потом из массива вытаскивала по штуке.
PS (тоже встречалась с такой фигней что не освобождался файл и потом приходилось перегружать ТС - как избавиться на 100 % так не поняла)


классная идея спасибо!!!
счас вот реализую

Сначала перекидываю весь файл в двумерный массив а потом с ним работаю.

Если не я один с этим столкнулся выложу исходники может кому поможет



#52631 Текстовый файл

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

ошибочка:
не
s := readln(f) ---> s := massiv[q+1];
а
readln(f,s) ---> s := massiv[q];
q:= q+1;


вот примерно так



#52773 Текстовый файл

Отправлено автор: Rumata 12 февраля 2008 - 05:15 в SmartBear (AutomatedQA) - Functional Testing

С массивом всё работает как швейцарские часы! :dirol:

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



#52622 Текстовый файл

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

Delphi script

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

Столкнулся с такой проблемой: ассоциирую переменную с файлом
AssignFile( f, file_association );
Reset(f);


потом в скрипте у меня выполняются какие то действия по сценарию этого файла
но заморочка в том что у меня может в любой момент чтото отвалиться и файл не закрывается(использую CloseFile( f ); ), а нужно его отредактировать в реальном времени что нельзя сделать так как он заблокирован, приходиться перегружать TC

пробовал try-except, вызовы в критических кусках кода закрытия файла, но не получается отследитьвсе вариаты: либо возникает повторная ошибка закрытия либо файл блокируется

Подскажите как можно закрыть файл в людом случае при любых обстоятельствах.
А возможно ли запихать всё содержимое файла в переменную и работать с ней так же как и с файлом?



#52643 Текстовый файл

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

при работе с массивами очень полезные функции - BuiltIn.VarArrayRedim() и VarArrayHighBound(). Когда точно не известно заранее сколько будет элементов в массиве без них не обойтись


А можно поподробнее насчёт этих функций?


кстати, почему не работает

for ks_i := 1 to ks do
readln(fff,m_file[ks_i]);


приходиться в массив писать через дополнительную строковую переменную
for ks_i := 1 to ks do
begin
readln(fff,qwer);
m_file[ks_i] := qwer;
end;



#48943 Работа с Уникодами

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

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

Насколько я понимаю, в справке написано что TestComplete может работать на 100% валидно только с одним Unicode'вым языком -- тем, который указан в 'Language for non Unicode programs'. Поддержка других языков в этом случае частичная.


Сделал не помогло, и в лог и в приложение(msword) пишет вопросы



#48829 Работа с Уникодами

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

Delphiscript
TC 5.12
Здравствуйте!
Возникла необходимость в тестовых случаях вводить буквы казахского шрифта, в системе он предустановлен.
В TC буквы алфавита вводятся нормально, но после сохранения от букв остаются одни вопросики :(
Тогда я сохранил набор символов в файле(.txt, кодировка UTF-8) и подтягиваю во время выполнения скрипта данные из него в переменную, но в лог опять же выводиться совсем не то да и в тестируемое приложение неизвестно что попадёт.
Подскажите пожайлуста как можно обойти эту проблему.



#48860 Работа с Уникодами

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

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

Вы можете задать для проекта формат хранения скриптов UFT-16. Двойным щелчком по проекту в панели Project Explorer открываете редактор проекта, переходите на закладку Properties и меняете значение свойства 'Character Encoding' в группе опций General.

Также читайте раздел справки 'Support for Unicode'. В нём описано как TestComplete может работать с Unicode.


Спасибо теперь после пересохранения символы остаются, но в helpe ссылки на форум а тама я чего то запутался, поэтому ничего так и выяснил :(



#48932 Работа с Уникодами

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

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

Да нет там вроде никаких ссылок на форум. Вот ветка, в которой вы сможете найти топик, о котором я говорил:

Using TestComplete | Testing With TestComplete | General Information | Support for Unicode

нашёл но не помогло то что там написанно, или я неправильно делаю...



#49105 Работа с Уникодами

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

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

А компьютер перегрузили? Это опция ('Language for non Unicode programs') действует только после перезагрузки компьютера.


Ну конечно! не настолько я же безнадёжен :-)



#52831 Форматированный вывод логов + сохранение лога

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

забыл, я пытался файл удалить Utilities.DeleteFile(FileName);, но видимо ТС файл не освобождал и он не удалялся :(



#52830 Форматированный вывод логов + сохранение лога

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

Delphiscript

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

Подскажите пожалуйста можно ли в лог выводить форматированные данные (жирный шрифт, курсив, цвет)?

И еще как можно сохранить данные лога в файл так чтоб TC не спрашивал "перезаписать файл?"

пробовал так:
procedure ExportResults;
var FileName : OleVariant;
begin
FileName := Project.ConfigPath + 'Log\MyResults.mht';
Log.SaveResultsAs(FileName, 2);
end;



#52837 Форматированный вывод логов + сохранение лога

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

На счет - удаления файла попробуйте установить небольшую задержку после удаления( у меня на разных компах с разной скоростью удаляются файлы - "не моментально") - Builtin.Delay(300); - файл логов обычно большой может дольше удаляться.И только после задержки создавайте файл.


дело не в паузе у меня видимо в прошлый раз когда я пытался сохранить был ТС неправильно настроен, сейчас всё нормально работает и даже архивирует логи



#52835 Форматированный вывод логов + сохранение лога

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

у меня теперь тоже работает, хотя раньше с Utilities.DeleteFile не получалось



#50551 некорректный ввод данных

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

Использую
TC 5.12
delphiscript
тестируется веб интерфейс

Так вот ситуёвина такая у меня переменняя в которой записанно 1q2w!Q@W это пароль, когда я его ввожу в поле ввода пароля, восклицательный знак не вводиться, вводиться только 7 символов.

Кто-нить знает почему такое может быть, вручную всё вводится нормально



#47357 Проверка на наличие процесса

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

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



Прежде всего хочу заметить, что в TestComplete замечательная справочная система. Задокументировано практически все, и при этом очень доступно и с примерами. Это к вопросу о 1000 в вызове метода WaitSwingObject.



А по поводу невозможности найти объект, в скрипте упоминается 12 объектов -- возможно не находится какой-нибудь другой объект. Запостите сюда сообщение об ошибке вместе с содержимым панели Remarks.


Сейчас невозможно показать поиск потому же объекту что я приводил в начале, поэтому я покажу аналогичный пример.
Здесь он просто переходит по ветке ELSE и выводит в лог "нет"

fff : string;
xx, xxx : olevariant;


Sys.Process('TOTALCMD').Window('TTOTAL_CMD', 'Total Commander 6.03a - ISS GmbH Heidelberg', 1).refresh;
sleep(500);
xx := Sys.Process('TOTALCMD').Window('TTOTAL_CMD', 'Total Commander 6.03a - ISS GmbH Heidelberg', 1).Window('TMyPanel', '', 2);
fff := '[_нет_] 15 122 276 КБ из 61 440 560 КБ свободно';
xxx := xx.WaitSwingObject('TMyPanel', fff, 1, 1000);
if xxx.exists then
log.message('есть')
else
log.message('нет');



Параллельно проверял кодом

if Sys.Process('TOTALCMD').Window('TTOTAL_CMD', 'Total Commander 6.03a - ISS GmbH Heidelberg', 1).Window('TMyPanel', '', 2).Window('TMyPanel', '[_нет_] 15 122 276 КБ из 61 440 560 КБ свободно', 1).exists then
log.message('есть 1')
else
log.message('нет 1');

и процесс нормально обнаруживается



#47358 Проверка на наличие процесса

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

Я сам разобрался, нужно было использовать WaitWindow вместо WaitSwingObject



#47268 Проверка на наличие процесса

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

чегото у меня не работает и зачем нужна 1000 в ('DefaultListCellRenderer$UIResource', logName, 0, 1000); ???
не может найти объект


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



Как я понимаю, вам надо проверить существование объекта в приложении, а не процесса. Сделать это можно с помощью метода WaitSwingObject.

logName := '20070918.log.gz';
  w1 := Sys.Process('javaw').SwingObject('JDialog', 'Окно архивирования лог файла', -1).SwingObject('JRootPane', '', 0).SwingObject('null.layeredPane').SwingObject('null.contentPane').SwingObject('LogArchivePanel', '', 0).SwingObject('JPanel', '', 0).SwingObject('JScrollPane', '', 0).SwingObject('JViewport', '', 0).SwingObject('JList', '', 0).AWTObject('CellRendererPane', '', 0);
  w2 := w1.WaitSwingObject('DefaultListCellRenderer$UIResource', logName, 0, 1000);
  if w2.Exists then
	Log.Message('Log file is found')
  else
	Log.Error('Log file is not found');