2016-06-20 44 views
1

所以我用這段代碼如何做基本的跨頁測試?登錄例如

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]' 
      } 
     ) 
    }) 
}); 

測試我的登錄頁面與此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" 
     } 
    ] 
    }, 
    ... 
); 

而且我現在面臨的一個問題。即使將enablePageRedirect選項設置爲true,測試似乎也不會從第一頁持續到下一頁。 相反,在午睡測試界面(中間一個)的日誌記錄區域,我發現當頁面發生變化時,測試將從頭開始重新開始。 隨着永不止息的微調。

如何做這樣一個簡單的與午睡的跨頁測試? 的文檔並沒有真的幫了我:提前http://www.bryntum.com/docs/siesta/#!/guide/cross_page_testing

感謝

回答

1

每個測試預計從一個新的一頁開始,是自包含的,所以你的每個測試都需要通過登錄到開始新鮮的應用程序。啓用頁面重定向只是意味着一旦登錄發生,應用程序可以在到達下一頁後繼續進行測試。下面是我們如何在測試中編寫它的一個例子:

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]' 
     } 
    } 
);