2016-04-25 3 views
0

Я новичок в UFT. Я создаю тест для формы на веб-странице. Мне нужно параметризировать поле, но я не вижу возможности закончить его, потому что поле является официальным официальным документом, удостоверяющим личность, и представляет собой число эйтов, соединенное буквой.Parametrice UFT с функцией

У меня есть функция vbscript для вычисления этой строки, но я не знаю, как вставлять ее в поле. Я пробовал с окружающей средой, но я не вижу, как это работает.

Функция приведена ниже.

Function numNie(ByVal dni) 
    Dim tabla,pos 
    tabla = Array("T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E") 
    pos = dni mod 23 
    sacaLetra = tabla(pos) 
    numNie=dni & sacaLetra 
End Function 
+0

Привет, Ваш вопрос не ясен. Приведите пример для dni & numNie (вывод, который вы хотите) –

+0

Например, если число равно 78248723, буква D, а nie (или dni) - 78248723D. Я могу параметризовать его с помощью selenium ide, где я могу поместить это число в переменную, и я могу правильно ввести поле. Но я не знаю, как это сделать в UFT. – user942324

ответ

1

Похоже, вы пытаетесь ввести что-либо (значение возвращаемой строки вашей функции) в поле на веб-странице ... Я думаю. Если это то, что вы пытаетесь сделать, вот как я это сделаю.

Во-первых, я предполагаю, что у вас есть веб-страница в браузере. Надеюсь, ты уже так далеко. (Я создам пример браузера и имя страницы ...) Кроме того, я предполагаю, что поле, в которое вы хотите ввести эти данные, является элементом управления WebEdit, и вы просто пытаетесь ввести в него значение.

Если все это правильно, тогда вам нужен метод. Установите, чтобы UFT вводил значение в webedit. Код в ваше действие будет выглядеть так:

DocumentNumber = numNie(dni) 'call your function to get the document number 

Browser("Website").Page("Page to enter data").WebEdit("name of field").Set DocumentNumber ' type the document number into the webpage 

или просто

Browser("Website").Page("Page to enter data").WebEdit("name of field").set numNie(dni) 

вероятно следуют

Browser("Website").Page("Page to enter data").WebButton("Submit").click 

Обратите внимание, что "Сайт", "Страница для ввода данных", «имя поля "и" Отправить "- это названия объектов браузера, страницы, webedit и webbutton из репозитория объектов, которые может видеть ваше действие. Очевидно, что это должны быть имена ваших тестовых объектов, но они также могут быть описаниями.

+0

Спасибо, но проблема в том, что я не могу его параметризовать. Я хотел бы, когда я запускаю тест, в этом поле выполняет функцию и вводит результат в поле – user942324

+0

Возможно, вы могли бы описать, что происходит, когда вы пытаетесь параметризовать его. То, что я описал в одной строке, должно это сделать ... «Браузер (« Веб-сайт »). Страница (« Страница для ввода данных »). WebEdit (« имя поля »). Set numNie (dni)« –

+0

Большое спасибо. Ваше решение сработало в моем тесте. Однако я вижу, что каждый раз, когда я запускаю тест, он не меняет случайное число. Что я делаю неправильно ??? – user942324

2

Вам просто нужно установить значение поля веб-редактирования, чтобы быть возвращаемое значение вашей функции:

Browser("yourWebsite").Page("yourWebPage").WebEdit("yourWebField").set numNie(dni) 

Это, конечно, при условии, что функция определена (либо в сценарии или в пределах библиотеку функций, связанную с вашим тестом) и что веб-сайт, веб-страница и поле все существуют с репозиторием объектов, связанным с тестом.

+0

Сценарий в экспертном режиме: – user942324

-1

Вы можете параметризовать с помощью DataTable (я думаю, что это лучший способ)

Создайте файл Excel в некоторой локальной папке (например: C:\Tests\InputData\Test1.xls)

заливка листа значения как ниже

Ex: 

IterationID | dniValue  
1   | 21 
2   | 15 

то в сценарии используется ниже сценарий

Datatable.import(ExcelsheetPath) 'C:\Tests\InputData\Test1.xls 
For i = 1 to Datatable.GetSheet(1).GetRowCount 
Datatable.setcurrentrow(i) 
dni= Datatable.value("dniValue", 1) 'get dnivalue 
objwebpage.WebEdit("name of field").set numNie(dni) 
Next 

или если вы хотите случайные dni значения затем использовать random функции, как показано ниже

Function random(v1,v2) 
Randomize 
random=(Int((v2 - v1 + 1)* Rnd + v1)) 
End Function 

затем вызвать функцию для создания Randow dni значение,

dni =random(1,23) 
objwebpage.WebEdit("name of field").set numNie(dni) 
+0

Отсутствует версия, которая использует целочисленный квадратный корень. Серьезно: 1. Почему «случайное» предложение? Вопрос не говорит ни слова об этом. 2. Что такое «Рандомизированный» призыв? Его следует вызывать только один раз, чтобы засеять случайный генератор (или, по крайней мере, один раз будет достаточно). 3. Единственное, что касается вопроса OP: 'objwebpage.WebEdit (« имя поля »). Set numNie (dni)' строка, которая уже является ключевым утверждением более старого ответа. -1 – TheBlastOne

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