Python測試框架--Allure

發表于:2020-11-16 09:52  作者:DeepHub   來源:掘金

字體: | 上一篇 | 下一篇 |我要投稿 | 推薦標簽: Python

  嚴格意義上講 Allure 不算是測試框架,但是它是生成漂亮測試報告的開源工具,搭配 Pytest 測試框架食用更搭。
  也就是說 Allure 是在 Pytest 執行完生成的測試數據的基礎上,對測試數據進行處理統計,生成格式統一、美觀的測試報告。
  一、Allure初識
  1. 什么是 Allure
  Allure 是由Qameta Software團隊開源的一款旨在于解決讓每個人能更容易生成并更簡潔閱讀的測試報告框架。它支持大多數的測試框架,如:Pytest、TestNG等,簡單易用便于集成。
  2. Allure環境搭建
  工欲善其事必先利其器,Allure 框架基于其他的測試框架使用,例如:Pytest。
# windows env
source env/Scripts/activate

# 安裝 pytest 和 pytest-allure-adaptor
pip3 install pytest
# Allure Pytest Adaptor是Pytest的一個插件(比較舊的一個插件)
# allure-pytest 比較新一點,建議使用
pip3 install pytest-allure-adaptor
pip3 instal allure-pytest

# 安裝Allure工具,主要是講pytest的測試數據轉換成HTML數據
# linux環境安裝
# 現將allure源添加到linux的源里
sudo apt-add-repository ppa:qameta/allure
# 更新本地源
sudo apt-get update
# 安裝allure,[allure無法使用的解決方案](https://askubuntu.com/questions/1168821/allure-report-installed-but-not-findable)
sudo apt-get install allure
# 上面的方法不行的話,用下面的方法
curl -o allure-2.6.0.tgz -Ls https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.6.0/allure-2.6.0.tgz   
sudo tar -zxvf allure-2.6.0.tgz -C /opt/   
sudo ln -s /opt/allure-2.6.0/bin/allure /usr/bin/allure  
allure --version 


# Windows 下安裝就麻煩點,可以使用 Scoop 工具(Chocolatey工具不知道為什么安裝不了),不管了官方推薦使用 Scoop 安裝就使用 Scoop 安裝得了
# 先安裝[Scoop](https://juejin.im/entry/6844904017823285262/detail)
# 檢查sccop是否安裝成功
scoop --version

# 安裝 allure
scoop install allure
# 查看allure是否安裝成功
allure --version
  二、Pytest集成Allure
  Allure要生效需要在測試文件和測試通配文件(conftest.py)中配置 allure。
  1. allure的特性
  Aullre的幾個特性:
  @allure.feature # 用于定義被測試的功能,被測產品的需求點
  @allure.story # 用于定義被測功能的用戶場景,即子功能點
  with allure.step # 用于將一個測試用例,分成幾個步驟在報告中輸出
  allure.attach # 用于向測試報告中輸入一些附加的信息,通常是一些測試數據信息
  @pytest.allure.step # 用于將一些通用的函數作為測試步驟輸出到報告,調用此函數的地方會向報告中輸出步驟
  2. pytest集成allure
  測試文件示例,生成測試數據,進一步生成 allure 測試報告
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File    :   test_allure_shopping.py
@Time    :   2019/12/1017:34
@Author  :   Crisimple
@Github :    https://crisimple.github.io/
@Contact :   Crisimple@foxmail.com
@License :   (C)Copyright 2017-2019, Micro-Circle
@Desc    :   None
"""

import pytest
import allure


# allure.feature 定義功能
@allure.feature("報告購物車")
class TestAllure(object):
    # 定義用戶場景
    @allure.story("加入購物車")
    def test_add_goods_cart(self):
        # 調用步驟函數
        login("crisimple", "123456")
        
        # 將測試用例分成幾個步驟,將測試步驟打印到測試報告中,步驟二
        with allure.step("瀏覽商品"):
            # allure.attach--打印一些附加信息
            allure.attach("商品1", "C")
            allure.attach("商品2", "C")
            
        # 步驟三
        with allure.step("加入商品"):
            allure.attach("商品1", 2)
            allure.attach("商品2", 3)
            
        # 步驟四
        with allure.step("校驗商品"):
            allure.attach("商品1加入成功", "共2個")
            allure.attach("商品2加入失敗", "共0個")
            
    @allure.story("繼續購物")
    def test_continue_shopping_cart(self):
        login("crisimple", "123456")
        allure.attach("商品3", 4)
        print("繼續購物成功")
        
    @allure.story("減少商品失敗")
    def test_edit_shopping_cart(self):
        login("crisimple", "123")
        assert 0
        
    @pytest.mark.skip(reason="刪除購物車不執行")
    @allure.story("刪除購物車")
    def test_delete_shopping_cart(self):
        login("crisimple", "123")
        print()
        
    
# 將函數作為一個步驟,調用此函數時,報告中輸出一個步驟,步驟名稱通常時函數名,這樣的函數通常稱為步驟函數
@allure.step("用戶登錄")
def login(user, passwd):
    if user == "crisimple" and passwd == "123456":
        print(user, passwd)
        print("登錄成功")
    else:
        print(user, passwd)
        print("登錄失敗,請重新嘗試")
  三、Allure生成測試報告
  1. pytest生成測試報告
# 執行全部的測試用例
pytest ./Allure/test_allure_shoping.py --alluredir ./Allure/result/

# 執行指定features或者stories執行一部分測試用例,比如執行‘報告購物車’下的‘加入購物車’子功能的測試用例
pytest ./Allure/test_allure_shopping.py --allure_features="報告購物車" --allure_stories="加入購物車" ../Allure/part_result/
  2. Allure生成測試報告
# 生成測試報告
allure generate ./Alluer/result/ -o ./Allure/report/ --clean

# 打開測試報告
allure open -h 127.0.0.1 -p 8083 ./Allure/report/
  打開測試報告,牛皮的是可以切換中文版本
  Overview(概覽)
  Categories(類別)
  Behavior(功能)
  Suites(測試套件)
  Graphs(圖標)
  Timeline(時間刻度)
  Packages(測試包)
  四、Allure與Jenkins結合
  對于成規模的測試團隊會把自動化測試部署集成到Jenkins中,構建成自動化部署。
  4.1 Jenkins配置Allure
  安裝Allure插件
  4.2 創建job
  配置路徑必須配置一致
source env/bin/activate
echo "**************Welcome to env**************"

echo "**************pytest create test data**************"
pytest /完整路徑/Allure/test_allure_shopping.py --alluredir ${WORKSPACE}/allure-results/
echo "**************report has generated done**************"
  4.3 執行工程
  立即構建工程即可。

  本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系博為峰小編(021-64471599-8017),我們將立即處理

評 論

論壇新帖

頂部 底部


建議使用IE 6.0以上瀏覽器,800×600以上分辨率,法律顧問:上海瀛東律師事務所 張楠律師
版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2020, 滬ICP備05003035號
投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

滬公網安備 31010102002173號

51Testing官方微信

51Testing官方微博

掃一掃 測試知識全知道

日本av