Контейнер UITestControl на основе браузера - PullRequest
1 голос
/ 23 февраля 2012

При написании тестов с использованием Coded UI Framework есть ли смысл запускать поиск элемента управления с использованием контейнера, отличного от окна браузера.

Для иллюстрации - скажем, у меня довольно сложный html с большим количествомгнездования.Где-то в HTML есть что-то вроде этого:

<nested tags (lots of them)>
    <div id='container'>
         <a lot of nested tags>
             <div id="control_I_want"></div>
             <div id="another_control_I_want"></div>
         </a lot of nested tags>
    </div>
</nested tags (lots of them)>

Поиск двух элементов управления, которые я хочу найти, будет быстрее, если я сначала найду «контейнер», а затем использую его как базу для поискадля двух элементов управления, которые я хочу?Или начать с окна браузера, так как база моего поиска будет такой же быстрой?Я пытался кодировать оба пути, но мои результаты неубедительны.

Код, который я использовал для тестирования:

HtmlDiv cont = new HtmlDiv();
cont.SearchProperties.Add("Id", "container");

HtmlDiv div1 = new HtmlDiv(cont);
div1.SearchProperties.Add("Id", "control_I_want");
div1.Find();

HtmlDiv div2 = new HtmlDiv(cont);
div2.SearchProperties.Add("Id", "another_control_I_want");
div2.Find();

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

HtmlDiv div1 = new HtmlDiv();
div1.SearchProperties.Add("Id", "control_I_want");
div1.Find();

HtmlDiv div2 = new HtmlDiv();
div2.SearchProperties.Add("Id", "another_control_I_want");
div2.Find();

Из вашего опыта - один метод лучше другого?К сожалению, ресурсов для CUIT не хватает, поэтому ни один гугл не помог мне окончательно ответить на этот вопрос.

1 Ответ

0 голосов
/ 23 февраля 2012

Здесь происходит компромисс, и это зависит от вашего приложения и того, как вы думаете, как будет выглядеть дальнейшая разработка.Я думаю, что при переходе по первому маршруту разница в производительности незначительна, но для повышения производительности вы теряете гибкость / удобство обслуживания.Если Id родительского контейнера изменится, вам нужно будет изменить его и в тесте, но со вторым вариантом ваши тесты продолжат нормально работать.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...