QTP 9.0: Работа с файлами
#1
Отправлено 06 сентября 2006 - 12:55
Сейчас вся информация о прохождении теста записывается в таблицу Data table (там в основном, цифры, потому удобно).
нужно вытащить таблички из DataTable и дописать в файл, при этом a файл предже добавить текстовую информацию о том, результаты чего приведены ниже.
А вопрос - с чего начать?
Как открыть файл?, как дописать в файл. Какие именно файлы мы можем создавать - только .txt и .Xls?
#2
Отправлено 06 сентября 2006 - 14:31
Появились вопросы:
1. Каким образом осуществлять запись в файл из функции.
В основном скрипте:
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("C:\Work_VSS\QTP 9.0\Activations\test.txt", True)
MyFile.WriteLine("РЕЗУЛЬТАТ РАБОТЫ.")
Получается, в функцию с фобой надо тащить fso, MyFile?
2. Какие другие форматы можно использовать - в txt не очень красиво получается.
#3
Отправлено 06 сентября 2006 - 18:34
A какой формат вам нужен? Текстовый файл это не значит обязательно файл с расширением .txt. .csv или .html это тоже текстовые файлы.2. Какие другие форматы можно использовать - в txt не очень красиво получается.
#4
Отправлено 07 сентября 2006 - 08:44
А можно ли в HTML - файл вставить таблицу из DataTable?
А теги как-то можно использовать?
И первый вопрос? - у меня запись в файл должна осуществляется как из скрипта, там и из функции (вот из функции - получается только тащить переменные) - можно ли как-то иначе?
Можно ли закрывать файл, а потом в функции его открывать и дописывать?
(опять получается - надо создавать объект в каждой функции???)
И еще - как осуществляется перевод строки ?
#5
Отправлено 07 сентября 2006 - 13:31
...
А вопрос - с чего начать?
Как открыть файл?, как дописать в файл. Какие именно файлы мы можем создавать - только .txt и .Xls?
Начинать нужно с постановки задачи.
Сначала нужно определить что нам нужно и для каких целей.
Если Ты пользуешься QTP, то он использует VBScript.
C помощью VBScript мы можем писать
1. В Plain-text файлы (это те, которые можно по Ф3 открыть и не видить там всякий мусор).
Пример:
Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set f = objFileSystemObject.OpenTextFile(log_file_path, forWriting,True)
f.WriteLine "Text...."
Т.е отсюда:
1.1. Мы можем писать *.log, *.txt сходу без нужного там формата данных внутри.
1.2. Мы можем писать и *.html, *.csv, но для этого нужно позаботиться о ФОРМАТЕ данный в файле.
2. В другие файлы посредством OLE объектов.
Пример:
Set ExcellOnj = Sys.GetOleObject("Excel.Application") ' TestComplete sample
3. Другими средствами
#6
Отправлено 07 сентября 2006 - 13:45
Немного разобралась.
Появились вопросы:
1. Каким образом осуществлять запись в файл из функции.
В основном скрипте:
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("C:\Work_VSS\QTP 9.0\Activations\test.txt", True)
MyFile.WriteLine("РЕЗУЛЬТАТ РАБОТЫ.")
Получается, в функцию с фобой надо тащить fso, MyFile?
Во первых, названия файлов и прочее ВЫНОСИМ в отдельные файлы и переменные.
Во вторых, можно передавать объeкт в ф-ю, а можно сам объект сделать глобальным и юзать его (я так делаю в TestComplete)
2. Какие другие форматы можно использовать - в txt не очень красиво получается.
Форматы записи можно использовать разнообразные - как запрограммировать, так и будет писать :)
1. Если тебе в напряг писать красиво в html, то пиши в txt типа
********************** РЕПОРТ**********************
Запись1<символ табулятора> Запись2<символ табулятора>
...
2. А можно и писать красиво. Например, в HTML.
Но тогда тебе прийдеться писать все С ТЕГАМИ. Т.е будет что-то типа
LogToFile("<html>")
LogToFile("<body>")
...
LogToFile("Твои данные")
...
LogToFile("</html>")
LogToFile("</body>")
#7
Отправлено 07 сентября 2006 - 14:33
Я рада приветствовать тебя в форуме!
Так - о чем это мы?
Формат выбран - мне нужно именно форматирование в HTML. попробую, как работает, я уже выводила побные вещи в лог.
А как сделать объект глобальным???
#8
Отправлено 07 сентября 2006 - 14:58
Еще к справке - есть такая штука, как
Set objXMLDoc = CreateObject("Microsoft.XMLDOM") для работы с XML файлами.
В документации MSDN можна найти тучу методов этого объекта и я уверен, что есть и подобное для HTML.
По поводу глобальных переменных, то в TestComplete (а я его использую) переменная есть глобальной, если она не находится в блоке.
Файлы в фреймворке объеденены с помощью
' USEINIT <имя юнита, ф-и которого будут видны >
Лично я хнаню глобальные переменные и константы в ОТДЕЛЬНОМ файле и его подключаю к остальным.
По поводу QTP, то не могу сказать с уверенностью.
Есть два варианта, которые могу предложить:
1. К тесту подключаешь нужные файлы-библиотеки и эта переменная будет в одном из них и, возможно, будет глобальной по отношению к тесту - я не уверен.
2. У самого теста есть СВОИ глобальные переменные - поройся в закладках. К ней там есть свое обращение специальное. Возможно, так можна и объект хранить.
А самый лучшый способ - почитать хелп :)
#9
Отправлено 08 сентября 2006 - 12:46
Сделать объект глобальным несложно. Весь код библиотек кроме функций выполняется во время загрузки библиотеки. Переменные, объявленные в библиотеке как Dim (a не private), являются глобальными. На примере fso
Код бибилиотеки
dim fso set fso=CreateObject("Scripting.FileSystemObject")
теперь объект fso создан, и его можно использовать из тестов (или из других библиотек)
Но лучше не пользоваться глобальными переменными, а пользоваться методами доступа:
Код библиотеки
private fso set i_fso=CreateObject("Scripting.FileSystemObject") function getFSO() set getFSO=i_fso end function
Теперь для получения объекта можно использовать getFSO(). Это безопаснее (так как нет риска случайно уничтожить его).
Теперь, что касается самой задачи. Задача это решается почти каждым программистом автотестов. Я, например, пишу альтернативные логи в HTML . В Knowledge Base есть мой набор библиотек - там все нужные функции есть (правда, Data table я не использую, но это совсем не сложно). Версия, правда, сильно устарела. Я планирую выложить новую версию вместе с документацией, но пока не знаю, когда.
Майк.
#10
Отправлено 12 сентября 2006 - 10:32
В КВ только статьи.... (может, конечно, кто-то плохо ищет).
И еще вопрос - HTML в лог пишу и я (с вашей легкой руки)....
А вот - тот-же HTML - в файл.... - пока не получается.
#11
Отправлено 12 сентября 2006 - 11:10
Правда, это сильно устаревшая версия и без документации - использовать её as is не рекоммендую - лучше просто посмотрите, как это можно сделать, подумайте как это сделать ЛУЧШЕ и сделайте. Я неспешно готовлю новую версию для публикации, но когда это случится, не могу загадывать.
Tanya, так я не понял, в чём у Вас проблема с записью логов в HTML?
Майк.
#12
Отправлено 12 сентября 2006 - 12:52
Мне нужно HTML - во внешний файл.
Сейчас посмотрю ваши библиотеки - может, проблема и решится ;)
#13
Отправлено 18 сентября 2006 - 10:54
Не столь красиво, как у Майка, но все-же. (будет куда стремиться).
библиотеки распаковались, все ок.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных