bhecquet / seleniumrobot-server Goto Github PK
View Code? Open in Web Editor NEWServer that supports seleniumRobot executions
License: Apache License 2.0
Server that supports seleniumRobot executions
License: Apache License 2.0
A partir de l'écran de choix de l'application, 2 boutons:
Ce dernier écran se compose:
A l'enregistrement des résultats depuis seleniumRobot, on va enregistrer les snapshots si ils sont disponibles. Mais la comparaison ne se fera que si l'options correspondante (à créer) de seleniumRobot est activée
Ajouter un flag à session pour savoir si celle-ci est une session de test ou une session de comparaison de snapshots. Ainsi, seules ces dernières seront affichées lorsqu'on voudra comparer les images. Les différences entre images seront également calculées uniquement dans ce cas là. Attention à l'utilisation des snapshots lors des recherches via filter(). Il faudra prendre en compte uniquement les sessions actives pour la recherche de différences
Comparison, in FileUploadView is only done on application / version / test case / snapshot name basis
currently, when user has right to edit variables / environments / ..., it has rights for all application which can be a security problem
Restrict access to variable / env / ... on a given application
Due to issue #32, when several variables are modified at once, we get a server error
This is due to the fact that we do not handle the case where test is 'None'
When giving test name, selected variables should be taken in priority from this test / environment combination over environment / version. Currently, this is not the case, variable specific to environment / version is returned
Actuellement, si un test case ou un test step a, lors de sa création, les mêmes informations qu'un case de test ou étape existante, elle n'est pas recréée. L'inconvénient, c'est que si lors d'une session de test, une étape est ajoutée à un test par rapport à l'exécution précédente, alors, l'ordre d'affichage ne sera pas le bon
Il faut donc faire en sorte que lors de la création, un nouveau cas de test soit créé à chaque fois. Même chose pour les steps
Au niveau de l'IHM, il faut que le filtrage et l'affichage regroupent les tests par nom
If step result is KO, status is 'red'
If step result is OK:
Il est possible que les captures d'écran de navigateurs changent de taille dans le temps, soit à cause du driver lui-même, soit simplement parceque la page a changé. Il faut que la comparaison ne plante pas à cause de cela. Actuellement, absdiff() ne permet de comparer que des tableaux de taille identique
Au lancement des tests, SeleniumRobot créé un ID de session basé sur l'heure et un code aléatoire. Celui-ci sera donc unique. Cet ID est transmis au serveur pour créer la session sans tests associés
Lorsqu'un test démarre, SeleniumRobot créé celui-ci sur le serveur s'il n'existe pas déjà et l'associe à la session => L'ID du test est récupéré
A chaque étape de test, on la créé si elle n'existe pas. Cela va associer cette étape au test et on va récupérer l'ID de l'étape
Chacun des 3 ID ainsi récupéré sera utilisé pour l'enregistrement de la capture
This info stores some data that identify an element (attributes, position, ...)
This will be used to improve test stability if something in page change
some icons are not present in deployed mode
When we query for variables, if a variable is defined twice (with 2 different values) for example, the same variable will always be rendered, based on the list returned by database
Add shuffle on list of variable so that a different value (for the same variable) can be get between calls
delete all sesssion which are older than the defined time to live except when they have reference snapshots
This will allow to analyze some bugs in test scripts
adding parameter 'reserve'
L'écran est divisé en 2. La partie gauche gère la sélection des tests, la partie droite sert à l'affichage de la comparaison
En tête, une liste déroulante des sessions de test avec la date
Une fois la session sélectionnée, un tableau situé sous les sessions présentera les tests exécutés.
Lorsqu'on sélectionne un test, on affiche dans une liste en dessous la liste des étapes du test
Le clic sur une étape affiche la comparaison dans le panneau de droite
La protection CSRF a été désactivée pour le moment afin de pouvoir avancer, mais elle devrait être réactivée sur les vues de l'IHM
En revanche, les vues de l'API ne devraient pas l'activer
Actuellement, la comparaison est réalisée entre les mêmes étapes d'un même test pour différentes sessions de test. L'inconvénient de ce mode, c'est que si on exclut une zone de la comparaison pour une étape d'un test, il faudra faire la même opération (au risque d'en oublier) sur tous les tests utilisant cette étape. Même chose pour un changement de référence.
ATTENTION: Une étape représentant une page spécifique de l'application, il est en revanche possible qu'au sein de mêmes étapes de test, le rendu soit totalement différent
Ainsi, il serait probablement plus intéressant de pouvoir partager les zones d'exclusion entre mêmes étapes de différents tests.
Il est possible de sélectionner une zone de l'image pour l'exclure de la comparaison.
Dans ce cas, le résultat de la comparaison doit être mis à jour automatiquement (mise à jour du tableau des étapes et du tableau des tests) avec les nouvelles couleurs si nécessaire
Cette zone d'exclusion devient valable pour toutes les sessions de test ultérieures sur l'étape spécifique de ce test.
allow "name" and/or "value" parameters when retrieving variables list
In case name is given, only one variable will be returnes because we always return at most one variable for each name
Lorsqu'on clique sur une étape de test, les 2 images (référence et celle de l'étape) sont affichées côte à côte dans le panneau d'affichage.
S'il y a des différences entre les images, celles-ci sont surlignées en rouge (pixel)
Dans le cas où il n'y a pas de référence, la partie gauche du panneau d'affichage sera vide et un message indiquera que l'image de droite est l'image de référence
stepList.html should be visible as a full HTML page so that the seleniumRobot HTML report can embed it
Le panneau de contrôle affiche un champ permettant de rechercher les sessions de test:
Un bouton OK permet ensuite de lancer la recherche.
Les sessions correspondantes sont affichées dans la liste déroulante en lieu et place de toutes les sessions
Allow to change TTL on sessions
Delete sessions
La coloration de la ligne dépend de l'état du test.
Dans un premier temps, il s'agira uniquement de l'état des comparaisons
Dans un second temps, l'état pourra aussi prendre en compte le retour de la part de SeleniumRobot
Cela permettra de plus facilement détecter les différences et les traiter
Si, par erreur, on a indiqué qu'une image était une référence pour les suivantes, alors il doit être possible de faire en sorte que cette image ne le soit plus. Dans ce cas, on se réfèrera à la référence précédente, ou à la première image de la série si aucune référence n'existe.
For now database contains a pickled version of pixel difference between 2 pictures
This can be huge (~20MB). Instead, store the PNG image mask which is created when difference is computed (~30 kB)
Chaque ligne du tableau des étapes d'un test est colorée en fonction de l'état de la comparaison
We get a Bad request
Filtering should also be possible by session names
Lors de son exécution, SeleniumRobot appelle un web service qui enregistre, pour un test, le résultat de celui-ci, permettant de rendre ce résultat disponible depuis le comparateur
For now, admin filtering on variable view is the standard one
Improve it so that:
documentation is here: https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display_links
Sometimes, when saving new exclude zones, modal background stays
Lorsqu'on détermine que l'image courante est la nouvelle référence, toutes les comparaisons dépendant de l'ancienne référence sont recalculées pour cette étape
Attention à la gestion des références:
Pour les créations d'objets. Ne devrait être utile que pour l'upload (à vérifier)
Dans le panneau d'affichage, les zones d'exclusion sont par défaut montrées. Mais elles peuvent être masquées grâce à une case à cocher en base du panneau.
Lorsqu'elles sont montrées, la partie de l'image correspondant est grisée
Actuellement, l'enregistrement des images implique le calcul des différences.
Or ce calcul peut prendre du temps (plusieurs secondes) ce qui ralentirait considérablement les tests
Il faut donc que le serveur fasse le calcul de manière asynchrone par rapport à l'upload de l'image:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.