Customizing Allure Test Reports with Pytest – A Step‑by‑Step Tutorial
This tutorial explains how to install Allure‑pytest, create a simple Dianping search test case, generate the default report, and progressively enhance it with custom titles, detailed steps, fixture‑based setup/teardown, hierarchical features, severity levels, and rich HTML descriptions, all using Python code snippets.
The Allure Framework is a lightweight, multi‑language test report generator that presents test results in an elegant web UI. By integrating Allure with Pytest, teams can extract valuable status information from each test run.
Environment setup : install the latest Python, then run the following commands to add the required packages:
pip3 install pytest pip3 install allure-pytestUse pip3 list to verify the installed versions.
Test scenario : a simple Dianping homepage and search test is used as a demo. Two test points are defined – homepage title assertion and search result title assertion – each implemented as a separate Pytest function.
Generating the default Allure report : pytest --alluredir=results After execution, JSON files are created in the specified directory. To view a temporary web report, run: allure serve results To generate a permanent HTML report: allure generate results -o allure-report Customizing test case titles – replace the default method‑name titles with meaningful ones:
@allure.title("Validate Dianping homepage title") @allure.title("Validate {txt} search result title")Adding detailed steps with with allure.step("step description") makes each action visible in the report.
Setup/teardown via fixtures : move browser initialization and closure into a pytest.fixture(scope="class") and use it in a test class, reducing redundancy.
Hierarchical grouping and severity :
@allure.feature('Dianping page tests') @allure.story('Dianping homepage') @allure.severity('critical')and similarly for the search test with @allure.story('Dianping search') and @allure.severity('blocker').
Rich description – embed HTML in the report using
@allure.description_html("""<h2>Validate Dianping homepage title</h2><h3>Test steps</h3><ul><li>Open Chrome and navigate to Dianping</li><li>Capture homepage title</li><li>Assert the title</li></ul>""").
All these customizations are demonstrated across incremental script versions (V1.0 to V1.5), with screenshots showing the evolving report UI.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
