Mémo de la session d'étude: Kansai Java Engineers Association 8/5 - Selenium

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

Qu'est-ce que Selenide?

--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é

Efforts actuels

Ê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

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

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

--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

※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?

Q. Comment gérez-vous votre sukusho?

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?

Q. Utilisez-vous sans tête?

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é

Modèle d'objet de page hiérarchique introduit

BasePage

--Classe abstraite --Seuls les sélecteurs sont décrits

Page

--Hériter de BasePage --Scenario de la classe de test

É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

Méthode entièrement japonaise

--Parce qu'il couvre le salaire comptable fiscal

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

Unification des éléments d'écran communs par Mix-in

Objectivation fine des éléments d'écran

--Tous les contextes sont classés (classe interne)

Objectize valeur de retour pour pseudo DSL

Fonction d'enregistrement

Après avoir créé la fondation ...

――J'ai posé les fondations, mais la mise en œuvre du scénario n'a pas eu lieu

Une histoire qui a été troublée par l'introduction de FluentLenium

Présentateur: @kitkat_twit

FluentLenium

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

⇒ 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

L'avenir du sélénium

Selenium v4

Dans un futur lointain

Marcus Merrell - Automatisation des tests analytiques

Marcus Merrell… Ingénieur QA

User Analytics

--Pour B2C

Histoire d'échec dans le test A / B

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.

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

Recommended Posts

Mémo de la session d'étude: Kansai Java Engineers Association 8/5 - Selenium
Note de session d'étude: Kansai Java Engineers Association [Osaka] 7/12 - Cloud Native
[Mémo de la session d'étude] Java Day Tokyo 2017
Mémo de la méthode d'étude Java Silver
Mémo d'étude Java 2 avec Progate
[Session d'étude interne] Gestion des exceptions Java (2017/04/26)
Résumé de la session d’étude interne des recrues [Java]
[Java ~ A propos de la définition de variable et de la conversion de type ~] Note d'étude
Mémo Java
[Session d'étude interne] Exécution des bases Java sans utiliser l'IDE- (2017/07/06)
java quoi que ce soit mémo
Étudions Java
Mémo Java Silver
java, mémo maven
Échantillon de sélénium (Java)
Sélénium x Java
Remarque sur Java SE 7
java n'importe quoi mémo 2
[Java] Notes d'étude
Étudier Java 8 (répétable)
Mémorandum d'étude Java
Portée de session Java
Étudier Java Silver 1
Mémo de spécification Java
Mémo de modèle Java
[Session d'étude interne] Principes de base de l'expression Java-Lambda et de l'API Stream- (13/07/2017)
[Session d'étude interne] Bases de l'annotation Java (2017/11/02) ~ En construction ~