Gao Fushuai in der Welt der Unit-Tests, Pytest Framework (Ende) Testbericht

In den ersten drei Kapiteln haben Sie das Schreiben von Anwendungsfällen, die Vor- und Nachverarbeitungsmethoden, die Markierung von Anwendungsfällen und andere Methoden von Pytest kennengelernt. In diesem Kapitel wird hauptsächlich vorgestellt, wie Pytest Testberichte integriert. Pytest selbst verfügt nicht über die Funktion zum Generieren von Testberichten, es gibt jedoch viele Plug-Ins in Pytest, mit denen wir Testberichte erstellen können. Im Folgenden stellen wir zwei Möglichkeiten zum Erstellen von Berichten vor. Eine besteht darin, HTML-Berichte zu generieren, und die andere darin, die Allure-Berichtsplattform zu integrieren, um Testberichte anzuzeigen.

1. HTML-Bericht generieren

Es gibt viele Plug-Ins für Pytest zum Generieren von HTML, z. B. Pytest-HTML, Pytest-Testreport usw. Hier werde ich vorstellen, wie Sie das Pytest-Testreport-Plug-In zum Generieren von HTML-Testberichten verwenden.

1.1. Plug-in installieren

pip install pytest-testreport

Hinweis: Wenn Sie das pytest-html-Plugin installiert haben, deinstallieren Sie es bitte zuerst, da es sonst zu Konflikten kommen kann.

1.2. Einführung in die Verwendung von Plug-Ins

Wenn Sie pytest zum Ausführen von Tests verwenden und pytest-testreport zum Generieren eines Testberichts verwenden möchten, fügen Sie den Parameter --report hinzu, um beim Ausführen des Tests den Namen der Berichtsdatei anzugeben.

Weitere Betriebsparameter:

--title: Geben Sie den Berichtstitel an

--tester: Geben Sie den Tester im Bericht an

--desc: Geben Sie die Elementbeschreibung im Bericht an

--template: Geben Sie den Berichtsvorlagenstil an (1 oder 2).

  • Befehlszeilenausführung:
pytest --report=musen.html --title=测试报告 --tester=月下 --desc=项目描述  --template=2
  • Verwenden Sie pytest.main, um den Code auszuführen
import pytest

pytest.main(['--report=musen.html',
             '--title=上课报告',
             '--tester=测试员',
             '--desc=报告描述信息',
             '--template=2'])

Das generierte Berichtsformat ist wie folgt

Stil eins

Stil 2

Dies ist die Einführung in die Berichtserstellung im HTML-Format. Als Nächstes erkläre ich Ihnen, wie Sie den Allure-Bericht integrieren.

2. Integrieren Sie den Allure-Bericht

Wenn Sie Allure-Berichte in Pytest integrieren möchten, müssen Sie zunächst Allure herunterladen und die Umgebung konfigurieren

2.1, Allure-Umgebungskonfiguration

1. Allure herunterladen: Adresse:
https://github.com/allure-framework/allure2/releases

Nach dem Herunterladen und Entpacken

2. Konfiguration der Umgebungsvariablen

Fügen Sie den Bin-Verzeichnispfad des Allure-Pfads nach der Dekomprimierung von Allure in die Umgebungsvariable ein

3. Installieren Sie das Pytest-Plugin von Allure

pip install allure-pytest 

2.2. Erstellen Sie einen Allure-Bericht

Nach der Installation und Konfiguration der Allure-Umgebung können Sie bei Verwendung von Pytest zum Ausführen des Anwendungsfalls angeben, dass Allure-Berichte über die Parameter des Allure-Plug-Ins generiert werden sollen.

Betriebsparameter:

--alluredir: Geben Sie den Pfad an, in dem Allure-Berichte gespeichert werden

  • Von der Befehlszeile ausführen
pytest --alluredir=reports
  • Verwenden Sie pytest.main, um den Code auszuführen
import pytest

pytest.main(['--alluredir=reports'])

2.3. Starten Sie den Allure-Dienst

Geben Sie den folgenden Befehl in das Befehlsterminal ein, um den Allure-Dienst zu starten

# 命令:allure serve  生成的报告路径
allure serve reports

Führen Sie den obigen Befehl aus. Nachdem der Allure-Dienst gestartet wurde, wird der Browser automatisch geöffnet und die Allure-Service-Seite angezeigt.

2.4. Allure verfügt über integrierte, häufig verwendete Methoden.

Fehler-Screenshot hinzufügen

  • allure.title
 def error_save_screenshot(driver,file_path, desc):
        # 对当前页web页面进行截图
        driver.save_screenshot(file_path)
        # 将截图保存到allure报告中
        with open(file_path, "rb") as f:
            file = f.read()
            allure.attach(file, "失败截图", allure.attachment_type.PNG)

Fügen Sie dem Bericht einen Anwendungsfallnamen hinzu

  • allure.title import allure class TestLogin: @allure.title('登录用例') def test_login(self): bestanden

Legen Sie den Anwendungsfallnamen in parametrisierten Anwendungsfällen dynamisch fest

  • allure.dynamic.title # Anwendungsfalldaten casedatas = [ {'title': 'Umgekehrter Anwendungsfall 1','data':"xxx"}, {'title': 'Umgekehrter Anwendungsfall 2','data':" xxx "}, {'title': 'Reverse Use Case 3','data':"xxx"} ] class TestLogin: @pytest.mark.parametrize('item',casedatas ) def test_demo(self, item): # Dynamisch Legen Sie den Anwendungsfallnamen im Bericht fest: allure.dynamic.title(item['title'])

Fügen Sie Funktionsbeschreibungen in Berichten hinzu

  • allure.story
@allure.story('登录功能')
class TestLogin:

    @allure.title('登录用例')
    def test_login(self):
        pass

Paketnamen im Bericht hinzufügen

  • allure.suite
@allure.suite('登录测试套件')
class TestLogin:
    @allure.title('登录用例')
    def test_login(self):
        pass

Die Funktion von pytest zum Generieren von Testberichten wurde hier erweitert!

Supongo que te gusta

Origin blog.csdn.net/a448335587/article/details/132839049
Recomendado
Clasificación