Framework zum Testen der Web-UI-Automatisierung

pyse umbenannt in selten

WebUI-Automatisierungstest-Framework basierend auf Selenium und Unittest.

Framework zum Testen der Web-UI-Automatisierung basierend auf Selenium und Unittest.

Merkmale

  • Stellen Sie eine einfachere API bereit, um automatisierte Tests zu schreiben.
  • Stellen Sie ein Gerüst bereit, um schnell automatisierte Testprojekte zu generieren.
  • Generieren Sie automatisch die Generierung von HTML-Testberichten.
  • Eigenständige Behauptungsmethode, Behauptungstitel, URL und Text.
  • Unterstützung für die Parametrisierung von Anwendungsfällen.
  • Unterstützen Sie die Wiederholung des Anwendungsfallfehlers.
  • Use-Case-Fehler/Fehler-Screenshot.

Installieren

> pip install seldom

Wenn Sie mit der neuesten Version Schritt halten möchten, können Sie mit der Github-Repository-URL installieren:

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

Schnellstart

1. Hilfe anzeigen:

> 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. Erstellen Sie ein Projekt:

>seldom --startproject mypro

3. Verzeichnisstruktur:

mypro/
├── test_dir/
│   ├── test_sample.py
├── report/
└── run.py
  • test_dir/Der Katalog implementiert das Schreiben von Anwendungsfällen.
  • report/ Das Verzeichnis speichert die generierten Testberichte.
  • run.py Datei zum Ausführen der Testfälle.

3. Führen Sie das Projekt aus:

> 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. Zeigen Sie den Bericht an

Sie können in  mypro\reports\ das Verzeichnis gehen, um den Testbericht anzuzeigen.

API-Dokumente

einfache Demo

Bitte sehen Sie sich  demo/test_sample.py die Datei an

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

veranschaulichen:

  • Um eine Testklasse zu erstellen, muss geerbt werden  seldom.TestCase.
  • Dateinamen von Testfällen müssen  test mit beginnen.
  • Kapselt selten Behauptungsmethoden wie assertTitle, assertUrl und  .assertText

main()-Methode

import seldom

# ...

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

veranschaulichen:

  • path : Gibt das Testverzeichnis oder die Datei an.
  • browser: Geben Sie den Testbrowser an, standardmäßig Chrome.
  • title : Gibt den Titel des Testberichts an.
  • description : Gibt die Beschreibung des Testberichts an.
  • debug : Debug-Modus, auf True gesetzt, um keine Test-HTML-Tests zu generieren, standardmäßig auf False.
  • rerun : Stellen Sie die Anzahl der Wiederholungen bei Fehlern ein, der Standardwert ist  0.
  • save_last_run : Legt fest, dass nur das letzte Ergebnis gespeichert wird, der Standardwert ist False.

Führen Sie den Test durch

import seldom

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

veranschaulichen:

  • Wenn ein Verzeichnis angegeben ist, muss die Testdatei test mit beginnen.
  • Wenn Sie die Dateien im Unterverzeichnis ausführen möchten, müssen Sie die Dateien im Unterverzeichnis hinzufügen  __init__.py .

Unterstützte Browser und Treiber

Wenn Sie festlegen möchten, dass die Testfälle in verschiedenen Browsern ausgeführt werden, ist dies sehr einfach, Sie müssen nur  Parametereinstellungen in seldom.main()der Methode übergeben.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模式

Verschiedene Browser-Treiber-Download-Adressen:

geckodriver (Firefox): Freigaben · 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): Freigaben · operasoftware/operachromiumdriver · GitHub

MicrosoftWebDriver(Edge): Microsoft Edge WebDriver – Microsoft Edge-Entwickler

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

Elementpositionierung

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

Ausrichtung:

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

Parametrisierte Testfälle

unterstützt selten parametrisierte Testfälle und integriert parametrisierte .


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+"_百度搜索")

Entwurfsmuster für Seitenobjekte

unterstützt selten das Entwurfsmuster für Seitenobjekte und kann mit poium verwendet werden  .

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 bietet weitere nützliche Funktionen, um die Erstellung der Seitenebene zu vereinfachen.

Ich denke du magst

Origin blog.csdn.net/nhb687095/article/details/129749712
Empfohlen
Rangfolge