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.