TestComplete - работа на буболечките

По време на работа на скрипта от време на време грешки са длъжни да възникнат, и новодошлия в началото е трудно да се разбере защо е възникнала грешката и как да го поправя. В тази статия ще говорим за общия подход към решаването на такива проблеми в TestComplete и да ви разкажа за най-честите грешки, които могат да причинят проблеми.

Да започнем с един общ въпрос.

Как да се реши проблема?

Да предположим, след началото на теста, можете да получите лог с няколко грешки:

TestComplete - работа на буболечките

Тук ние виждаме три проблеми, които може да са свързани или не може да бъде. Ето защо, винаги трябва да се започне с първия решаване на проблеми. тъй като определянето тя може автоматично да отстрани останалите. От друга страна, не се опитвайте да се коригират грешките по-късно най-вероятно няма да доведе до нищо, така че ние губи времето.

Сега ние се пристъпи към правилното решение на проблема:

  1. Ако съобщение за грешка, за това, което не казвам, кликнете върху него, след като с помощта на мишката и погледнете Забележки борда (в TestComplete 8 и по-късно тя се нарича Допълнителна информация). Обикновено има повече информация за проблема.
  2. Ако на екрана се генерира, когато създавате грешката - да погледнем в него, също (Picture панел).
  3. Ако до сега причината е ясна - кликнете два пъти върху грешката в дневника, в резултат, ще бъдете пренасочени към линията на код, където е възникнал проблемът. Разгледайте внимателно кода и се опитаме да разберем какво точно този код може да доведе до подобна грешка (препратка към несъществуващ прозорец и да се опитате да използвате една необявена променлива, на изхода на границите на масивите и т.н.).
  4. Ако причината все още не е ясно - че е време за отстраняване на грешки. Сложете точка на прекъсване на линията, където е възникнала грешката (за това, което трябва да натиснете F9. Преди това слагам в този ред повече) и да започнете теста. Тест изпълнение ще бъде прекратено и ние ще се възможност внимателно да проучи състоянието на всички обекти в момента:
  • провери, че всички променливи се инициализират и съдържат истинските стойности (акцент върху ценности като нищожно и неопределено., тъй като често те са свързани с проблеми в работата с променлива)
  • проверете дали всички прозорци и контроли, използвани в този ред, има и видими на екрана - свойства скрипт. Съществува. Фокусирани. Видима. VisibleOnScreen (консултирайте се с ръководството на разликата между свойствата Видими и VisibleOnScreen. Ако все още не го знаят)
  • проверете дали наречения метод на обект се поддържа (aqObject.IsSupported)
  1. Ако на този етап не е ясно за вас защо променливите имат следните стойности, и не се очаква да спрете възпроизвеждането и поставете точка на пречупване и преди, след това изпълнете стъпка скрипт по стъпка (изпълни един ред код, можете да използвате клавиша F10 и отидете в самата функция -. С ключ F11).

Какви са грешките?

А сега да разгледаме примери за грешки и техните решения.

Стартирайте теста е спрял, защото спират на грешка (Предупреждение) настройка е активирана

Тази грешка се появява, когато преди това е имало друга грешка и настройките на проекта, определени за спиране на изпълнението на тестове в случай на грешка. Разрешете го съвсем просто:

  1. Отворете свойствата на проекта (щракнете с десния бутон върху името на проекта, Edit - Properties).
  2. Open опции група възпроизвеждане.
  3. Прекъсване на връзката с флагове спирка на грешка / Стоп на предупреждение

Непълно Keyboard Input

  1. Тази грешка обикновено се появява при неправилна последователност от символи, е била прехвърлена на метода на ключове. Метод за ключове герои !. ^.

Тази грешка се появява, ако по време на тестово приложение на екрана се появи модален прозорец, предотвратяване TestComplete'u. Има 2 начина за решаване на този проблем:

  • автоматично: в настройките на проекта в групата за възпроизвеждане TestComplete'u определят варианти за това как да се справят с тези прозорци (близки, кликнете върху фокусиран контрол и т.н.)
  • зададете ръчно манипулатор OnUnexpectedWindow събития. които ясно да предпише необходимите действия.

Вторият метод се използва често в определени случаи с нестандартни прозорци.

Има подобен проблем с припокриващи Windows (припокриващи се прозорци). Разликата между тях е, че Припокриването Window не пречи TestComplete. Те могат да бъдат пренебрегнати (всички в едни и същи настройки на проекта) или обработени с помощта OnUnexpectedWindow събития.

Целта, която сценарият се опитва да работи, не съществува. Ето списък на най-често срещаните причини за тази грешка:

  • неправилна идентификация на обекта (предварително определен набор от качества и техните стойности не съвпада с истинската обекта)
  • променената позиция на обекта в йерархията на обект (по-често при използването на дърво Модел на обекта)
  • не е намерен един от обекта родител (или множество обекти отговарят на описанието на предмета майка)

Решението: с помощта на обект Spy (в TestComplete 7 - Свойства на обект), за да разберете пълното име и новите стойности на свойствата и актуализиране на скриптове или NameMapping.

Не може да се намери обекта

Преди да извършите всяко действие, с който и да е обект (прозорец, управление на процеса), TestComplete първо проверява неговото съществуване. Ако обектът не съществува в грешка дънер се случва «Не може да се намери обекта». Най-често това се случва, ако обектът е възложена на една променлива, а след това самия обект престава да съществува, а сценарият се опитва да работи с променлива (което съответства на вече съществуващи обекти).

Решение: ре-инициализиране на променлива с един и същ обект.

не може да получи прозореца.

Прави се опит за достъп до прозореца или контрола, която не съществува. Най-честата причина е в изписването на заглавието, класа или индекс неправилен артикул.

Отстраняване: коригиране на грешно имота. Това може да се дължи на промени в заявлението се изпитва.

Неопределен Признаване на тестваните обекти

Неясно дефиниране на прозорци: описание прозорец или контрол съответства на няколко обекта. Основните причини може да са две:

  • неправилно избран набор от свойства, използвани за идентифициране на обект (например, те са твърде малки)
  • злоупотреба Група подмяна на знака (заместващи символи, * и?).

Решение: дефиниране на нов набор от качества за уникална идентификация на обекти или да се използва по-малко универсална заместване от символи * и.

Псевдонимът се отнася до картографирани обект, който не е в позиция на NameMapping проект

Alias ​​се отнася до елемент NameMapping несъществуваща. Това може да се случи, ако стоката е била изтрита от NameMapping. но съответния псевдоним остава.

Решението: изтриване на псевдонима и да пренапише скриптове в съответствие с промените.

заключение

Разбира се, всеки проблем трябва да бъде решен по отделно, като причините за всеки отделен случай може да са съвсем различни. Въпреки това, изправени пред няколко пъти с един или друг проблем и да го решите, можете всеки път, когато го направя по-бързо, и в бъдеще ще се напише код, по-малко склонни към такива грешки.

Също така трябва да се отбележи, че в някои случаи, решението може да бъде по-трудно, отколкото в случая, описан тук. Например, ако създадете тестове с помощта на обектно-ориентиран подход с използването на езиковите способности JScript или VBScript. намери причината може да е много по-сложно, тъй като TestComplete не поддържа преходи в метода на кликване в дневника.

Още по-проблематично, може да бъде работа с обекти, които не може да "хване" от обект Spy (например, менюта). В този случай, ще трябва да пиша още малки функции, които ще бъдат в дневника, за да се покаже списък с наличните свойства и методи (като се използват методи и aqObject.GetProperties aqObject.GetMethods).

За да научите повече за TestComplete може да бъде на следващото обучение. където ще разгледа включването на обработка на събития, както и различни параметри TestComplete.

Прочетете повече прочетете за може да се разглежда всички грешки се в официалното ръководство TestComplete (на английски).