introduction
Ce mois-ci, Seki Java présentait Selenium. Je pense qu'il sera utile pour les ingénieurs qui travaillent sur les tests E2E avec un large éventail de contenus tels que les cas d'utilisation de Selenide sur le terrain et les tendances du projet Selenium.
Du milieu, la batterie du Mac est insuffisante et c'est un mémo approximatif. Je suis désolé.
Aperçu
Association des ingénieurs du Kansai Java 8/5 - Selenium
Date: 05/08/2017 (sam) 14: 00-17: 00
Lieu: Location de la salle de conférence "Use Tsu" Fuji Co., Ltd.
Questionnaire sur le lieu
Les gens qui l'ont utilisé
--Sélénium ... Environ 70%
--Sélénide ... Environ 20%
--Fluent Lenium ... 1 personne
Ce que j'ai conçu dans le test utilisant Selenide et ce que j'essaye de faire
Présentateur: backpaper0
--Cadre qui enveloppe le pilote Web Selenium pour une utilisation facile
--Pour le test E2E
--CodeBorne (Estonie)
--Il y a aussi un séléide-appium
Pour plus de détails, voir [Web + DB Press vol.100 "[9e] Test automatique du navigateur avec Selenide …… De l'utilisation aux problèmes rencontrés sur le terrain"](http://gihyo.jp/magazine/wdpress/archive/2017 / vol100) publié
- Vous pouvez écrire comme jQuery
--Ajax est facile à tester
--Il existe un mécanisme de nouvelle tentative
--Facile à définir l'URL de base et WebDriver comme propriétés système
Efforts actuels
- Utilisez manuellement et poussez la pression d'Excel vers Selenide pour pousser l'automatisation des tests à votre patron
- Selenide automatise les tests E2E tout en prenant des scouts
- Les personnes qui acceptent confirment le sukusho
Être conçu
Je souhaite vérifier que la page s'affiche comme prévu
Vérifiez en mettant le nom d'écran dans l'élément méta
⇒Parce qu'il s'agit d'une application métier, la balise de titre ne change pas pour chaque écran
Je souhaite attendre la fin du traitement initial
J'ai utilisé «shouldBe» car les données initialement affichées sont également acquises par Ajax. Il réessayera sans attendre.
//Vérifiez l'état
$("#state").shouldBe(exactText("initialized"))
IE ne fonctionne pas comme prévu
--Chrome peut être testé bien
- Votre navigateur standard est IE ⇒ C'est difficile car il ne fonctionne pas comme prévu
Pour IE
Je ne peux pas entrer correctement lorsque j'appelle la méthode val
(Si vous entrez un caractère à la fois avec sendKey, cela fonctionnera ...)
⇒ Vous pouvez écraser Command avec Commandes # add
, alors piratez ceci et ajustez le comportement d'IE
IE est lent
(En partie parce que j'ai piraté Command)
Exécution à distance sur un autre PC
- Si vous souhaitez vérifier légèrement le fonctionnement lors de la mise en œuvre, cela fonctionne avec Chrome dans le développement local
--Prendre StackTrace et basculer entre le lancement d'IE et de Chrome
Je veux tester l'exécution dès que je vérifie le code de VCS
Il est difficile de réécrire le fichier de paramètres en fonction de l'environnement
- Informations de connexion JDBC
- Stockage de fichiers temporaire
- Pilote Chrome, emplacement du pilote IE
↓
--Utilisez la «condition» et le «profil» de Spring Boot
--Définissez l'URL de base, le navigateur cible, etc. avec TestRule
if (System.getProperty("selenide.baseUrl") == null) {
System.setProperty("selenide.baseUrl", "http://localhost:8080");
}
à partir de maintenant
--DBUnit pour la saisie des données de test et la vérification de la base de données
--Je veux générer un objet de page de manière semi-automatique
Exemple)
Après avoir écrit un sélecteur dans l'objet de page avec une annotation, obtenez la valeur et définissez-la dans cette variable
- Méthode japonaise + chaîne de méthodes
※image
Définissez la valeur sur foo("Huh")
.Barre de clic()
Question
Q. Y avait-il quelque chose d'instable (lent) en attente de traitement asynchrone?
- Il n'y a actuellement aucun traitement lourd qui provoque autant d'attente
- Vous pouvez modifier le délai maximum
- Selenide interroge en interne pendant 0,1 seconde en plus du temps de nouvelle tentative pendant la vérification asynchrone.
Q. Comment gérez-vous votre sukusho?
- Gestion des dossiers pour chaque classe de test
Q. Est-il possible d'effectuer un D & D ou de télécharger plusieurs fichiers en téléchargeant des fichiers?
――D & D utilise une bibliothèque commune, elle peut donc être exclue de la cible de test.
Q. Puis-je m'authentifier avec BASIC?
- Je n'ai pas fait ça avant. Ne pouvez-vous pas le changer uniquement pendant le test?
--Il existe un moyen de l'éviter en l'écrivant dans l'URL
--ID et PW peuvent être spécifiés comme arguments de la méthode Open de Seleniud
Q. Utilisez-vous sans tête?
- ne pas utiliser
- Je demande au développeur de voir le mouvement et de vérifier le fonctionnement.
Q. Le code de test est-il écrit par l'implémenteur au moment de la mise en œuvre?
--L'implémenteur a également écrit le test E2E au moment de la mise en œuvre
--L'implémenteur a un sélecteur pour la commodité des tests E2E.
Q. Pourquoi avez-vous choisi Selenide?
--Il semble facile à utiliser
――Il semble qu'il puisse être étendu quand quelque chose se passe
Exemple de développement d'infrastructure de test E2E de type DSL par Selenide à Osaka
Présentateur: @ shimashima35
Matériel de présentation
L'histoire originale est l'article suivant
Exemple de développement d'infrastructure de test automatique E2E de type DSL par Selenide
Objectif du développement des infrastructures
--Haute maintenabilité et productivité
- Si possible, laissez le planificateur écrire lui-même le test
Modèle d'objet de page hiérarchique introduit
BasePage
--Classe abstraite
--Seuls les sélecteurs sont décrits
- Dépend de l'API WebDriver / Selenide
--Le type de sélénide apparaît également dans la signature de la méthode
Page
--Hériter de BasePage
--Scenario de la classe de test
- En principe, il n'y a pas de description du sélecteur
Élimination du fonctionnement direct du sélénium / séléniure
--Page Object masque l'implémentation de Selenium / Selenide des scénarios de test
- Focus sur les scénarios
--Obtenir le spécificateur pour écrire le test
Méthode entièrement japonaise
--Parce qu'il couvre le salaire comptable fiscal
- Pour que même les non-programmeurs puissent écrire des tests
Enregistrement des données par pseudo modèle de générateur
--Créez les données utilisées dans le scénario de test dans le scénario
--Préparer la méthode d'enregistrement avec le pseudo modèle Builder
- Vous pouvez utiliser la fonction complémentaire de l'IDE
Unification des éléments d'écran communs par Mix-in
- Le croisement d'écran utilise la méthode par défaut de l'interface Java 8
Objectivation fine des éléments d'écran
--Tous les contextes sont classés (classe interne)
Objectize valeur de retour pour pseudo DSL
- Le complémentIDE peut être utilisé
Fonction d'enregistrement
- Fondamentalement, toutes les opérations sont enregistrées
--Effacer si le test est réussi
――Seule la vidéo lorsque vous avez échoué reste
- Peut être réduit à 1/100 en utilisant un codec de capture d'écran
- Monte media Library
-Non requis si vous utilisez BrowserStack etc.
Après avoir créé la fondation ...
――J'ai posé les fondations, mais la mise en œuvre du scénario n'a pas eu lieu
- Impossible d'enregistrer après la migration vers AWS
--Le scénario n'est pas maintenu
Une histoire qui a été troublée par l'introduction de FluentLenium
Présentateur: @kitkat_twit
FluentLenium
- Quickstart ne fonctionne pas
- Paramètres du pilote Web requis
- En premier lieu, la connaissance du sélénium est requise comme condition préalable
Préparation des données de test
--DBUnit ... Grande quantité d'entrée de données
--DBSetup… Test unitaire DAO / Repository
Gestion des projets de test
- Voulez-vous faire le même projet?
- Travaillez-vous avec le test unitaire?
⇒ N'est-il pas préférable d'avoir un autre projet?
Cependant, à part cela, il est facile d'oublier de le déplacer.
Remplaçant du Selenium Committer Day 2017 à Osaka
Présentatrice: Naoya Kojima / @jugemix
Ancienne histoire:
[Le comitter parle du présent et du futur de Selenium - Rapport "Selenium Committer Day 2017"](ttp: //gihyo.jp/news/report/2017/07/2601)
Jim Evans-L'avenir du sélénium
Jim Evans ... ancien MS, maintenant Salesforce
Sélénium maintenant
Slenium v3
- Le pilote Gecko est maintenant requis pour les tests de Firefox
--WebDriver ⇒ Avant la recommandation du W3C
L'avenir du sélénium
Selenium v4
- Recommandation W3C
--Dès maintenant, chaque fournisseur de navigateur développera WebDriver selon les spécifications.
Dans un futur lointain
- Le projet sera allégé par le fournisseur de navigateur développant le pilote.
- Problèmes de documents
- La documentation officielle est toujours v2
«Parce qu'il s'agit d'un projet bénévole, les ressources ne sont pas suffisantes.
Marcus Merrell - Automatisation des tests analytiques
Marcus Merrell… Ingénieur QA
User Analytics
--Pour B2C
Histoire d'échec dans le test A / B
- Teste généralement le contrôle qualité, puis publie
- Affichage du coupon publié à l'insu de l'AQ
- Un bug s'est produit lorsque des coupons moins populaires sont affichés
Contrôle qualité Analytics
--QA est isolé du processus de conception
――QA doit être activement impliquée
--Il y a browser-proxy comme outil à utiliser pour cela.
- En l'incorporant dans le test, vous pouvez capturer la réponse du navigateur, etc.
--Kibana peut être agrégé et saisi
Manoj Kumar-Testing avec un conteneur
Test avec docker
--Docker est pratique pour une exécution distribuée à l'aide de Selenium Grid
Table ronde sur l'AQ
J'ai utilisé Slido.com
Rapport d'audit #Seleniumjp du Selenium Committer Day 2017 "Q & A Panel Discussion"
Impressions
- Les outils et le savoir-faire autour de Selenium ont été améliorés, ce qui facilite le travail sur l'automatisation des tests E2E dans les projets de développement.
――En particulier, Selenide peut être implémenté comme jQuery, donc le seuil est bas pour les implémenteurs et il semble facile d'acquérir une compréhension sur place.
- Une conception commune telle que Page Object est nécessaire pour s'attaquer sérieusement à la productivité et à la maintenabilité de la création de code de test
Il est important pour la productivité et la maintenabilité de créer une base commune et de faciliter le test, mais il est probablement un autre problème de savoir si les tests E2E peuvent être utilisés en continu, et il est nécessaire de comprendre les tests E2E dans l'ensemble du projet de développement.
- La fonction d'enregistrement peut être pratique
- La méthode générale de création de données de test avec des outils tels que DBUnit (j'ai senti que le savoir-faire dans ce domaine est encore dans le futur).
- Je voudrais m'attendre à la recommandation du W3C et à la fourniture ultérieure de WebDriver par le fournisseur du navigateur, mais je suis inquiet (IE se conformera-t-il correctement?)
--Je veux utiliser sélénium-docker (ou plutôt, augmenter le nombre de tests E2E au besoin ...)