Добавление идентификаторов в теги HTML для автоматизации контроля качества - PullRequest
8 голосов
/ 11 августа 2009

У меня есть запрос В нашем приложении много HTML-тегов. Во время разработки многим тегам не было присвоено ни одного идентификатора из-за отсутствия требований. Теперь команда QA хочет автоматизировать тестовые случаи с использованием QTP. В большинстве случаев этот инструмент не распознает, потому что он не находит идентификаторы для большинства тегов HTML. Теперь нас просят добавить идентификаторы ко всем тегам HTML. Я хочу знать, будет ли какой-либо эффект при добавлении атрибута id к этим тегам. Приветствуются даже положительные результаты

Ответы [ 5 ]

7 голосов
/ 11 августа 2009

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

Тем не менее, вы уверены, что вам нужно поместить атрибуты "id" в каждый тег HTML ваших страниц? Разве не хватит только нескольких из них? Как в полях формы, в ссылках, в сообщениях об ошибках; а это наверное об этом?

Одна вещь, которую вы должны позаботиться, это то, что «id», как и в «идентификаторах», должно быть уникальным ; что подразумевает, что было бы хорошо, прежде чем приступить к их добавлению, определить какую-то «id-политику», например, сказать, что «идентификаторы для элементов такого рода должны быть названы таким образом».

И, для ваших следующих проектов: пусть разработчики добавят те, когда они развиваются ;-)
(И, конечно, следуя политике)


Теперь, когда я думаю об этом: положительный эффект может состоять в том, что будет проще писать код Javascript, взаимодействующий с вашим HTML-документом, но это будет справедливо для следующих проектов или эволюций для этого, когда эти идентификаторы уже присутствующие в HTML в то время разработчики поставили код JS на место ...

4 голосов
/ 11 августа 2009

Поскольку пока нет ответов, связанных с QTP.

Распознавание GUI в QTP является объектно-ориентированным. Для идентификации объекта QTP нужна уникальная комбинация свойств объекта, и их проверка должна быть максимально быстрой, поэтому HTML ID был бы идеальным.

Теперь, где это особенно важно - для объектов, которые не имеют других уникальных идентификаторов. Самый типичный пример - HTML таблицы. Их содержимое динамично, их количество на странице может отличаться. Добавляя HTML ID, вы позволяете механизму распознавания попасть прямо в нужную таблицу.

Объекты с другими уникальными свойствами можно легко распознать без HTML ID. Например, если у вас есть одна ссылка «отправить» на странице, QTP успешно распознает ее по внутреннему тексту.

Итак, контекстно-зависимый ответ: не начинайте добавлять идентификаторы к каждому тегу. Попросите ребят из автоматизации подготовить список объектов, с которыми у них есть проблемы. И добавьте идентификаторы к этим объектам.

PS. Это также зависит от навыков программирования. Существуют методы описательного программирования и динамического распознавания. Они позволяют получать нужные объекты даже без указания идентификатора.

2 голосов
/ 11 августа 2009

Как сказал Альберт , QTP не полагается исключительно на элементы id, на самом деле из-за того, что многие веб-приложения генерируют разные id с для каждого сеанса (поскольку Я помню) свойство id не является частью описания по умолчанию для большинства объектов веб-теста.

QTP довольно хорошо распознает большинство простых веб-элементов управления, и если вы сталкиваетесь с проблемами, возможно, проект Web Extensibility поможет вам преодолеть разрыв между семантикой вашего веб-приложения и необработанный HTML, в котором он создан. Если QTP распознает сложный элемент управления как WebElement (который на самом деле является div, который содержит span, который управляет кодом), у вас вполне могут возникнуть проблемы с распознаванием объектов, поскольку много div s на странице, но, вероятно, намного меньше сложных элементов управления .

1 голос
/ 11 августа 2009

Если вы говорите о побочных эффектах - НЕТ. Добавление идентификаторов не вызовет никаких проблем (кроме, конечно, дополнительных байтов)

Если вам действительно нужно добавить идентификаторы, добавьте их.

0 голосов
/ 11 августа 2009

http://www.w3.org/TR/html4/struct/links.html#anchors-with-id говорит:

Атрибуты id и name имеют одинаковое пространство имен. Это означает, что они не могут одновременно определять привязку с одинаковым именем в одном и том же документе. Разрешено использовать оба атрибута для указания уникального идентификатора элемента для следующих элементов: A, APPLET, FORM, FRAME, IFRAME, IMG и MAP. Когда оба атрибута используются в одном элементе, их значения должны быть идентичны.
...