У меня есть функция, выполняющая ту же операцию для всех моих скриптов, но только переменная, в которой сохраняется значение Pass-Fail, изменится. Например, в одном скрипте -> статус хранится в Envrionment.Value («Current_Status») в другом скрипте -> статус хранится в DataTable.Value («Status», 1) в другом скрипте -> status сохраняется в objRS («AddCriteria_Status»). ЗначениеПередача строки в виде имени переменной QTP
Итак, я пытаюсь создать функцию, в которой я передаю эти параметры в виде строк, а затем буду использовать их как имена переменных. Вот пример кода:
Envrionment.Value("Current_Status") = "none"
Environment.Value("Fail_text") = "none"
Call AddCriteria("Environment.Value(""Current_Status"")","Environment.Value(""Fail_text"")")
Pubic Function AddCriteria(varStatus,varActual)
varTemp = ""
Execute(varStatus+ "=InProgress") 'change status to InProgress by the time execution is done
Execute(varActual + "=not_defined") 'this will have the reason the case failed
....code
If varTemp = "FAIL" Then
Execute(varStatus+ "=PASS")
Execute(varActual + "=PASS")
Else
Execute(varStatus+ "=FAIL")
Execute(varActual + "=Criteria did not get added")
End If
End Function
При вызове подпрограмму я хочу значение Environment.Value («CURRENT_STATUS»), чтобы перейти от «нет» на «Обрабатывается», а затем на «PASS» Но после выполнения команды «Выполнение» переменная среды становится пустой.
Поскольку CVar не поддерживается в VBScript, я не могу его использовать.
Я пробовал Eval, но он не работает в другом направлении, то есть: Если вы измените значение Environment.Value («Current_Status»), то значение Eval (varStatus) изменится, но я не смог найти способ изменить значение Eval (varStatus), чтобы изменилось значение Environment.Value («Current_Status»).
Пожалуйста, помогите. Я застрял в этом неделю.
!!! Что я пытаюсь выполнить !!!
В файле .vbs передать любую строку функции в качестве параметра; и преобразовать его в имя переменной в этой функции. Простой пример: передать строку «abc» в качестве параметра функции -> и внутри этой функции преобразовать строку в имя переменной для сохранения значения [скажем, abc = «PASS»]
!!! Как я попытайтесь это сделать !!!
Я попытался с помощью команды Execute, как это решение, которое я получил от предыдущего поста [vbscript Eval a string to a Variable in a loop?
Использование «квар» является способом, но это не поддерживается в VBScript. Поэтому у меня кончились идеи
!!! Проблемы, с которыми я столкнулся !!!
Честно говоря, я не понял логики использования «Выполнить», но я все же пробовал. К сожалению, это не сработало. При использовании команды execute (как указано в коде) переменные среды становятся пустыми.