2016-08-03 22 views
0

Ich bin neu bei Winkelmesser. Ich habe die Testdaten in Excel in mehreren Zeilen gespeichert. Ich möchte die gleiche Spezifikation mehrmals für jede Zeile in Excel ausführen. Ist es möglich?So führen Sie den Winkelmesser für mehrere Male basierend auf Excel-Werten aus

exports.config = { 


    seleniumAddress: 'http://localhost:4444/wd/hub', 

    baseUrl: 'https:somewebsite.com', 

    capabilities: { 

     'browserName': (process.env.TEST_BROWSER_NAME || workbook.Sheets[sheetNamelist[sheetNumber]]['N2'].v) 
     , 'version': (process.env.TEST_BROWSER_VERSION || 'ANY') 
     , 'shardTestFiles': false 
    , }, 
    onPrepare: function() { 
     browser.ignoreSynchronization = true; 
    }, 

    framework: 'custom' 
    , frameworkPath: require.resolve('protractor-cucumber-framework'), 

    specs: [ 
    '../Features/Availity_Login.feature' 
    ] 
    , exclude: '../Features/database.feature' 
    , cucumberOpts: { 

     monochrome: true 
     , strict: true 
     , plugin: ["pretty"] 
     , require: ['../StepDefinitions/*.js', '../Support/*.js'] 
     , tags: '@AllureScenario,@Regression,@ProtractorScenario,[email protected]' // @DatabaseTest scenario can be included when the username & password of DB have been configured in Support/database.js 

    } 


}; 

in dem obigen Skript würde Ich mag die Spezifikationen für mehr als einmal laufen, wie ich mehrere Testdaten in meinem excel habe. Ich kann die Excel-Werte mit dem Modul 'xlsjs' lesen. Beim Durchlaufen der Spezifikation wird die Spezifikation nur für das erste Mal ausgeführt.

+0

sehen aus wie Sie meinen 'Winkelmesser-Gurken-allure' Repo verwenden :) –

+0

da Sie verwenden' Winkelmesser-cucumber' i würden Sie vorschlagen, zu verwenden, Datentabellen! für Testdaten –

Antwort

3

Testen der gleichen Funktionalität mit mehreren Datensätzen ist nichts anderes als Data Driven Ansatz. Dafür haben wir Jasmin-Daten-Provider Paket, das Ihnen bei datengetriebenen Tests mit Winkelmesser hilft.

Code Snippet: 

var using = require(‘jasmine-data-provider); 
var loginData = require('../example/Test Data/Test.json'); 


describe('Data driven test spec', function() { 
    /*define sets of input data as array in method called arrayOfData*/ 
    //OR retrieve all test data and stored into array and the follow below  
    //approach 

    function arrayOfData() { 
    return [ 
      { 
      "username": "admin", 
      "passwordField": "admin" 
      }, 

     { 
      "username": "admin1", 
      "passwordField": "admin2" 
      } 
     ] 
    } /*below one will loop the test case based on data size and pass single 
     data set every time till complete the end of array*/ 

    using(arrayofData, function (inputData) { 
     it('test case logic to be executed for each set of data', function()      
      { 
      browser.get("http://127.0.0.1:8080/#/login"); 
      element(by.model("username")).sendKeys(inputData.username); 
      element(by.model("password")).sendKeys(inputData.passwordField); 
      element(by.buttonText("Authenticate")).click(); 
     }); 
    }); 
}); 

HINWEIS: Wenn Jasmin-Daten-Provider-Paket noch nicht in Ihrem Computer installiert ist, fügen Sie es installieren, indem Sie unter Befehl ausführen, bevor Testskript laufen soll.

npm install jasmine-data-provider 
+0

Um ein wenig auf diese Antwort zu erweitern, gibt es ein großes Tutorial für die Einrichtung mit diesem: http://moduscreate.com/protractor-and-jasmine-data-provider-write-once-test-many/ – Mallory

+0

@Mallory vielen Dank für das Teilen eines so guten Artikels. –

+0

Hallo Suresh/Mallory ... Danke für das Tutorial. Aber es sagt nicht, wie man die Daten von Excel bekommt. –

0

Sieht aus wie Sie bereits protractor-cucumber-framework verwenden. Cucumber bietet Ihnen Möglichkeiten, denselben Test für mehrere Daten auszuführen. Sie müssen nicht die Komplexität des Lesens von Daten aus Excel hinzufügen. Verwenden Sie die vom Framework bereitgestellten Funktionen erneut. In Ihrer .feature-Datei können Sie beispielsweise Folgendes tun. So wird dieses Szenario für jede Zeile als separaten Testlauf

Scenario Outline: 
    Given I have "<firstNumber>" and "<secondNumber>" 
    When I add them together 
    Then the total is "<sum>" 

    Scenarios: 
     | firstNumber | secondNumber | sum | 
     | 5   | 7   | 12 | 
     | -5   | 7   | 2 | 
     | 5   | -7   | -2 | 
+0

Hallo Nilesh. Das ist unsere Kundenanforderung. Sie werden die Testdaten in Excel aktualisieren und Winkelmesser sollte den Wert von Excel nehmen. –