Cadre de test d'automatisation de l'interface utilisateur Web

pyse renommé rarement

Framework de test d'automatisation WebUI basé sur Selenium et unittest.

Cadre de test d'automatisation de l'interface utilisateur Web basé sur le sélénium et le test unitaire.

caractéristiques

  • Fournir une API plus simple pour écrire des tests automatisés.
  • Fournir un échafaudage pour générer rapidement des projets de test automatisés.
  • Générez automatiquement la génération de rapport de test HTML.
  • Méthode d'assertion autonome, affirmer le titre, l'URL et le texte.
  • Prise en charge du paramétrage des cas d'utilisation.
  • Prend en charge la réexécution de l'échec du cas d'utilisation.
  • Utilisez une capture d'écran d'échec/erreur de cas.

Installer

> pip install seldom

Si vous souhaitez suivre la dernière version, vous pouvez installer avec l'URL du référentiel github :

> pip install -U git+https://github.com/defnngj/seldom.git@master

Démarrage rapide

1. Afficher l'aide :

> seldom -h
usage: seldom [-h] [-V] [--startproject STARTPROJECT] [-r R]

WebUI automation testing framework based on Selenium.

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show version
  --startproject STARTPROJECT
                        Specify new project name.
  -r R                  run test case

2. Créez un projet :

>seldom --startproject mypro

3. Structure du répertoire :

mypro/
├── test_dir/
│   ├── test_sample.py
├── report/
└── run.py
  • test_dir/Le catalogue implémente l'écriture de cas d'utilisation.
  • report/ Le répertoire stocke les rapports de test générés.
  • run.py fichier pour exécuter les cas de test.

3. Exécutez le projet :

> seldom -r run.py
Python 3.7.1                                                                    

            _      _
           | |    | |
 ___   ___ | |  __| |  ___   _ __ ___
/ __| / _ \| | / _` | / _ \ | '_ ` _ \
\__ \|  __/| || (_| || (_) || | | | | |
|___/ \___||_| \__,_| \___/ |_| |_| |_|
-----------------------------------------
                             @itest.info

generated html file: file:///D:\mypro\reports\2019_11_12_22_28_53_result.html   
.1                                                                              

4. Afficher le rapport

Vous pouvez accéder au  mypro\reports\ répertoire pour afficher le rapport de test.

Documents API

démo simple

Veuillez consulter  demo/test_sample.py le fichier

import seldom


class YouTest(seldom.TestCase):

    def test_case(self):
        """a simple test case """
        self.open("https://www.baidu.com")
        self.type(id_="kw", text="seldom")
        self.click(css="#su")
        self.assertTitle("seldom")


if __name__ == '__main__':
    seldom.main("test_sample.py")

illustrer:

  • Pour créer une classe de test, il faut hériter de  seldom.TestCase.
  • Les noms de fichiers de cas de test doivent  test commencer par .
  • Encapsule rarement les méthodes d'assertion telles que assertTitle, assertUrl et  .assertText

méthode main()

import seldom

# ...

if __name__ == '__main__':
    
    seldom.main(path="./",
              browser="chrome",
              title="百度测试用例", 
              description="测试环境:chrome", 
              debug=False,
              rerun=0,
              save_last_run=False
    )

illustrer:

  • path : spécifie le répertoire ou le fichier de test.
  • navigateur : spécifiez le navigateur de test, la valeur par défaut Chrome.
  • title : Spécifie le titre du rapport de test.
  • description : spécifie la description du rapport de test.
  • debug : mode débogage, défini sur True pour ne pas générer de tests HTML de test, par défaut sur False.
  • rerun : définit le nombre de relances en cas d'échec, la valeur par défaut est  0.
  • save_last_run : défini pour enregistrer uniquement le dernier résultat, la valeur par défaut est False.

Exécutez le test

import seldom

seldom.main(path="./")  # 当前目录下的所有测试文件
seldom.main(path="./test_dir/")  # 指定目录下的所有测试文件
seldom.main(path="./test_dir/test_sample.py")  # 指定目录下的测试文件
seldom.main(path="test_sample.py")  # 指定当前目录下的测试文件

illustrer:

  • Si un répertoire est spécifié, le fichier de test doit test commencer par .
  • Si vous souhaitez exécuter les fichiers du sous-répertoire, vous devez ajouter les fichiers du sous-répertoire  __init__.py .

Navigateurs et pilotes pris en charge

Si vous souhaitez spécifier que les cas de test s'exécutent dans différents navigateurs, c'est très simple, il vous suffit de passer  des paramètres dans seldom.main()la méthode .browser

import seldom

if __name__ == '__main__':
    seldom.main(browser="chrome") # chrome浏览器,默认值
    seldom.main(browser="firefox") # firefox浏览器
    seldom.main(browser="ie")  # IE浏览器
    seldom.main(browser="opera") # opera浏览器
    seldom.main(browser="edge") # edge浏览器
    seldom.main(browser="chrome_headless") # chrome浏览器headless模式
    seldom.main(browser="firefox_headless") # Firefox浏览器headless模式

Différentes adresses de téléchargement de pilotes de navigateur :

geckodriver(Firefox) : versions · mozilla/geckodriver · GitHub

Chromedriver (Chrome): https://sites.google.com/a/chromium.org/chromedriver/home

IEDriverServer (IE): http://selenium-release.storage.googleapis.com/index.html

operadriver(Opera) : versions · operasoftware/operachromiumdriver · GitHub

MicrosoftWebDriver (Edge): Microsoft Edge WebDriver - Développeur Microsoft Edge

================================================= === ========

positionnement des éléments

<form id="form" class="fm" action="/s" name="f">
    <span class="bg s_ipt_wr quickdelete-wrap">
        <input id="kw" class="s_ipt" name="wd">

Ciblage :

self.type(id_="kw", text="seldom")
self.type(name="wd", text="seldom")
self.type(class_name="s_ipt", text="seldom")
self.type(tag="input", text="seldom")
self.type(link_text="hao123", text="seldom")
self.type(partial_link_text="hao", text="seldom")
self.type(xpath="//input[@id='kw']", text="seldom")
self.type(css="#kw", text="seldom")

Cas de test paramétrés

prend rarement en charge les cas de test paramétrés et intègre les fichiers .


import seldom
from seldom import ddt

# ...

class BaiduTest(seldom.TestCase):

    @ddt.data([
        (1, 'seldom'),
        (2, 'selenium'),
        (3, 'unittest'),
    ])
    def test_baidu(self, name, keyword):
        """
         used parameterized test
        :param name: case name
        :param keyword: search keyword
        """
        self.open("https://www.baidu.com")
        self.type(id_="kw", text=keyword)
        self.click(css="#su")
        self.assertTitle(search_key+"_百度搜索")

modèle de conception d'objets de page

prend rarement en charge le modèle de conception des objets Page et peut être utilisé avec poium  .

import seldom
from poium import Page, PageElement


class BaiduPage(Page):
    """baidu page"""
    search_input = PageElement(id_="kw")
    search_button = PageElement(id_="su")


class BaiduTest(seldom.TestCase):
    """Baidu serach test case"""

    def test_case(self):
        """
        A simple test
        """
        page = BaiduPage(self.driver)
        page.get("https://www.baidu.com")
        page.search_input = "seldom"
        page.search_button.click()
        self.assertTitle("seldom_百度搜索")


if __name__ == '__main__':
    seldom.main("test_po_demo.py")

poium fournit des fonctions plus utiles pour faciliter la création de la couche Page.

Je suppose que tu aimes

Origine blog.csdn.net/nhb687095/article/details/129749712
conseillé
Classement