Mode de conception des essais automatisés - - pom

Wxm192939 2022-01-15 03:40:55 阅读数:83

mode conception des essais automatis

1.POMode

1).Modèle d'objet de page(PO)C'est un modèle de conception,Bibliothèque d'objets utilisée pour gérer la maintenance d'un ensemble d'éléments de page.

2).InPOEn bas.,Chaque page de l'application a une correspondancePageCatégorie.

3).ChaquePageLa classe maintient l'ensemble des éléments de la page et la façon dont ils sont manipulés.

L'idée centrale est de réduire le Code redondant en Encapsulant les éléments d'interface,Pendant ce temps, pendant l'entretien ultérieur,Si l'emplacement de l'élément change, Il suffit d'ajuster le Code pour l'encapsulation des éléments de page,Améliorer la maintenabilité des cas d'essai、Lisibilité.

POLe modèle peut diviser une page en trois couches,Niveau de base、Niveau opérationnel、Couche d'essai.

Niveau de base(Base):Encapsule les mêmes propriétés et méthodes pour chaque page,Comme le positionnement des éléments,Fonctionnement,Cliquez sur

from selenium import webdriver
class BasePage:
#Encapsule les propriétés et les méthodes communes à chaque page
#Attributs communs
def __init__(self, driver):
self.driver = driver
#Approche commune Positionnement des éléments,Fonctionnement,Cliquez sur
#Positionnement des éléments
def loctor(self,loc):
return self.driver.find_element(*loc)
#Entrée
def send_key(self,loc,value):
self.loctor(loc).send_keys(value)
#Cliquez sur
def click(self,loc):
self.loctor(loc).click
def getURL(self,url):
self.driver.get(url)

Niveau opérationnel(Pageobject): Chaque page définit une classe , La classe contient des éléments et des méthodes pour les manipuler

import time
from selenium.webdriver.common.by import By
from base.BasePage import BasePage
class login_Page(BasePage):
# Définir les éléments et les éléments opérationnels
username=(By.XPATH,".//*[@id='nloginname']")
passwd=(By.XPATH,".//*[@id='npwd']")
submit_btn=(By.XPATH,".//*[@id='nsubmit']")
url="https://passport.ctrip.com/user/login?"
def login(self,username,passwd):
# Charger l'adresse de la page
self.getURL(self.url)
#Éléments opérationnels,Saisissez le contenu
self.send_key(loc=self.username,value=username)
time.sleep(5)
self.send_key(loc=self.passwd, value=passwd)
time.sleep(3)
self.click(loc=self.submit_btn)
time.sleep(10)
class input(BasePage):
put = (By.XPATH, ".//*[@id='kw']")
put1 = (By.XPATH, ".//*[@id='su']")
url = "http://www.baidu.com/"
def input(self):
self.getURL(self.url)
self.send_key(loc=self.put,value="github")
self.click(loc=self.put1)

Couche d'essai(Testcase): Inclure les processus opérationnels et les données d'essai

import unittest
from selenium import webdriver
from base import BasePage
from pageobject.login_Page import login_Page
class TestCase_login(unittest.TestCase):
def test_01_login(self):
self.driver=webdriver.Firefox()
loginpage=login_Page(self.driver)
loginpage.login(username="15991986680",passwd="wxm1314!")
def test_input(self):
self.driver = webdriver.Firefox()
input1 = input(self.driver)
input1.input()

2. IntroductionPO Avantages du modèle

1).IntroductionPOAvant le mode

Il y a beaucoup de codes redondants

Le processus opérationnel n'est pas clair et les coûts d'entretien ultérieurs sont élevés

2).IntroductionPOAprès le mode

Réduire les codes redondants

Le Code d'entreprise et le Code d'essai sont séparés , Réduire les coûts d'entretien du couplage faible

Amélioration de la maintenabilité,Extensibilité

版权声明:本文为[Wxm192939]所创,转载请带上原文链接,感谢。 https://javamana.com/2022/01/202201080610163811.html