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

Публикации dguminsk

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



#110053 Хотелось бы понять: в чём причина неудачи

Отправлено автор: dguminsk 21 сентября 2012 - 13:37 в Начинающему тестировщику

Знакомое до боли задание =)))
Если все еще интересует что ,почему и как, пишите в ЛС, все поясню



#109617 Сохранение изображения

Отправлено автор: dguminsk 11 сентября 2012 - 14:40 в SmartBear (AutomatedQA) - Functional Testing

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

картинка маленькая, но просто частично не видна на экране (например, страница проскроллена в другое место)?




#109613 Сохранение изображения

Отправлено автор: dguminsk 11 сентября 2012 - 11:36 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте. Подскажите пожалуйста, каким макаром можно сохранить картинку с web страницы. Путь к объекту известен.
На данном этапе реализовал таким образом:
MyImage = Aliases.firefox.Page("*").Form("aspnetForm").Panel(2).Image("bla-bla-bla").Picture();
MyImage.SaveToFile("C:\\1.jpg");
Все бы хорошо, но столкнулся с проблемой, когда изображение залезает за видимую область, данная часть изображения не скриншотится.
Очень нужна Ваша помощь. Заранее благодарен



#107788 Скриншот случае ошибки

Отправлено автор: dguminsk 19 июля 2012 - 13:20 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте, возможно данный вопрос поднимался, но не нашел.
В тесте бывают ошибки, связанные с ненахождением элемента, например стоит такой if
if (Aliases.firefox.Page(*).Panel(0).Exists)
и вдруг у нас возникает whitepage и поэтому в лог идет ошибка о ненахождении элемента. Так вот вопрос:
Реально ли как-нибудь автоматически делать скриншот окна браузера, если вдруг произошла данная ошибка.
Спасибо

РЕШЕНИЕ:
Все-таки нашел ответ на форуме.
Проще всего в свойствах проекта (правый клик на имени проекта, Edit - Properties) на вкладке Playback поставить галочку Post image on error, тогда в случае ошибки будет создаваться скриншот всего экрана



#104325 Работа с UserForms

Отправлено автор: dguminsk 17 апреля 2012 - 06:26 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте. Прошу Вашей помощи, т.к. все не могу разобраться.
Мне необходимо сделать форму, скажем с 10ю чекбоксами, которые выбирают разные тесты. Все это реализовал, все ок.
Но вот подумалось мне, что необходимо сделать 11й чекбокс, при выборе которого поставяться галочки на все остальные, соответственно при checked false галочки снимуться. Как это реализовать не понимаю. Причем даже логически, т.к. в голове одна идея заключать все в бесконечный цикл и постоянно опрашивать чекбокс. Понимаю, что это глупо, но другого варианта не вижу. Поэтому прошу Вашей подсказки/помощи. Заранее благодарен

Спасибо, помощь уже не нужна. Разобрался с обработчиками событий.


Решение оказалось очень простым, но, вполне возможно не совсем грамотным.
Есть обработчики событий в формах (Events). В одном чекбоксе выбираем Events OnClick и добавляем новый скрипт, в котором и будет идти обработка события.
Мой скрипт выглядит примерно так (На самом деле выглядит жутко, но работает):

function UserForm4_cxCheckBox12_OnMouseEnter(Sender)
{
 if (UserForms.UserForm4.cxCheckBox12.Checked == true){
 UserForms.UserForm4.cxCheckBox1.Checked = true;
 UserForms.UserForm4.cxCheckBox2.Checked = true;
 UserForms.UserForm4.cxCheckBox3.Checked = true;
 UserForms.UserForm4.cxCheckBox4.Checked = true;
 UserForms.UserForm4.cxCheckBox5.Checked = true;
 UserForms.UserForm4.cxCheckBox6.Checked = true;
 }
 else{
 UserForms.UserForm4.cxCheckBox1.Checked = false;
 UserForms.UserForm4.cxCheckBox2.Checked = false; 
 UserForms.UserForm4.cxCheckBox3.Checked = false; 
 UserForms.UserForm4.cxCheckBox4.Checked = false; 
 UserForms.UserForm4.cxCheckBox5.Checked = false; 
 UserForms.UserForm4.cxCheckBox6.Checked = false; 
 }
}



#104450 Работа с UserForms

Отправлено автор: dguminsk 18 апреля 2012 - 08:36 в SmartBear (AutomatedQA) - Functional Testing

Мне кажется, лучше обрабатывать не OnClick/OnMouseEnter, а OnChange.

Также могу предложить более короткий, но чуть менее читабельный код:

var form = UserForms.UserForm4;
var state = form.cxCheckBox12.Checked;
for (var i = 1; i <= 6; i++)
  form["cxCheckBox" + i].Checked = state;

Просто отлично. У меня была идея насчет цикла, но делал неправильно. Делал примерно так:
var di = 1;
var form = UserForms.UserForm4.cxCheckBox12+di.Checked;
 while (di<=10){
 form;
 di++;
}
Но выпадала ошибка. Как я понял из-за несоответствия типов переменных. Крутил-вертел, да и плюнул на это.
Спасибо Вам большое за данный код. Теперь понял как объектные переменные обрабатывать



#106428 Проверка редиректов

Отправлено автор: dguminsk 07 июня 2012 - 08:18 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте. Подскажите пожалуйсте, возможно ли сделать следующую проверку:
есть урл http://test.ru/ и в .htaccess прописаны 301 редиректы.
Т.е. при заходе на http://test.ru/ идет редирект на http://test.ru (в конце без слеша).
Вопрос: Возможно ли как-то проверить прошел ли редирект по средствам ТС? Понятно, что можно сделать ToUrl а потом считать новый урлик и проверить, но дело в том, что необходимо проверить именно код ответа 301! А вот как его проверить, я вообще ума не приложу.
Надеюсь на Вашу помощь, спасибо



#103855 Проверка подключения к интернету

Отправлено автор: dguminsk 10 апреля 2012 - 09:01 в SmartBear (AutomatedQA) - Functional Testing




C WMI возможно стоит разобраться, правда фигово, что там Vbscript. А насчет данного кода (все таки хочется разобраться, и так сказать добить его) Все равно возвращает false. Пробовал только цифры вставлять - все ок, с русским текстом - никак. Возможно кодировки другие?

Ну, если хочется добить, то добивайте http://stackoverflow...lish-characters . Я забыл, что в JS с юникодом не так просто.

А что касается WMI, то я не очень понимаю в чем проблема. Если не знаете как им пользоваться, то найдите любой пример на JS и просто подставьте в него нужный запрос. Это будет самое надежное и быстрое решение.

Не серчайте пожалуйста, но с WMI что-то очень тяжко. Я немного не улавливаю логику (видимо не вспался + еще только начинаю разбираться в программинге) но тут такой момент, нашел пример, поштудировал хелп и собрал примерно такую солянку, как на скриншоте. Но отказывается работать. Дайте пожалуйста хотя бы намек, либо примерно готовый вариант. Хочется реально разобраться. Спасибо


Все, разобрался, прошу у всех прощения за отобранное время. Спасибо за помощь.
Все дело в InstanceOf! (точно не выспался). Необходимо использовать ExecQuery.
Вот тебе называется и собрал солянку.
Если я правильно понял, то возвращаемое значение 0 в лог означает - норм. пинг?

Кстати мало ли кому пригодится код:
function Ping(host)
{
var wmi = GetObject("Winmgmts:");
var eStatus = new Enumerator(wmi.ExecQuery("Select StatusCode from Win32_PingStatus Where Address='" + host + "'"));
   if (eStatus.item().StatusCode == 0){
   Log.Message("Internet OK");
   }
   else{
   Log.Message("Internet Isn't OK");
   }
}

function Test()
{
  Ping("ya.ru")
} 



#103854 Проверка подключения к интернету

Отправлено автор: dguminsk 10 апреля 2012 - 08:56 в SmartBear (AutomatedQA) - Functional Testing



C WMI возможно стоит разобраться, правда фигово, что там Vbscript. А насчет данного кода (все таки хочется разобраться, и так сказать добить его) Все равно возвращает false. Пробовал только цифры вставлять - все ок, с русским текстом - никак. Возможно кодировки другие?

Ну, если хочется добить, то добивайте http://stackoverflow...lish-characters . Я забыл, что в JS с юникодом не так просто.

А что касается WMI, то я не очень понимаю в чем проблема. Если не знаете как им пользоваться, то найдите любой пример на JS и просто подставьте в него нужный запрос. Это будет самое надежное и быстрое решение.

Не серчайте пожалуйста, но с WMI что-то очень тяжко. Я немного не улавливаю логику (видимо не вспался + еще только начинаю разбираться в программинге) но тут такой момент, нашел пример, поштудировал хелп и собрал примерно такую солянку, как на скриншоте. Но отказывается работать. Дайте пожалуйста хотя бы намек, либо примерно готовый вариант. Хочется реально разобраться. Спасибо

Прикрепленные изображения

  • 123.jpg



#103749 Проверка подключения к интернету

Отправлено автор: dguminsk 09 апреля 2012 - 07:53 в SmartBear (AutomatedQA) - Functional Testing

Еще раз Здравствуйте.
Задался себе вопросом - а как лучше всего организовать проверку подключения к интернету по средствам TC?
Данным инструментом провожу функциональное тестирование веб-страницы. так вопрос стоит в том, чтобы самым первым делом в тесте шла проверка на наличие интернета. Т.е. если проверка провалилась, тест дальше не шел.
В голове есть вариант (и он на данный момент реализован): Переход на определенный урл (скажем яндекс) и проверка по какому-нибудь элементу, скажем по caption окна браузера. Но тут тоже проверку не всегда можно назвать правдивой - ведь может и кэпшн поменяться и например сайт яндекса ляжет и т.д.
Поделитесь пожалуйста своими умными мыслями по данному поводу.
Спасибо



#103794 Проверка подключения к интернету

Отправлено автор: dguminsk 09 апреля 2012 - 14:49 в SmartBear (AutomatedQA) - Functional Testing

Про пинг теоритически понятно, а вот как это будет выглядеть на практике?
Я просто не представляю как это реализовать. запустить cmd команду на пинг из TC смогу, а вот как получить результат пинга и как его обработать?!



#103844 Проверка подключения к интернету

Отправлено автор: dguminsk 10 апреля 2012 - 07:37 в SmartBear (AutomatedQA) - Functional Testing




Про пинг теоритически понятно, а вот как это будет выглядеть на практике?
Я просто не представляю как это реализовать. запустить cmd команду на пинг из TC смогу, а вот как получить результат пинга и как его обработать?!


Хотя... вот красивый вариант по факу:
function isConnectionUp(){
  var shell = new ActiveXObject("WScript.Shell");
  var WshShellObj = new ActiveXObject("WScript.Shell");
  var WshShellExecObj = WshShellObj.Exec("cmd.exe");
 
  readTillChar(WshShellExecObj, ">");
 
  WshShellExecObj.StdIn.Write("ping ya.ru\n");
  var out = readTillChar(WshShellExecObj, ">");

  var lostPattern = /.*Lost = 0.*/;
  return lostPattern.test(out);
}

function readTillChar(WshShellExecObj, endChar){
  var out = "";
  var curChar;
  while (!WshShellExecObj.StdOut.AtEndOfStream)
  {
   curChar = WshShellExecObj.StdOut.Read(1);
   out += curChar;
   if (curChar == endChar) break;
  }
  return out;
}

function test(){
  Log.Message(isConnectionUp());  
}


Странно, просто скопировал данный пример и вставил в проект. запустил и всегда возвращает false

Если у вас локаль не английская, то паттерн "Lost = 0" надо заменить на локализованный.

До, Вы правы, русская версия винды. Но вот теперь возникает следующий вопрос - Вместо Lost=0 пишет потеряно = 0. Но русские символы в данную строчку кода не катят. Что-то я совсем невнимательный и не могу разобраться в чем дело

Прикрепленные изображения

  • Image123.jpg



#103835 Проверка подключения к интернету

Отправлено автор: dguminsk 10 апреля 2012 - 06:25 в SmartBear (AutomatedQA) - Functional Testing


Про пинг теоритически понятно, а вот как это будет выглядеть на практике?
Я просто не представляю как это реализовать. запустить cmd команду на пинг из TC смогу, а вот как получить результат пинга и как его обработать?!


Хотя... вот красивый вариант по факу:
function isConnectionUp(){
  var shell = new ActiveXObject("WScript.Shell");
  var WshShellObj = new ActiveXObject("WScript.Shell");
  var WshShellExecObj = WshShellObj.Exec("cmd.exe");
 
  readTillChar(WshShellExecObj, ">");
 
  WshShellExecObj.StdIn.Write("ping ya.ru\n");
  var out = readTillChar(WshShellExecObj, ">");

  var lostPattern = /.*Lost = 0.*/;
  return lostPattern.test(out);
}

function readTillChar(WshShellExecObj, endChar){
  var out = "";
  var curChar;
  while (!WshShellExecObj.StdOut.AtEndOfStream)
  {
   curChar = WshShellExecObj.StdOut.Read(1);
   out += curChar;
   if (curChar == endChar) break;
  }
  return out;
}

function test(){
  Log.Message(isConnectionUp());  
}


Странно, просто скопировал данный пример и вставил в проект. запустил и всегда возвращает false



#103847 Проверка подключения к интернету

Отправлено автор: dguminsk 10 апреля 2012 - 07:52 в SmartBear (AutomatedQA) - Functional Testing



До, Вы правы, русская версия винды. Но вот теперь возникает следующий вопрос - Вместо Lost=0 пишет потеряно = 0. Но русские символы в данную строчку кода не катят. Что-то я совсем невнимательный и не могу разобраться в чем дело

var lostPattern = new RegExp(".*потеряно = 0.*")

А вообще выше предложили вариант с WMI, который куда как лучше.

C WMI возможно стоит разобраться, правда фигово, что там Vbscript. А насчет данного кода (все таки хочется разобраться, и так сказать добить его) Все равно возвращает false. Пробовал только цифры вставлять - все ок, с русским текстом - никак. Возможно кодировки другие?

Прикрепленные изображения

  • Image1233.jpg



#106767 Постоянно выходит задержка выполнения скрипта в testcomplete 7.

Отправлено автор: dguminsk 15 июня 2012 - 13:55 в SmartBear (AutomatedQA) - Functional Testing


Какое значение параметра "Auto-wait timeout, ms:" установлено в свойствах проекта в разделе "PlayBack" ?

Там стоит значение 10000 мс, так что это, получается, другой параметр.

Исходя из документации, сообщение: Delays the script execution for * milliseconds выводится при использовании aqUtils.Delay в коде. Таймаут отображается по другому. Возможно где-то в коде стоят данные дилеи, посмотрите внимательно, если нет, то будем тогда еще думать)



#106692 Ошибка

Отправлено автор: dguminsk 14 июня 2012 - 11:58 в SmartBear (AutomatedQA) - Functional Testing

Буду очень благодарен если подскажете, что за ошибка?
RecordIndex out of Range
Выскакивает после прохождения теста в 99 процентов случаев. Тесты проходят на отлично. В чем дело, не могу понять. Появилось буквально с неделю назад, до этого все было замечательно. скрин с ошибкой прикладываю.
Большое спасибо за помощь

Прикрепленные изображения

  • Screen.jpg



#106700 Ошибка

Отправлено автор: dguminsk 14 июня 2012 - 13:11 в SmartBear (AutomatedQA) - Functional Testing


Буду очень благодарен если подскажете, что за ошибка?
RecordIndex out of Range
Выскакивает после прохождения теста в 99 процентов случаев. Тесты проходят на отлично. В чем дело, не могу понять. Появилось буквально с неделю назад, до этого все было замечательно. скрин с ошибкой прикладываю.
Большое спасибо за помощь

нашел в хелпе:http://community.smartbear.com/forum/post/?mode=singleThread&thread=93235def-1065-4746-93ae-934d87ed5ff4
может поможет

хм.. Сделал следующее - подчистую удалил все логи из тест сьюта (было около 700 папок с логами) и сейчас все нормально. Возможно это связано с переполнением папки логов.



#104614 Отключить автодополнение (ala intellisense)

Отправлено автор: dguminsk 20 апреля 2012 - 07:41 в SmartBear (AutomatedQA) - Functional Testing

Уважаемые,
эта фича со всплывающей подсказкой, появляющаяся после каждой точки, сильно мешает.
Каким образом ее настроить что бы вызывалась исключительно по моему хотению?

tools/options/panel/code editor/editing/Auto Pop-up
отключаешь и будет тебе счастье =)



#104615 Отключить автодополнение (ala intellisense)

Отправлено автор: dguminsk 20 апреля 2012 - 07:44 в SmartBear (AutomatedQA) - Functional Testing


Уважаемые,
эта фича со всплывающей подсказкой, появляющаяся после каждой точки, сильно мешает.
Каким образом ее настроить что бы вызывалась исключительно по моему хотению?

tools/options/panel/code editor/editing/Auto Pop-up
отключаешь и будет тебе счастье =)

Ах да, забыл добавить - когда отключена опция данная, то в любой момент можешь вызвать, нажав ctrl+space



#106941 Как получить часть пути объекта?

Отправлено автор: dguminsk 21 июня 2012 - 09:43 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте. Надеюсь на вашу помощь.
Скажем есть 2 объекта.
Путь к первому: Aliases.firefox.Page("*").Panel(0).Cell(1, 6).Link(0) - данный объект мы находим через FindChild и получаем его путь
Путь ко второму: Aliases.firefox.Page("*").Panel(0).Cell(2, 6).Link(0) - Путь к этому объекту необходимо составить вручную, выдрав значение Cell(1, 6) и изменив в нем первую цифру на заведомо известную
Сразу оговорюсь, что путь к первому может меняться (меняться именно вторая цифра значения Cell, первая стационарная.
Как это осуществить?

Надеюсь я нормально объяснил.
Спасибо



#106947 Как получить часть пути объекта?

Отправлено автор: dguminsk 21 июня 2012 - 11:40 в SmartBear (AutomatedQA) - Functional Testing

Может, так?

var colIdx = obj1.Parent.ColumnIndex;
var obj2 = obj1.Parent.Parent.Cell(2, colIdx).Link(0);
 

Спасибо, то, что надо!



#106992 Как получить часть пути объекта?

Отправлено автор: dguminsk 22 июня 2012 - 09:51 в SmartBear (AutomatedQA) - Functional Testing


Здравствуйте. Надеюсь на вашу помощь.
Скажем есть 2 объекта.
Путь к первому: Aliases.firefox.Page("*").Panel(0).Cell(1, 6).Link(0) - данный объект мы находим через FindChild и получаем его путь
Путь ко второму: Aliases.firefox.Page("*").Panel(0).Cell(2, 6).Link(0) - Путь к этому объекту необходимо составить вручную, выдрав значение Cell(1, 6) и изменив в нем первую цифру на заведомо известную
Сразу оговорюсь, что путь к первому может меняться (меняться именно вторая цифра значения Cell, первая стационарная.
Как это осуществить?

Надеюсь я нормально объяснил.
Спасибо

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

мдааааа.... спасибо большое. Сейчас почитал про ТЭГ модель и понял, что все мои наработанные тесты, могли бы быть намного проще =)))) Честно сказать, даже не задумывался об этом, стандартом tree стояло, так я так и разрабатывал. Тогда возникает след. вопрос - а реально менять модель внутри скрипта?



#107001 Как получить часть пути объекта?

Отправлено автор: dguminsk 22 июня 2012 - 12:29 в SmartBear (AutomatedQA) - Functional Testing

а реально менять модель внутри скрипта?

Options.Web.TreeModel = "Tag";

Но если вы планируете переходить на TC9, то Tag-модель не стоит использовать, т.к. она там deprecated, и для нее не работают кросс-браузерные плюшки.

Спасибо всем большое, очень помогли. На ТС9 ближайшие пол года-год перехода точно не будет, поэтому буду писать.



#110365 Как нажать кнопку [Down] n раз

Отправлено автор: dguminsk 27 сентября 2012 - 13:15 в SmartBear (AutomatedQA) - Functional Testing

Доброго времени суток.
Собственно вопрос: есть цикл в котором нужно нажать например кнопку [Down] n раз, при чем значение n наращивается. Можно как то это сделать?

Если я правильно понял ваш вопрос, то код примерно такой:

var a, count = 1;
//Ваш цикл
while(true) {
 a = 0;
  //Цикл для нажатия на кнопку
  while (a < count){ 
   Sys.Keys("[Down]");
   a++;
  }
 count++;
}
И все конечно же зависит от вашего объекта. Т.е. если например вы хотите делать нажатия в своем приложении, тогда метод Keys надо писать как-то так:
NameMapping.Sys.Process("notepad").bla-bla-bla.Keys("[Down]");



#105810 Использование массивов

Отправлено автор: dguminsk 21 мая 2012 - 15:02 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте. Требуется Ваша помощь. Суть задачи:
Необходимо создать массив, в который, в зависимости от параметров будут заноситься различные элементы, скажем day, year, month и т.д.
Данный массив необходим как бы проектный, чтобы был к нему доступ из других скриптов.
Подскажите пожалуйста, как это все реализовать. Использую jscript.

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