allure結(jié)合python生成測試報(bào)告教程
百度搜索實(shí)例
一、代碼結(jié)構(gòu)
本案例來自于霍格沃茲測試學(xué)院《高薪測試成長圖譜》。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("關(guān)閉瀏覽器"): driver.quit()
二、運(yùn)行結(jié)果
進(jìn)入項(xiàng)目目錄下,使用以下語句運(yùn)行
pytest test_baidudemo.py -s -q --alluredir=./result/ #執(zhí)行測試用例,并生成測試報(bào)告數(shù)據(jù)在當(dāng)前文件夾result文件下 allure serve ./result/ #啟動(dòng)allure,并使用result下的測試結(jié)果數(shù)據(jù)生成測試報(bào)告
生成的報(bào)告如下圖所示:
問題解決
運(yùn)行時(shí)總是報(bào)錯(cuò)當(dāng)前chromedriver只支持chrome78,實(shí)際上已經(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版本上運(yùn)行該語句總是報(bào)語法錯(cuò)誤,修改為 with allure.step(“輸入搜索詞:”+test_data1):,可以正常運(yùn)行并輸出。
allure簡介與使用
allure簡介
Allure是一款輕量級(jí)并且非常靈活的開源測試報(bào)告框架。 它支持絕大多數(shù)測試框架, 例如TestNG、Pytest、JUint等。它簡單易用,易于集成。
allure如何生成測試報(bào)告
運(yùn)行的時(shí)候加上 pytest.main ( ‘–alluredir', ‘report/result', ‘TestDemo01.py']) 會(huì)在當(dāng)前文件夾創(chuàng)建一個(gè)report文件夾,在report文件夾下創(chuàng)建result
生成html測試報(bào)告
因?yàn)樯傻臏y試報(bào)告是json的,不好看,所有用這個(gè)命令生成一個(gè)好看的HTML測試報(bào)告
運(yùn)行之后,就會(huì)生成一個(gè)HTML文件夾,點(diǎn)開index.html這個(gè)就是我們的測試報(bào)告啦
allure幾個(gè)常用特性(測試報(bào)告中展示)
@allure.feature (用于描述被測試產(chǎn)品需求)
@allure.story (用于描述feature的用戶場景,即測試需求)
with allure.step() (用于描述測試步驟,將會(huì)輸出到報(bào)告中)
allure.attach (用于向測試報(bào)告中輸入一些附加的信息,通常是一些測試數(shù)據(jù),截圖等)
pytest斷言設(shè)置并結(jié)合allure生成測試報(bào)告
測試報(bào)告
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python Logging 日志記錄入門學(xué)習(xí)
這篇文章主要介紹了Python Logging 日志記錄入門學(xué)習(xí),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06Python自動(dòng)化之UnitTest框架實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于Python自動(dòng)化之UnitTest框架實(shí)戰(zhàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python中pip安裝、升級(jí)以及升級(jí)固定的包
我們知道python有大量的第三方庫,這也是python的優(yōu)勢之一,pip就是python整的軟件包管理系統(tǒng),類似于Linux平臺(tái)的yum倉庫,下面這篇文章主要給大家介紹了關(guān)于python中pip安裝、升級(jí)以及升級(jí)固定包的相關(guān)資料,需要的朋友可以參考下2022-02-02Python讀取圖片屬性信息的實(shí)現(xiàn)方法
這篇文章介紹了利用Python讀取圖片屬性信息的方法,讀取的內(nèi)容包括GPS 信息、圖片分辨率、圖片像素、設(shè)備商、拍攝設(shè)備等,有需要的朋友們可以參考借鑒。2016-09-09淺談配置OpenCV3 + Python3的簡易方法(macOS)
下面小編就為大家分享一篇淺談配置OpenCV3 + Python3的簡易方法(macOS),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python 中使用 Selenium 單擊網(wǎng)頁按鈕功能
Selenium是一個(gè)用于測試網(wǎng)站的自動(dòng)化測試工具,支持各種瀏覽器包括Chrome、Firefox、Safari等主流界面瀏覽器,同時(shí)也支持phantomJS無界面瀏覽器,本篇文章將介紹如何在 Python 中使用 selenium 單擊網(wǎng)頁上的按鈕,感興趣的朋友一起看看吧2023-11-11Python3爬蟲發(fā)送請求的知識(shí)點(diǎn)實(shí)例
在本篇文章里小編給大家分享的是一篇關(guān)于Python3爬蟲發(fā)送請求的知識(shí)點(diǎn)實(shí)例,需要的朋友們可以學(xué)習(xí)下。2020-07-07python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼
今天小編就為大家分享一篇python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12