2017-10-10 7 views
0

Je suis en train de tester un filtre Web et souhaite effectuer un test simple pour vérifier qu'une page est bloquée. Je voudrais aussi lancer ce test sur des centaines de pages. Le code suivant fonctionne pour une page individuelle:Exécuter un test de jasmin sur de nombreux sites Web

for (var n = 0; n < 3; n++) { 
    describe("Blocked Sites",() => { 

     it('should block ',() => { 
      sites.pageGo(); 
      expect(sites.blockedIDOnLoad.isVisible()).toBeTruthy; 
     }); 

    }); 

}

sites.pageGo() fournit le site suivant chaque fois que la boucle est répétée. Cela fonctionne très bien tant que chaque page fournie par pageGo() est bloquée. Par exemple, si elle boucle 3 fois, j'obtiendrai 3 tests réussis. Je peux regarder que le navigateur charge chaque page différente et se bloque. Toutefois, si l'une des pages n'est pas bloquée, tous les tests échouent. Je voudrais lancer ce test contre de nombreux sites (certains bloqués, d'autres non). Je suis un débutant quand il s'agit de tests automatisés, et j'apprécierais beaucoup les conseils/connaissances que vous avez à offrir. Existe-t-il un moyen de mettre en œuvre ce test avec mon cadre actuel, ou existe-t-il une meilleure approche?

Répondre

0

J'ai été capable de le faire fonctionner en utilisant une boucle de .... Voici ce qui a fonctionné pour moi. J'espère que cela t'aides.

D'abord, je configure une classe de site.

export default class Site { 
    url: string; 
    id: string; 

    constructor(url: string, id: string) { 
     this.url = url; 
     this.id = id; 
    } 

    get blockedIDOnLoad() { return browser.element(this.id); }  
} 

Et puis les essais ressemblent à ceci ...

import site from './site'; 

describe("Blocked Sites",() => { 
    //obviously you wouldn't do it this way for a bunch of sites 
    //should help get the idea across though 
    const sites = [ new site("http://www.google.com", "#lst-ib"), 
     new site("http://facebook.com", "#blockedId"), 
     new site("http://twitter.com", "#blockedId") ];  

    for (const s of sites) { 
     it('should block',() => { 
      browser.url(s.url); 
      expect(s.blockedIDOnLoad.isVisible()).toBe(true); 
     });    
    } 
}); 

Le test de Google passe parce que c'est une carte d'identité valide sur cette page.

enter image description here

+0

Excellente suggestion, merci. – Gorgotron

0

Je pense que vous pouvez également utiliser this comme ci-dessous

describe("test power",() => { 

     function test(x){ 
     var result = x * x * x; 
     it(`${x} in the power 3 is ${result}`, function() { 
     assert.equal(pow(x, 3), result); 
    }); 
     for (var x = 1; x <= 5; x++) { 
    test(x); 
    } 
} 

});