Parle-moi de pytest. Qu'est-ce que c'est ? Qu'est-ce que les fixtures ? Comment fonctionnent-elles ?
QA / QA Automation
Quelles tâches recherchez-vous : ce que vous aimeriez faire et ce que vous ne voudriez pas faire ?
Que s'est-il passé, pourquoi cherches-tu un emploi maintenant?
Quelle est votre expérience avec SQL ?
Qu'est-ce qu'un Page Object et pourquoi est-il nécessaire ? Que se passera-t-il si ce pattern n'est pas utilisé ?
Qu'est-ce qu'un tuple et quels types de données en Python sont modifiables et immuables ?
""" self.fill_credentials(username, password) self.login_button.click() return Self.page def login_expecting_failure(self, username: str, password: str): """ Connexion échouée. Les actions sont les mêmes, mais je retourne self, car en cas d'erreur, nous restons sur la même page. Deux méthodes séparées au lieu d'une seule universelle sont faites exprès: pour que dans le test, il soit clair quel résultat est attendu. """ self.fill_credentials(username, password) self.login_button.click() return self
Comment avez-vous appris l'automatisation : de manière indépendante, par le biais de cours ou grâce à une formation spécialisée ?
Qu'est-ce que la méthode __init__ et qu'est-ce que cela signifie de créer un objet ?
Quelle approche utilisez-vous pour localiser les localisateurs dans Playwright et pourquoi ? Que se passera-t-il avec getByLabel si l'ID du champ lié change dans le HTML ?
Qu'est-ce que la classe BasePage et pourquoi est-elle nécessaire ?
Pourquoi la méthode open retourne-t-elle self et comment est-elle utilisée dans les tests ?
def __init__(self, page) -> None: super().__init__(page) # Les champs ont des étiquettes normales, donc je les recherche de la même manière qu'un utilisateur, # pas par id ou classe CSS, que le concepteur peut renommer à tout moment self.username_input = page.get_by_label("Username") self.password_input = page.get_by_label("Password") self.login_button = page.get_by_role("button", name="Login") # Le formulaire est nécessaire pour vérifier que nous ne sommes pas partis dans des tests négatifs self.login_form = page.locator("form#login") # Le message flash, il est le même pour succès et erreur self.flash_message = page.locator("#flash") def fill_credentials(self, username: str, password: str): self.username_input.fill(username) self.password_input.fill(password) return self def login(self, username: str, password: str) -> SecurePage: """
En quoi XPath diffère-t-il de CSS en plus de la syntaxe et quelle méthode de recherche préférez-vous ?
Qu'est-ce que la méthode __init__ et pourquoi est-elle nécessaire ?
Qu'est-ce que *args et **kwargs ? Quelles structures de données forment-ils ?
Parlez brièvement de vous : combien d'expérience avez-vous, ce que vous avez fait et ce qui a été le plus intéressant du point de vue des tests automatisés ?