allure結(jié)合python生成測試報告教程
百度搜索實例
一、代碼結(jié)構(gòu)
本案例來自于霍格沃茲測試學院《高薪測試成長圖譜》。data.yml為數(shù)據(jù)管理文件,test_baidudemo.py為測試用例文件,文件結(jié)構(gòu)如下:

創(chuàng)建data/data.yml文件,代碼如下
- allure - pytest - unittest
創(chuàng)建test_baidudemo.py,代碼如下
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import allure
import pytest
import yaml
from selenium import webdriver
import time
@allure.testcase("https://www.baidu.com")
@allure.feature("百度搜索")
@pytest.mark.parametrize('test_data1',yaml.safe_load(open("data/data.yml")))
def test_steps_demo(test_data1):
with allure.step("打開百度網(wǎng)頁"):
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
with allure.step(f"輸入搜索詞:{test_data1}"):
driver.find_element_by_id("kw").send_keys(test_data1)
time.sleep(2)
driver.find_element_by_id("su").click()
time.sleep(2)
with allure.step("保存圖片"):
driver.save_screenshot("./result/b.png")
allure.attach.file("./result/b.png",attachment_type=allure.attachment_type.PNG)
with allure.step("關閉瀏覽器"):
driver.quit()
二、運行結(jié)果
進入項目目錄下,使用以下語句運行
pytest test_baidudemo.py -s -q --alluredir=./result/ #執(zhí)行測試用例,并生成測試報告數(shù)據(jù)在當前文件夾result文件下 allure serve ./result/ #啟動allure,并使用result下的測試結(jié)果數(shù)據(jù)生成測試報告
生成的報告如下圖所示:


問題解決
運行時總是報錯當前chromedriver只支持chrome78,實際上已經(jīng)更新了chromedriver83,未找到原因解決,最終在代碼里加上chromedriver絕對路徑。將driver = webdriver.Chrome()修改為driver = webdriver.Chrome(‘C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')。
with allure.step(f"輸入搜索詞:{test_data1}"):,在python3.6.8版本上運行該語句總是報語法錯誤,修改為 with allure.step(“輸入搜索詞:”+test_data1):,可以正常運行并輸出。
allure簡介與使用
allure簡介
Allure是一款輕量級并且非常靈活的開源測試報告框架。 它支持絕大多數(shù)測試框架, 例如TestNG、Pytest、JUint等。它簡單易用,易于集成。
allure如何生成測試報告
運行的時候加上 pytest.main ( ‘–alluredir', ‘report/result', ‘TestDemo01.py']) 會在當前文件夾創(chuàng)建一個report文件夾,在report文件夾下創(chuàng)建result


生成html測試報告
因為生成的測試報告是json的,不好看,所有用這個命令生成一個好看的HTML測試報告

運行之后,就會生成一個HTML文件夾,點開index.html這個就是我們的測試報告啦


allure幾個常用特性(測試報告中展示)
@allure.feature (用于描述被測試產(chǎn)品需求)

@allure.story (用于描述feature的用戶場景,即測試需求)

with allure.step() (用于描述測試步驟,將會輸出到報告中)

allure.attach (用于向測試報告中輸入一些附加的信息,通常是一些測試數(shù)據(jù),截圖等)

pytest斷言設置并結(jié)合allure生成測試報告

測試報告

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
用Python實現(xiàn)一個打字速度測試工具來測試你的手速
有很多小伙伴們都苦惱自己手速不夠,今天特地整理了這篇文章,教你用Python實現(xiàn)一個打字測試工具來測試你的打字速度,文中有非常詳細的代碼示例,對想練手速的小伙伴們很有用哦,需要的朋友可以參考下2021-05-05
python基于物品協(xié)同過濾算法實現(xiàn)代碼
這篇文章主要為大家詳細介紹了python基于物品協(xié)同過濾算法實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
Python項目實戰(zhàn)之使用Django框架實現(xiàn)支付寶付款功能
這篇文章主要介紹了Python項目實戰(zhàn)之使用Django框架實現(xiàn)支付寶付款功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
YOLOv5中SPP/SPPF結(jié)構(gòu)源碼詳析(內(nèi)含注釋分析)
其實關于YOLOv5的網(wǎng)絡結(jié)構(gòu)其實網(wǎng)上相關的講解已經(jīng)有很多了,但是覺著還是有必要再給大家介紹下,下面這篇文章主要給大家介紹了關于YOLOv5中SPP/SPPF結(jié)構(gòu)源碼的相關資料,需要的朋友可以參考下2022-05-05
Python?sklearn轉(zhuǎn)換器估計器和K-近鄰算法
這篇文章主要介紹了Python?sklearn轉(zhuǎn)換器估計器和K-近鄰算法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08
Phantomjs抓取渲染JS后的網(wǎng)頁(Python代碼)
phantomjs:我的理解就是它是一個無顯示的瀏覽器,也就是說除了不能顯示頁面內(nèi)容以外,瀏覽器能干的活兒它基本上都能干。下面我們就來利用他做點有趣的事情2016-05-05

