2016-04-25 4 views
0

Ich bin Neuling in UFT. Ich erstelle Test für ein Formular in einer Webseite. Ich brauche ein Feld parametrice, aber ich sehe keine Möglichkeit, es zu beenden, weil das Feld ein spanisches offizielles Dokument der Identität ist und eine Eithn-Nummer mit einem Buchstaben verkettet ist.Parametrice UFT mit Funktion

Ich habe eine VBScript-Funktion, um diese Zeichenfolge zu berechnen, aber ich weiß nicht, wie Sie in das Feld einfügen. Ich habe es mit der Umwelt versucht, aber ich sehe nicht, wie es funktioniert.

Funktion ist unten.

+0

Hallo, Ihre Frage zu erzeugen, ist nicht klar. Geben Sie ein Beispiel für dni & numNie (Ausgabe, die Sie möchten) –

+0

Zum Beispiel, wenn die Nummer 78248723 ist, ist der Buchstabe D, und nie (oder dni) ist 78248723D. Ich kann es mit Selenide parametrisieren, wo ich diese Zahl als eine Variable setzen kann und ich Feld richtig eintippen kann. Aber ich weiß nicht, wie es in UFT gemacht wird. – user942324

Antwort

1

Es klingt, als ob Sie versuchen, etwas (den String-Rückgabewert Ihrer Funktion) in ein Feld auf einer Webseite einzugeben ... Ich denke. Wenn es das ist, was du versuchst, dann würde ich das hier tun.

Zuerst nehme ich an, dass Sie die Webseite bereits in einem Browser haben. Ich hoffe du bist schon so weit gekommen. (Ich werde einen Beispiel-Browser und einen Seitennamen erstellen ...) Außerdem nehme ich an, dass das Feld, in das Sie diese Daten eingeben möchten, ein WebEdit-Steuerelement ist, und Sie versuchen nur, den Wert einzugeben.

Wenn all dies korrekt ist, dann ist die gewünschte Methode .Set, um UFT dazu zu bringen, einen Wert in das Webedit einzugeben. Der Code in Ihrer Aktion würde wie folgt aussehen:

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 

oder nur

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

wahrscheinlich gefolgt von

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

Beachten Sie, dass "Website", "Seite Daten eingeben", „name of field "und" Submit "sind die Namen von Browser-, Seiten-, Webedit- und Webbutton-Objekten aus dem Object Repository, die Ihre Aktion sehen kann. Offensichtlich sollten dies die Namen Ihrer Testobjekte sein, sie könnten aber auch Beschreibungen sein.

+0

Danke, aber Problem ist, ich kann es nicht parametrisieren. Ich möchte, wenn ich den Test, in diesem Feld ausführen Funktion ausführen und gibt das Ergebnis in das Feld – user942324

+0

Vielleicht könnten Sie beschreiben, was schief geht, wenn Sie versuchen, es zu parametrisieren. Was ich in einer Zeile beschrieben habe, sollte es tun ... "Browser (" Website "). Seite (" Seite um Daten einzugeben "). WebEdit (" Name des Feldes "). Set numNie (dni)" –

+0

Vielen Dank. Ihre Lösung hat in meinem Test funktioniert. Allerdings sehe ich jedes Mal, wenn ich den Test durchführe, die Zufallszahl nicht. Was mache ich falsch ??? – user942324

2

Sie müssen nur den Wert des Feldes Web bearbeiten Stellen Sie den Rückgabewert Ihrer Funktion zu sein:

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

Das ist natürlich davon aus, dass Ihre Funktion definiert wird (entweder im Skript oder in einem Funktionsbibliothek, die mit Ihrem Test verknüpft ist) und dass die Website, die Webseite und das Feld alle mit dem Objekt-Repository vorhanden sind, das dem Test zugeordnet ist.

+0

Das Skript im Expertenmodus ist: – user942324

-1

parametrieren Sie können Datentabelle mit (ich denke, das beste Weg ist)

Erstellen Sie eine Excel-Datei in einem lokalen Ordner (zB: C:\Tests\InputData\Test1.xls)

Fill Blatt Werte wie unter

Ex: 

IterationID | dniValue  
1   | 21 
2   | 15 

dann im Skript verwenden Sie unten Skript

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 

oder wenn Sie zufällig dni Werte wollen, dann random Funktion wie verwenden unter

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

dann die Funktion aufrufen randow dni Wert

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

Eine Version, die die ganze Quadratwurzel verwendet, fehlt. Ernsthaft: 1. Warum der "zufällige" Vorschlag? Die Frage sagt kein Wort darüber. 2. Für was ist der 'Randomize'-Aufruf gut? Es sollte nur einmal aufgerufen werden, um den Zufallsgenerator zu säen (oder zumindest einmal genügen würde). 3. Das einzige, was die Frage von OP anspricht, ist der 'objwebpage.WebEdit (" Name des Feldes "). Setze die numNie (dni)' Zeile, was bereits die Schlüsselaussage einer älteren Antwort ist. -1 – TheBlastOne