2015-05-18 1 views
-1

Как пройти другое DataTable для того же действий в различных тестовых случаяхUFT Как передать другую DataTable для того же действий в различных тестовых случаях

У меня есть три действия и два случая испытания, которые называют эти действия по-разному.

TC 1 вызывает действие 1 и действие 2

TC 2 предусматривает действие 1 и действие 3 с различными данными для действия 1

Я знаю, что мы могли бы передавать различные параметры с помощью свойств вызова действия, но как мы можем сделать то же самое, если мы используем таблицу данных?

Спасибо заранее за любой вклад


Все три действия сохраняются в отдельном сценарии.

Так что это наш подход к автоматизации применения

  1. Мы пытаемся управлять автоматизации от ALM и поэтому отображение параметров ALM с параметром UFT

  2. Мы создаем модульные скрипты для resuability, которые определяется функциональностью. Если одна и та же функциональность используется в более чем одном тестовом случае, мы различаем этот шаг путем использования переменной. Ех: В тестовом случае должен быть запущен процесс. Либо мы можем использовать шаблон, который был создан ранее, либо создать новый шаблон для инициирования процесса. Шаблон создания и использования сначала выполняет различные шаги, но затем проходит через ту же проверку. у нас также есть отдельные ручные шкафы для них. Поскольку только 2 шага различны, мы определили переменную, которая различает их с помощью оператора IF. Таким образом, если переменная имеет значение 1, это создает шаблон еще запустить существующий шаблон

Test Case 1 - Создать новый шаблон - Вызов модуля с помощью параметров, определенных во время вызова

RunAction «Action1 [Module_1] », oneIteration, "Создать новый шаблон", "Parameter_1", "Parameter_2" RunAction "Action1 [Module_2]", oneIteration,

Test Case 2 - Использовать существующий шаблон - вызов модуля с помощью параметров, определенных во время вызова

RunAction "Action1 [Module_1]", oneIteration, "Использовать существующий шаблон", "Parameter_3", "Parameter_4" RunAction "ДЕЙСТВИЙ1 [Module_3]", oneIteration, "Parameter_5", "Parameter_6", "Parameter_7"

  1. Мы минимизируем использование таблицы данных. Однако есть случаи, когда таблицы данных нельзя избежать. Пример: несколько форм, в которых пользователь должен добавлять больше форм с одинаковыми полями снова и снова. Они обрабатываются с использованием наборов данных для каждой формы из таблицы данных. Однако существуют разные случаи использования этого модуля, и для каждого случая должна быть другая таблица данных. Как я могу это реализовать? В настоящее время, поскольку я использую локальную таблицу данных из модуля, я не могу использовать ее для разных тестовых примеров. Есть ли способ использовать таблицу локальных данных тестового примера, а затем передать значения в модуль?

Даже если есть способ, существуют ограничения, так как «Добавление формы», упомянутое выше, является лишь частью большой функциональности. Поэтому, если мы хотим перебрать модуль для количества наборов данных в таблице данных, нам нужно будет включить часть кода в него

Не уверен, если я объясню это правильно, но дайте мне знать, если вы не можете понять, и я попытаюсь объяснить это лучше.

+0

Где определены Action1, Action2 и Action3? Как вы их называете? Определяли ли вы входные параметры в определениях трех действий или просто ссылались на локальный тип данных? –

+0

Я попытался объяснить это в моем первоначальном посте. Пожалуйста, дайте мне знать, если у вас возникли проблемы с его пониманием. –

+1

Не совсем уверен, что я правильно понял. НО ... Если вам нужно вызвать внешнее действие, и это то, что данные внешнего действия, которые необходимо изменить для каждого тестового примера, не могли бы вы иметь дополнительный XLS в том же формате, что и default.xls в модуле внешнего действия, и из родительского тестового примера скопировать этот XLS поверх default.xls до вызова внешнего действия? Я бы добавил, что прошло некоторое время, так как я использовал интеграцию QTP с QC/ALM, поэтому я не знаю, откуда такие вещи, как эти файлы XLS, поэтому ... –

ответ

1

Хорошо, похоже, вы пытаетесь сделать что-то похожее на то, что я сделал ... Я должен добавить, что это не идеальное решение, но для ситуации, в которой я оказался, это работает!

Так что я принимаю Module_1, Module_2 и Module_3 - это технически QTP-тесты, которые вы никогда не запускаете. Test_1 и Test_2 также являются QTP-тестами, которые вы запускаете (!) - которые включают в себя RunAction звонки, как вы упомянули выше, плюс любой другой сделанный на заказ код для этого теста. Хорошо.

ПРИМЕЧАНИЕ. Вам не нужно иметь никаких данных в любом месте в любом из «Модулей».

Вместо этого определите каждое из многоразовых действий в каждом «Модуле» для ввода входных параметров. Затем сохраните данные для этих параметров в таблицах данных для Test_1, Test_2 и т. Д. - с каждым локальным (Action) техническим паспортом с каждым тестом, имеющим столбцы, которые соответствуют параметрам для многократных действий, вызываемых в рамках этого тестового действия.

Затем вызовите многоразовое Действие:

RunAction "Action1 [Module1]", oneIteration, 
    dataTable.Value("someParam", dtLocalSheet), 
    dataTable.Value("someOtherParam", dtLocalSheet) 

Обратите внимание, что это важно, чтобы понять - при использовании вызова к существующим действиям, DataTable (оба dtGlobalSheet и dtLocalSheet) относится к тому, что из «родительских» испытания, НЕ относится к внешнему действию - даже для внешнего кода - эффективно, техническое описание «модуля», которое вы вызываете, не существует)

Если вам нужно запустить Test_1 или Test_2 и т. Д. С различными данными: 1. Просто добавьте строки в таблицы данных в тесте или ... 2. Создайте копию default.xls (тот, который находится в тесте, а не «ReusableActions», и отредактируйте в Excel по мере необходимости - затем перед каждым запуском скопируйте требуемые данные xls по умолчанию. Xls перед запуском теста.

Еще лучше, если вы используете QC/ALM для управления тестированием, выполните некоторые поисковые запросы на «Тестирование бизнес-процессов с помощью QC/ALM» и «Бизнес-компонент» для QC/ALM. Я пытаюсь получить нынешним работодателям, чтобы спуститься по этому маршруту. Описанный выше является «взломом» для достижения того, что можно сделать гораздо более чисто, используя BPT ....

+0

Спасибо Стив. Я никогда не думал передать параметр из таблицы данных теста во внешнее действие. Однако с этим подходом существует ограничение. Один из моих тестов - создание нескольких платежей для пользователя Это означало бы, что я буду предоставлять детали пользователя один раз, но создав несколько записей платежей. Таким образом, только повторение части платежа на основе номера –

+0

Звучит для меня как вещь, которую нужно сделать, чтобы разделить этот тест на два действия - один, чтобы предоставить детали пользователя, а другой - для создания платежей. Удалите 2-й из тестового потока, затем добавьте вызов с помощью RunAction к нему с первого, указав что-то вроде «1-10» (для 10 платежей) в параметре «итерация» ..... –

+0

BTW, довольный ответом выше, пожалуйста, «примите» это;) спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^