前言
建議大家學(xué)習(xí)pytest及allure框架的時(shí)候參照著官網(wǎng)钢颂,雖然說官網(wǎng)上都是英文蜻韭,但Google 有個(gè)翻譯網(wǎng)頁的功能蔑担,雖然不咋滴 但大致可以看懂,當(dāng)然了英文好的小伙伴直接原文學(xué)習(xí)
雖然網(wǎng)上的資料多廉侧,但還是官網(wǎng)全页响,本文就權(quán)當(dāng)拋磚引玉了
Pytest官方文檔.
Allure官方文檔.
一篓足、環(huán)境準(zhǔn)備
1、Python
官網(wǎng)下載最新版本闰蚕,目前為3.8栈拖,選擇exe下載安裝,方便加入環(huán)境變量
官網(wǎng)鏈接: 點(diǎn)我.
安裝完畢后打開cmd没陡,校驗(yàn)是否安裝成功辱魁,輸入python命令,如下截圖證明安裝成功環(huán)境變量已添加
2诗鸭、Pytest
這個(gè)安裝就簡單了染簇,進(jìn)入python的安裝目錄,打開Scripts文件夾强岸。利用快捷方式shift+鼠標(biāo)右鍵打開powershell(win10)窗口锻弓。win7則是cmd窗口
pip install pytest
順便安裝一下
pip install allure-pytest
安裝成功后打開cmd窗口查看
其他安裝,如UI自動(dòng)化需要selenium模塊蝌箍,接口自動(dòng)化需要requests模塊青灼,可以順手都安裝完畢
pip install selenium
pip install requests
3、Allure
官方文檔說明有兩種安裝方法妓盲,命令行安裝和手動(dòng)下載安裝杂拨,如下截圖,allure依賴java環(huán)境悯衬,確保已安裝弹沽,具體如何安裝可自行百度
本文以手動(dòng)安裝為例
目前,allure最新版本為2.13.0筋粗。allure下載鏈接
下載后解壓到指定目錄策橘,并添加到環(huán)境變量。如本文解壓到G盤下
則環(huán)境變量如下添加
添加完畢后重新打開一個(gè)cmd窗口娜亿,驗(yàn)證是否成功
至此丽已,環(huán)境則準(zhǔn)備完畢了,相對還比較簡單吧买决。下面則開始愉快的自動(dòng)化測試及報(bào)告生成之旅了沛婴,demo只是說明怎么如何進(jìn)行自動(dòng)化測試及測試報(bào)告的生成,關(guān)于測試框架的慢慢學(xué)習(xí)積累吧督赤,先會(huì)走路再學(xué)跑吧
二嘁灯、demo實(shí)現(xiàn)
1、新建工程
demo的gitee地址
打開PyCharm够挂,新建一個(gè)工程旁仿,如工程名稱PytestDemo藕夫,新建工程結(jié)構(gòu)孽糖,創(chuàng)建results目錄放置測試結(jié)果枯冈,當(dāng)然了,如果不指定目錄則運(yùn)行項(xiàng)目時(shí)默認(rèn)創(chuàng)建allure-results目錄办悟。
創(chuàng)建test_cases目錄放置測試用例尘奏,創(chuàng)建run.py文件,運(yùn)行整個(gè)測試腳本病蛉,創(chuàng)建兩個(gè)測試用例炫加,用例內(nèi)容我直接從官網(wǎng)拷貝的,test_case1.py铺然、test_case2.py俗孝。如圖:
2、填寫代碼
至于代碼中某些字段的含義魄健,可以結(jié)合官方文檔來
run.py
import pytest
import os
if __name__ == '__main__':
pytest.main(["-sq",
"--alluredir", 'results'])
os.system("allure generate -c results -o report")
test_case1.py
import pytest
class TestCase1():
def test_success(self):
"""this test succeeds"""
assert True
def test_failure(self):
"""this test fails"""
assert False
def test_skip(self):
"""this test is skipped"""
pytest.skip('for a reason!')
def test_broken(self):
raise Exception('oops')
test_case2.py
import pytest
class TestCase2():
@pytest.mark.xfail(condition=lambda: True, reason='this test is expecting failure')
def test_xfail_expected_failure(self):
"""this test is an xfail that will be marked as expected failure"""
assert False
3赋铝、運(yùn)行工程
在run.py頁面,右鍵運(yùn)行沽瘦,運(yùn)行結(jié)果:
此刻革骨,查看工程目錄,生成了report目錄析恋,右鍵index.html良哲,以瀏覽器打開,選擇火狐
振奮人心的時(shí)刻來臨了助隧,也可以切換成中文語言
這時(shí)候發(fā)現(xiàn)測試報(bào)告中筑凫,環(huán)境一欄是空白的,不怕并村,官網(wǎng)給出了
在結(jié)果目錄下漏健,新建environment.properties文件或者xml,本文結(jié)果目錄為results
重新運(yùn)行run.py橘霎,然后查看最新的測試報(bào)告
具體的測試結(jié)果