При тестировании можно заметить, что сервер не всегда работает с ожидаемой нагрузкой или что база данных обновляется не так, как следовало бы ожидать. Эти неполадки могут быть следствием неполной или ошибочной зависимости данных.
Для того чтобы выявить неполадки зависимости данных, выполните следующие действия:
- Используйте представление Потенциальные ошибки зависимости, чтобы найти отсутствующие или ошибочные зависимости. Дополнительная информация приведена в разделе Поиск ошибок сопоставления данных.
- Запустите тест напрямую или по расписанию, установив значение Все для ошибок и предупреждений в Протоколе ошибок.
- После завершения теста откройте протокол теста, как описано в разделе Просмотр протокола теста.
- Как описано в разделе Просмотр сведений протокола теста в представлении Данные протокола, необходимо убедиться, что все запросы к серверу возвратили ожидаемые данные.
Алгоритмы зависимостей данных, используемые для создания теста, основаны на зарекомендовавших себя подходах. Однако поскольку эти подходы постоянно развиваются, во время автоматизированного создания зависимостей данных могут возникать различные ошибки:
- Недостаточная зависимость: не установлена зависимость для значений теста, которые должны быть связаны. Возможные причины:
- Два параметра, которые должны быть связаны, имеют разные имена.
- Значение должно быть связано с предыдущим значением, которое не найдено в ожидаемом расположении.
- Параметр или значение должны быть связаны с предыдущим параметром или значением, которые не найдены в тесте, так как они должны вычисляться.
- Избыточная зависимость: связаны между собой несовместимые значения теста.
- Неверная зависимость: зависимость для значений теста, которые должны быть связаны, установлена с ошибкой.
Недостаточная зависимость: параметры имеют разные имена или находятся в непредвиденном расположении
Если два параметра, которые должны быть связаны, имеют разные имена, то функции автоматизированного создания зависимостей не распознают эти параметры как связанные. Рассмотрим следующий запрос: http://www.example.com?id=12345. Предположен, что это запрос необходимо связать с ответом сервера, который содержит customer_ID=12345, а не ID=12345. В этом случае параметр ID должен быть связан с customer_ID.
Зависимость обычно связывает данные из ответа сервера с данными последующего запроса. Алгоритмы автоматизированного связывания ищут в данных URL и POST потенциальные совпадения, однако могут быть и другие схемы возврата параметров. Рассмотрим следующий запрос: http://www.example.com?id=12345.
Предположен, что это запрос необходимо связать с ответом сервера, который содержит пару name и entity href name="customer_ID"
entity="12345", а не ID=12345.
В этом случае параметр ID должен быть связан с name="customer_ID", а 12345 - с entity="12345".
Ниже приведены другие возможные причины недостаточной зависимости:
- Siebel использует формат звезды для массива. Стандартные алгоритмы зависимостей не могут ни читать этот формат, ни записывать в него.
- SOAP обозначает параметры зависимости во внешнем файле XML.
Алгоритмы зависимостей не могут связывать параметры из внешнего файла с параметрами теста.
Для того чтобы связать данные вручную в этих ситуациях выполните следующие действия:
- В редакторе теста найдите два параметра, которые требуется связать.
- Перейдите к параметру, которые используется позднее в тесте, и выберите его. Это место подстановки.
- В окне Источники данных теста откройте вкладку Ссылки.
- Выберите источник данных, используемый как исходный, и нажмите кнопку Подставить из.
Недостаточная зависимость: один безымянный параметр
Иногда параметр или значение должны быть связаны с предыдущим параметром или значением, которые не найдены в тесте, так как они должны вычисляться, например, программой на JavaScript.
В этом случае для правильного связывания данных необходимо знать, где и как вычисляются параметр или значение, и добавить блок пользовательского кода. Дополнительная информация приведена в разделе
Расширение
тестов с помощью пользовательского кода.
Рассмотрим адрес http://www.example.com?login_stamp=12345_Apr_11_07, где значение login_timestamp получается из конкатенации ИД входа и текущей даты. В этом случае необходим пользовательский код, который соединяет ИД входа и дату.
В качестве другого примера предположим, что сервер возвращает ИД входа и дату как отдельные записи: href "customer_id=12345"
Date="Apr_11_07". В этом случае эти параметры можно поместить в отдельные ссылки и подставить их отдельно в последующих запросах, которые используют ИД клиента и дату.
Избыточная зависимость
Автоматизированное связывание данных основано на соответствии по шаблону: параметры или значение связываются с последующим параметром или значение в случае точного или частичного совпадения имен. Однако не всегда параметры с точным совпадением имен связаны между собой. В лучшем случае ошибочная зависимость не вредит приложению или добавляет небольшую лишнюю нагрузку. В худшем случае работа приложения будет нарушена из-за непредвиденной зависимости.
Для того чтобы устранить избыточную зависимость, выполните следующие действия:
- В редакторе теста найдите место подстановки, которое не должны быть связано. Данные с зависимостью по умолчанию выделены пурпурным цветом.
- Щелкните правой кнопкой мыши на месте подстановки.
- Выберите Удалить подстановку.
Ошибочная зависимость
Параметр, для которого требуется создать зависимость, может встречаться в нескольких местах теста. Например, ИД сеанса, используемый при входе в систему, также может использоваться в каждом последующем запросе. Если несколько экземпляров параметра в тесте различаются, то алгоритмы зависимостей могут использовать ошибочный экземпляр.
В параметрах генерации теста HTTP можно настроить функции автоматического создания зависимостей, чтобы повысить их точность или эффективность.
- Точность: каждое вхождение параметра связывается с ближайшим предыдущим вхождением. Это значение по умолчанию.
- Эффективность: каждое вхождение параметра связывается с одним предыдущим вхождением.
Прим.: Если не настроить ручное создание зависимости для поля
Referer в заголовке запроса HTTP, то поле Referer автоматически связывается, когда это необходимо. Если настроить ручное создание зависимости для поля
Referer в заголовке запроса HTTP, то автоматическое связывание не осуществляется.
Вероятность ошибочных зависимостей возрастает, если для параметра
Оптимизировать автоматическое создание зависимостей данных задано значение
Эффективность.
Для того чтобы устранить ошибочную зависимость, выполните следующие действия:
- В редакторе теста найдите значение, которое связано неверно.
- Щелкните правой кнопкой мыши на месте подстановки.
- Выберите Удалить подстановку.
- Щелкните правой кнопкой мыши на месте подстановки еще раз.
- Выберите Подставить и укажите правильный параметр.