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

Фотография

Тестирование На Silktest I Need Help


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

#1 Dmitriy_MDV

Dmitriy_MDV

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 17 августа 2007 - 07:50

Я тестируя вин. приложение наткнулся на следующую проблему:
у меня есть таблица с данными силк ее описывает как ListView но мне необходимо вводить данные в эту таблицу
стандартными методами это сделать невозможно.Подскажите пожалуйста что мне лучше сделать.
Я сделал следующим образом :
написал новый метод который вначале SetFokus на ListView
затем через TypeKeys нахожу нужную ячейку и посредствам все того же TypeKeys ввожу данные
Данный метод работает очень медленно так как размеры таблицы велики и необходимо проверить много калькуляций.
Я уверен что есть возможность все это сделать красивее чем сделал я, и что все работать будет быстрее.
  • 0

#2 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 17 августа 2007 - 08:29

Я тестируя вин. приложение наткнулся на следующую проблему:
у меня есть таблица с данными силк ее описывает как ListView но мне необходимо вводить данные в эту таблицу
стандартными методами это сделать невозможно.Подскажите пожалуйста что мне лучше сделать.
Я сделал следующим образом :
написал новый метод который вначале SetFokus на ListView
затем через TypeKeys нахожу нужную ячейку и посредствам все того же TypeKeys ввожу данные
Данный метод работает очень медленно так как размеры таблицы велики и необходимо проверить много калькуляций.
Я уверен что есть возможность все это сделать красивее чем сделал я, и что все работать будет быстрее.

У ListView есть метод Select, который позволяет выбрать нужный элемент. При необходимости есть DoubleSelect метод, который выбирает элемент двойным кликом. Уже выбрав этот элемент можно пробовать комбинации клавиш.

ЗЫ: На всякий: тут есть подфорум, как раз для вопросов по СилкТесту и у нужных людей настроены нотификации именно на данный подфорум. Поэтому, если вы хотите в будущем задавать вопросы по Силку и получить на них ответы (оперативно), то это будет куда более реально, если вы воспользуетесь последним советом
  • 0

#3 Dmitriy_MDV

Dmitriy_MDV

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 17 августа 2007 - 09:53

Метод Select выбирает не элемент в ListView а выбирает строку по номеру и можно смотреть только по строчно
Мне Select реально неудобен так как у меня более 300 столбцов.

Напиши плиз где идет обсуждение вопросов связанных с SilkTest-ом буду благодарен
  • 0

#4 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 17 августа 2007 - 10:19

Метод Select выбирает не элемент в ListView а выбирает строку по номеру и можно смотреть только по строчно
Мне Select реально неудобен так как у меня более 300 столбцов.

Select-у можно передавать и строку-содержимое списка. Факт, что это универсальный метод работы с ListView. Если много столбцов, то можно попробовать задействовать метод FindItem и передать шаблон, напрмиер "*test*" и метод вернет индекс первого элемента, который попался в списке, удовлетворяющий шаблону. А полученный индекс уже можно использовать как параметр для Select


Напиши плиз где идет обсуждение вопросов связанных с SilkTest-ом буду благодарен

Да вот здесь же подфорум есть.
http://software-test...hp?showforum=32
  • 0

#5 Dmitriy_MDV

Dmitriy_MDV

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 18 августа 2007 - 09:50

Всетаки меня до сих пор волнует вопрос есть ли возможность записи в элемент ListView? Метод Select хоть и классический но, на сколько я знаю, записывать с помощью него ,если возможно, то очень тяжело.
  • 0

#6 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 18 августа 2007 - 12:26

Всетаки меня до сих пор волнует вопрос есть ли возможность записи в элемент ListView? Метод Select хоть и классический но, на сколько я знаю, записывать с помощью него ,если возможно, то очень тяжело.

Select - это выбор нужного элемента. А дальше уже используйте клавиатурный ввод, чтобы как-то вписать текст в поле. То есть это просто итбрасывает необходимость с помощью TypeKeys выбирать элемент, что ускоряет время выполнения.
  • 0

#7 Dmitriy_MDV

Dmitriy_MDV

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 22 августа 2007 - 17:43

Еще возник у меня очень интересный вопрос :
мне надо передать в функцию несколько переменных в часности list of string
например func (in string Name, in list of string Friends,in list of string Family, string date )
и ввод такого типа неполучается func("Name",{"bob","kate"},{"mather","father"},"01.01.05")
пробовал подругому не получается.
Help please
  • 0

#8 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 22 августа 2007 - 18:10

Еще возник у меня очень интересный вопрос :
мне надо передать в функцию несколько переменных в часности list of string
например func (in string Name, in list of string Friends,in list of string Family, string date )
и ввод такого типа неполучается func("Name",{"bob","kate"},{"mather","father"},"01.01.05")
пробовал подругому не получается.
Help please

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

[+] test( STRING sValue, LIST OF STRING lsValue1, LIST OF STRING lsValue2, STRING sDate )
				[ ] Print( sValue )
				[ ] ListPrint(lsValue1)
				[ ] ListPrint(lsValue2)
				[ ] Print(sDate)
[ ] 
[+] main()
				[ ] test("Name",{"1","22"},{"22222","32123"},"01.05.07")
И он вполне рабочий. Может он выполняет не то, что вы ожидали? Так проблема тогда в чем-то другом
  • 0

#9 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 27 августа 2007 - 13:06

А там нет включения в строку при помощи фигурных скобок ?
например вот тут 1я строка отработает, а вторая - даже не скомпилируется изза этого :
[ ] Print (Val({"a"}[1]))
[ ] Print (" {Val({"a"}[1])} ")
  • 0

#10 Dmitriy_MDV

Dmitriy_MDV

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 28 августа 2007 - 16:10

Помогите еще в одном вопросе
необходимо зациклить main в котором находится некоторое количество testcase
и передовать в main значения
И еще если несложно как сделать чтобы силк записывал результаты в файл txt
  • 0

#11 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 28 августа 2007 - 21:25

Помогите еще в одном вопросе
необходимо зациклить main в котором находится некоторое количество testcase
и передовать в main значения

Main - это функция, которая является по совместительству точкой входа программы с наивысшим приоритетом. Короче говоря, если ее и может кто зациклить, то только сама же функция main, если грамотно воспользоваться рекурсией. Но я бы не рекомендовал бы этого делать. Лучше создайте какую-то другую функцию с нужными параметрами, поместите туда нужные вам тесткейсы и уже зацикливайте ее прямо в main-e. Как минимум, это куда более разумно

И еще если несложно как сделать чтобы силк записывал результаты в файл txt

Вам сюда по данному вопросу
  • 0

#12 Dmitriy_MDV

Dmitriy_MDV

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 30 августа 2007 - 08:31

Спасибо за помощь :clapping:
Есть ли возможность делать большие коменты как в си /* */ ???
  • 0

#13 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 30 августа 2007 - 09:15

Спасибо за помощь :clapping:
Есть ли возможность делать большие коменты как в си /* */ ???

Нет, таких комментов там нет. Можно выделить блок кода и последовательно нажать Alt + L + M. Такой хоткей позволит закомментировать выделенный блок. Хоткей Alt + L + N выделенный блок раскомментирует.
  • 0

#14 Dmitriy_MDV

Dmitriy_MDV

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 05 сентября 2007 - 14:25

В силктесте есть возможность останавливать (делать паузу ) во время его работы ?
  • 0

#15 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 05 сентября 2007 - 14:41

В силктесте есть возможность останавливать (делать паузу ) во время его работы ?

Такой возможности нет. Можно только прекращать выполнение. Единственной альтернативой для выполнения данной операции может быть вызов метода Agent.DisplayMessage в нужном месте программы. Эта инструкция вызовет появление сообщения, при этом выполнение приостановится до тех пор, пока не будет нажата кнопка ОК. Но это только для остановки в определенном месте выполнения скрипта
  • 0

#16 Genka

Genka

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

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 05 сентября 2007 - 14:42

Еще есть возможность останавливать с помощью breakpoint'ов в Debug режиме
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#17 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 05 сентября 2007 - 14:48

Еще есть возможность останавливать с помощью breakpoint'ов в Debug режиме

Ну это уже как обходной вариант, если такие паузы нужны именно для отладки. А то попадались "читеры", которые запускали скрипты до определенного места в коде, а затем, пользуясь паузой, корректировали приложение и возобновляли выполнение. Вот в этом случае в Debug режим можно и не переключаться
  • 0

#18 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 10 сентября 2007 - 13:00

В силктесте есть возможность останавливать (делать паузу ) во время его работы ?

Такой возможности нет. Можно только прекращать выполнение. Единственной альтернативой для выполнения данной операции может быть вызов метода Agent.DisplayMessage в нужном месте программы. Эта инструкция вызовет появление сообщения, при этом выполнение приостановится до тех пор, пока не будет нажата кнопка ОК. Но это только для остановки в определенном месте выполнения скрипта

главное, чтобы активным в это время какое-нить бесполезное окно, а то агент над ним вызовет появление модального окошка, которое не даст вам ничего сделать с этим окном :acute:
  • 0

#19 Dmitriy_MDV

Dmitriy_MDV

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 17 сентября 2007 - 12:08

Можно ли с помощью силк теста на окне искать кнопки или надписи если они не описаны в фрейме ?
  • 0

#20 Genka

Genka

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

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 17 сентября 2007 - 12:55

Можно ли с помощью силк теста на окне искать кнопки или надписи если они не описаны в фрейме ?


можно, вот пример для окна Калькулятора. В нем не описано ни одного контрола, жмутся кнопки 1,2 и 3. Если в массив добавить другие кепшены, то они тоже будут нажиматься
window MainWin wCalc
	tag "Calculator"

main()
	Print("Pressing buttons 1, 2 and 3 which are not declared")
	
	INTEGER i, j
	LIST OF WINDOW lw = wCalc.GetChildren()
	LIST OF STRING ls = {"1", "2", "3"}
	wCalc.SetActive ()
	for i = 1 to ListCount(lw)
		if(ClassOf(lw[i]) == PushButton)
			for j = 1 to ListCount(ls)
				if(lw[i].sCaption == ls[j])
					lw[i].Click()
					break

а можно и еще проще

for i = 1 to ListCount(ls)
		if(wCalc.PushButton(ls[i]).Exists())
			wCalc.PushButton(ls[i]).Click()
		else
			LogWarning("Button with caption {ls[i]} not found")

ЗЫ: лучше бы вы этот вопрос в отдельную тему вынесли имхо
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest



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

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