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

Фотография

[QTP 10] Поломался скрипт


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 EugeneL

EugeneL

    Активный участник

  • Members
  • PipPip
  • 101 сообщений

Отправлено 22 ноября 2011 - 14:58

Внезапно поломался скрипт, добавляющий строки в текстовый файл. Вот код скрипта:

Class  SimpleTextLogger
	
	Private FileInstance
	Private strFilePath
	
	Private Sub Class_Initialize
		Dim fso, currTime, sPrefix

		currTime = Now()
		sPrefix = "" & Year(currTime) & Month(currTime) & Day(currTime) & "_" &_
					 Hour(currTime) & Minute(currTime) & Second(currTime) & "_"

        strFilePath = DataTable("LogFilePath", dtGlobalSheet) & sPrefix &_
						DataTable("LogFileName", dtGlobalSheet) & ".txt"
		

		Set fso = CreateObject("Scripting.FileSystemObject")
		Set FileInstance = fso.CreateTextFile(strFilePath, True)

	End Sub

	Private Sub Class_Terminate
		FileInstance.Close
		AboutLogger

	End Sub

	Public Sub WriteLogLine(strLogInfo)
	Dim strResult
		strResult = Trim( Now() ) & vbTab & strLogInfo
		FileInstance.WriteLine(strResult)

	End Sub

	Private Sub AboutLogger
		MsgBox("Your log is saved in """ & strFilePath & """")

	End Sub

End Class
При вызове метода WriteLogLine("Hello") возникает ошибка "Invalid procedure call or argument". Если скобки убрать, то пишет "Syntax Error". Объект создается в отдельном файле с библиотекой:

Set objTotalReporter = New SimpleTextLogger

Часть логгера, который пишет в Эксель работает нормально. Текстовый же файл создается также, но потом в него не пишутся строки. Никто не сталкивался с такой проблемой? Переустановка QTP не помогла.
  • 0

#2 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 22 ноября 2011 - 21:41

Нужны примеры вызовов, когда лог нормально пишется и когда вдает ошибку.
Процедурам следует передавать параметры без скобок
Вызов происзодит в той же бибиотеке, в которой описан касс логгера? Приведенная ошибка обчно возникает, когда QTP не может найти опредеение вызываемого метода/функции.
  • 0

#3 EugeneL

EugeneL

    Активный участник

  • Members
  • PipPip
  • 101 сообщений

Отправлено 23 ноября 2011 - 07:43

Нашел ошибку более точно: почему-то не хочет писать строки вида

"11/23/2011 10:42:15 AM#Web-link "Мобильные телефоны" found successfully"
"Web-link <Мобильные телефоны> found successfully"
"Web-link Мобильные телефоны found succesfully"

У этой строки отладчик определяет тип "String"
Вместо символа # в строке используется vbTab

Попробовал заменить строки на "Test" -- пишет на ура.

P.S. разобрался окончательно: не пишутся любые строки с использованием кириллицы. В чем может быть проблема?
  • 0

#4 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 23 ноября 2011 - 10:07

P.S. разобрался окончательно: не пишутся любые строки с использованием кириллицы. В чем может быть проблема?

А в чем вы пишете тесты, и где они хранятся, и как запускаются?
Что видно в отладчике, если русскую строку поместить в переменную и значение переменной в отладчике посмотреть в процессе выполнения?
  • 0

#5 EugeneL

EugeneL

    Активный участник

  • Members
  • PipPip
  • 101 сообщений

Отправлено 23 ноября 2011 - 10:43


P.S. разобрался окончательно: не пишутся любые строки с использованием кириллицы. В чем может быть проблема?

А в чем вы пишете тесты, и где они хранятся, и как запускаются?
Что видно в отладчике, если русскую строку поместить в переменную и значение переменной в отладчике посмотреть в процессе выполнения?

Пишу тесты в QTP 10. ОС: Windows XP SP 3. Проблема оказалась в том, что ОС английская без доп. языковых настроек. Соответственно, в отладчике
FileInstance.Writeline "R" отображает Empty, а
FileInstance.Writeline "Я" отображает ошибку, о которой я писал выше

Решил проблему, созданием файла в формате Unicode.

Всем спасибо
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных