web-dev-qa-db-fra.com

Créer une chaîne aléatoire dans le cyprès et la transmettre à une commande cic

Je suis nouveau à Cyprès et j'ai un petit problème que je voudrais de l'aide.

J'ai un champ de saisie dans mon application qui me permet d'entrer un nom. Ce nom doit être unique et ne doit pas être identique à un nom existant déjà dans le système.

Je clique actuellement sur ce champ de saisie par:
cy.get('input[type="text"].form-control')

Si j'utilise la commande cy.type() _, cela saisira toujours la même valeur fournie, mais chaque fois que le test fonctionne, je souhaite affecter une valeur différente.

// Fill in some details of a new class to proceed with creation  
cy.get('.pull-left > h4').contains('Add a new class')  
cy.get('input[type="text"].form-control') // Clicks on the field

// Some code to go here to create a random string and use what was created and 
type this into the field above

attend
[.

5
Jas

J'ai créé une seule fonction qui génère la chaîne aléatoire, puis crée une variable pour stocker cette valeur, puis utiliser la valeur dans la logique du reste du test.

    function generate_random_string(string_length) {
        let random_string = '';
        let random_ascii;
        for(let i = 0; i < string_length; i++) {
            random_ascii = Math.floor((Math.random() * 25) + 97);
            random_string += String.fromCharCode(random_ascii)
        }
        return random_string
    }

J'attribue ensuite ceci à une variable ci-dessous:

var random_string = generate_random_string(8)

Ensuite, la sortie extraite de celle-ci et mettez dans le champ en utilisant les commandes simples get et type commandes de cyprès:

cy.get('input[type="text"].form-control').type(random_string)

Cela obtient la valeur et les types dans le domaine que je voulais. Je peux aussi "random_string" à nouveau dans n'importe quel test, par exemple, si je souhaite faire des affirmations plus tard dans le test.

0
Jas
example.spec.js

it('timestamp', function() {
cy.task('datenow').then((random) => { cy.log('test' + random)})
}) 

plugins/index.js

on('task', {
datenow () {
return Date.now()
}
}) 

Le code ci-dessus générera des chaînes aléatoires

0
Chandra S