В рамках проекта используется следующий подход:
1. Для тестирования приложения были реализованы повторно используемые шаги, которые реализуют выполнение некоторой законченной бизнес функции. Данные шаги выполнены в виде отдельных тестов и подключаются к тесту, используя принцип external actions (Action properties->Insert call to existing);
2. Тесты состоят из двух actions: Action1 (тело теста) и ActionsList. В ActionsList есть только вызовы внешних шагов для того, чтобы не терялась связь с этими шагами (т.е., по сути именно в этом Action выполняется Insert Call to existing).
3. В теле теста вызов шагов реализован с использованием функции Eval:
Eval("RunAction(""" & strActionName & """, oneIteration, " & strParamString & ")")
Где:
strActionName = Action1 [Логин]
strParamString = "NAME_0000000000125774","1",ActionResult
Конечная строка для Eval имеет вид:
RunAction("Action1 [Логин]", oneIteration, "NAME_0000000000125774","1",ActionResult)
4. ActionsList является не Reusable и имеет вид:
RunAction "Action1 [Логин]", oneIteration RunAction "Action1 [Открыть пункт меню]", oneIteration RunAction "Action1 [Открыть операцию]", oneIteration
5. Для хранения объектов приложения используются shared object repositories, которые хранятся в QC в модуле Resources. Соответственно, каждый шаг имеет ссылку на нужный репозиторий в Action properties.
В результате при выполнении тестов возникают две критичные ошибки:
1. “Action was not found”
2. Ошибка типа “Object “Платежные документы” was not found in object repository”
Обе ошибки носят несистемный характер и на одном и том же тесте могут проявиться или нет и проявиться при этом в разных местах в разных запусках.
При этом, что касается первой ошибки, было замечено, что при открытии теста в QTP используемые шаги (выпадающий список actions теста) не всегда выгружаются все (т.е., в этом списке должно быть, например, 10 actions, а присутствует только 5 или 8, как когда). Но, если прописать вызов этих шагов прямо в Action1, то шаги всегда подгружаются все и это решает проблему 1.
По поводу проблемы 2, ошибка стала проявляться значительно реже после установки опции «Open new test after test run» в System Test remote agent, но не исчезла совсем.
Также ни одна ошибка не проявляется при выполнении тестов на чистой машине (с начальными настройками).
Используемая версия QTP: 11.00
Используемая версия QC: 10.00
Поскольку с чистыми настройками все корректно выполняется, то дело явно в настройках QTP. Но в каких понять невозможно. Может кто сталкивался с таким?