2016-06-20 9 views
1

So testet Seite Anmeldungs ​​mit diesem Stück Code, den ichWie wird ein einfacher Seitentest durchgeführt? Login Beispiel

describe('Testing the login page', function (t) { 
    t.it('Should be possible to login', function (t) { 
     t.chain(
      { 
       waitForCQ : '>> textfield[itemId=login]' 
      }, 
      { 
       action : 'type', 
       target : '>> textfield[itemId=login]', 
       text : 'accountname' 
      }, 
      { 
       action : 'type', 
       target : '>> textfield[itemId=password]', 
       text : 'passwd[ENTER]' 
      } 
     ) 
    }) 
}); 

mit diesem harness.start() conf:

harness.start(
    '010_sanity.t.js', 
    { 
    group : 'Login/Logout', 
    items : [ 
     { 
     enablePageRedirect : true, 
     pageUrl : "https://mywebsite.com/Login", 
     url  : "020_login.t.js" 
     }, 
     { 
     enablePageRedirect : true, 
     pageUrl : "https://mywebsite.com/", 
     url  : "021_logout.t.js" 
     } 
    ] 
    }, 
    ... 
); 

und ich bin ein Problem. Selbst wenn die Option enablePageRedirect auf "true" gesetzt ist, scheinen Tests von der ersten bis zur nächsten Seite nicht zu bestehen. Im Gegensatz dazu sehe ich im Protokollierungsbereich des Siesta-Test-Interface (mittleres) den Test von Grund auf neu, wenn sich die Seite geändert hat. Mit einem nie endenden Spinner.

Wie macht man so einen einfachen Querseitentest mit Siesta? Der Doc hat mir geholfen, nicht wirklich: http://www.bryntum.com/docs/siesta/#!/guide/cross_page_testing

Vielen Dank im Voraus

Antwort

1

Jeder Test wird voraussichtlich von einer frischen Seite starten und in sich geschlossen sein, so dass jede Ihrer Tests, indem Sie sich beginnen müssten die App frisch. Die Aktivierung der Seitenumleitung bedeutet, dass die App nach dem Login weiter getestet werden kann, nachdem sie die nächste Seite erreicht hat. Hier ist ein Beispiel, wie wir es in unseren Tests schreiben:

test.chain(
    // Enter username 
    { 
     action: 'type', 
     target: '#user_id', 
     text: 'ACCOUNTNAMEHERE' 
    }, 
    // Enter password 
    { 
     action: 'type', 
     target: '#password', 
     text: 'PASSWORDHERE' 
    }, 
    // Set up detection of the page changing. 
    // The trigger specifies what action will cause the 
    // page to change. The timeout is the maximum length 
    // to wait for the navigation to occur. 
    { 
     waitFor: 'PageLoad', 
     timeout: 20000, 
     trigger: { 
     click: 'input[type=submit]' 
     } 
    } 
);