Wie zu beheben "NameError: global name 'x' is not defined" - Fehler während der Ausführung von Robot Framework testcase verwenden von benutzerdefinierten Bibliothek?

Bin ich zu sehen "NameError: global name 'x' is not defined" - Fehler während der Ausführung eines Testfalls in Robot Framework.

Folgende ist meine benutzerdefinierte Bibliothek-Datei (Modifiziert als pro Bryan Oakley Kommentare):

import re

def pass_fail_criteria():
    if int(re.findall(r"NUM_FLOWS\n-+[\s\S]*?(\d+)\s*-+",x)[0]):
        return "pass"
    else:
        return "fail"

Folgenden wird die "pass_fail.Roboter" Inhalt der Datei:

*** Settings ***
Library         Selenium2Library
Library         SSHLibrary
Library         regexp_def.py
Suite Setup     Go to gmail page
Suite Teardown  Close All Browsers

*** Variables ***
${HOMEPAGE}     https://www.gmail.com/intl/en/mail/help/about.html
${BROWSER}      firefox
${LOGINPAGE}    https://www.gmail.com/intl/en/mail/help/about.html
${FINALURL}     https://mail.google.com/mail/
${FINALURL1}    https://accounts.google.com/ServiceLogin?service=mail&continue=https://mail.google.com/mail/'

${HOST}             1.1.1.1
${USERNAME}         test
${PASSWORD}         test



*** Test Cases ***
Login into gmail
    Go to gmail page
    Login Page Should Be Open
    Click Signin Button
    Input Username      [email protected]
    Input Password      test@123
    Submit Credentials
    Inbox page should open

Check Deep Packet Inspection Stats
    Open Connection         ${HOST}
    enable ssh logging      XYZ
    Login   ${USERNAME}     ${PASSWORD}
    Write                   enable
    Write                   show dpi app stats gmail on AVC/ap7532-15E8CC
    ${x}                    Read Until Regexp       .*#


Pass fail Criteria  
    ${status}               pass fail criteria
    should be equal         ${status}             pass
    ${result}               Pass fail criteria      ${x}




*** Keywords ***
Go to gmail page
    Open Browser    ${HOMEPAGE}     ${BROWSER}
    Maximize Browser Window

Login Page Should Be Open
    Location Should Be      ${LOGINPAGE}    

Click Signin Button
    Click Element       id=gmail-sign-in

Input Username
    [Arguments]     ${username}
    Input Text      id=Email    ${username}


Input Password
    [Arguments]     ${password}
    Input Text      id=Passwd   ${password}

Submit Credentials
    Click Button    id=signIn

Inbox page should open
    Location Should Be      ${FINALURL}

Erhalte ich folgende Fehlermeldung während der Ausführung dieser Datei:

C:\Users\symbol\Desktop\Projects\gmail_stats_with_pass_fail_criteria>pybot pass_
fail.robot
==============================================================================
Pass Fail
==============================================================================
Login into gmail                                                      | PASS |
------------------------------------------------------------------------------
Check Deep Packet Inspection Stats                                    | PASS |
------------------------------------------------------------------------------
Pass fail Criteria                                                    | FAIL |
NameError: global name 'x' is not defined
------------------------------------------------------------------------------
Pass Fail                                                             | FAIL |
3 critical tests, 2 passed, 1 failed
3 tests total, 2 passed, 1 failed
==============================================================================
Output:  C:\Users\symbol\Desktop\Projects\gmail_stats_with_pass_fail_criteria\ou
tput.xml
Log:     C:\Users\symbol\Desktop\Projects\gmail_stats_with_pass_fail_criteria\lo
g.html
Report:  C:\Users\symbol\Desktop\Projects\gmail_stats_with_pass_fail_criteria\re
port.html

C:\Users\symbol\Desktop\Projects\gmail_stats_with_pass_fail_criteria>

Gibt es Fragen in folgenden code:

Pass fail Criteria  
    ${status}               pass fail criteria
    should be equal         ${status}             pass
    ${result}               Pass fail criteria      ${x}

Könnten Sie mir sagen, wie dieses Problem zu beheben?

Vielen Dank im Voraus.

  • x ist nicht im code definieren
  • Testen Sie Ihre regulären Ausdruck auf die variable x, die man noch nicht überall definiert. Vielleicht muss man es als argument zu pass_fail_criteria(x)?
  • Vielen Dank für Ihre Kommentare. Ich bin nicht immer eine Idee, wie übergeben Sie dieses als argument zu meinem testcase. Könnten Sie mir bitte sagen, wie übergibt man diese ${x} als argument für Robot framework testcase?
InformationsquelleAutor rcubefather | 2015-01-29
Schreibe einen Kommentar