2017-04-06 56 views
0

在我的應用程序中,我用來更改一個變量以更改爲測試模式。量角器 - 我可以使用url參數來設置本地存儲嗎?

現在,我改變了一點,以便我可以添加一個URL參數(test=true)來設置我的應用程序在測試時與模擬後端以及所有必需的東西一起運行。

一切工作正常。

它的工作方式是,如果URL存在,我設置一個本地存儲項目(testing: true),如果這存在於本地存儲中,則我的變量將設置爲true,這意味着我處於測試模式。

然而,量角器,甚至改變基本URL包括PARAMS後,localStorage的項目不被設置和我的應用程序是不是在測試模式。

我在做什麼錯在這裏?

這裏的配置文件:

exports.config = { 
    specs: ['tests/e2e/*.js'], 
    baseUrl: "http://localhost:8100/?test=true", 
    seleniumAddress: 'http://127.0.0.1:4444/wd/hub', 
    framework: 'jasmine2', 
    defaultTimeoutInterval: 120000, 
    onPrepare: function() { 
     browser.driver.get(browser.baseUrl); 

     var SpecReporter = require('jasmine-spec-reporter'); 
     jasmine.getEnv().addReporter(new SpecReporter({ 
      displayStacktrace: false, 
      displaySuccessful: true, 
      displayFailed: true 
     })); 

     var jasmineReporters = require('jasmine-reporters'); 
     var junitReporter = new jasmine.JUnitXmlReporter('tests/e2e/'); 
     jasmine.getEnv().addReporter(junitReporter); 
    } 
}; 

和設置的localStorage項目的代碼如下:

<script> 
     function getParameterByName(name, url) { 
      if (!url) { 
       url = window.location.href; 
      } 
      name = name.replace(/[\[\]]/g, "\\$&"); 
      var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
       results = regex.exec(url); 
      if (!results) return null; 
      if (!results[2]) return ''; 
      return decodeURIComponent(results[2].replace(/\+/g, " ")); 
     } 

     var isTesting = getParameterByName('test'); 

     if (isTesting === "true"){ 
      debugger 
      localStorage.setItem('testing', true) 
     } else { 
      localStorage.removeItem('testing') 
     } 

     window.__TESTING__ = localStorage.getItem('testing'); 
     console.log (window.__TESTING__); 
</script> 

感謝您的幫助

回答

1

您可以直接更改的值使用

browser.executeScript("window.localStorage.setItem('testing',true)"); 
從量角器本地存儲

添加上述聲明量角器配置文件的onPrepare方法中。

+0

謝謝,我會盡快嘗試此 – Nick

相關問題