程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【python做接口測試的學習記錄day4——使用Allure生成測試報告】

編輯:Python

在生成報告前,需要先記錄下最近學習到的pytest的配置,在項目的根目錄添加pytest.ini文件,然後填入

[pytest]
addopts = -vs #命令行的參數,用空格隔開
testpaths = ./ #測試用例的路徑
python_files = test_*.py #文件名的規則
python_classes = Test* #類名的規則
python_functions = test #方法名的規則
makers = #設置用例的分組
smoke:'用例'
usermanage

這裡你可以根據自己的需求去修改配置

安裝Allure

好了,開始安裝我們的allure了

下載地址:Central Repository: io/qameta/allure/allure-commandline

下載需要的版本

下載解壓完成後,將bin文件夾所在的目錄放入環境變量中,同時需要安裝JDK

完成後,命令行pip install allure-pytest安裝allure插件,安裝完成後可以驗證一下,看看是否安裝成功,首次安裝後需要重啟下pycharm

生成測試報告

上代碼

import pytest
import requests
import yaml
import json
import os
import allure
from load_data import yaml_load
token = None
@pytest.mark.parametrize('data1',yaml_load.load('../data/user.yaml'))
def test_01(data1):
url_login = "https://***/jlcloud/api/login"
response1 = requests.request("POST", url=url_login, json=data1['user'])
print(response1.text)
result=json.loads(response1.text)
try:
global token #定義全局變量
token=result['data']
print(token)
except:
pass
assert data1['msg'] == result['message']
# 獲取用戶信息
def test_02():
print(token)
url_userinfo = "https://***/jlcloud/api/login/getUserInfo"
params = {"token": token}
res2 = requests.request("GET", url=url_userinfo, params=params)
print(res2.text)
result2 = json.loads(res2.text)
assert result2['message'] == "成功"
if __name__ == '__main__': # pytest運行模式
pytest.main('-vs',--alluredir= ./temp") #生成json數據,生成後可以在temp文件查看
os.system('allure generate ./pytest_case/temp -o report/html --clean') #將json數據生成,報告存至report文件

生成的json數據如下:

在report中點擊index.html文件用浏覽器打開,測試報告如下:

這裡我直接運行了文件,不知道為啥沒有生成報告,但是使用終端命令行 allure generate ./pytest_case/temp -o report/html --clean卻可以生成

另一種方式將pytest.ini配置文件的addopts稍作修改,就不需要每次運行都要寫上參數了

[pytest]
addopts = -vs --alluredir ./temp #生成json數據
testpaths= ./pytest_case
python_files=test_*.py
python_classes=Test*
python_functions= test
import pytest
import requests
import yaml
import json
import os
import allure
from load_data import yaml_load
token = None
@pytest.mark.parametrize('data1',yaml_load.load('../data/user.yaml'))
def test_01(data1):
url_login = "https://***/jlcloud/api/login"
response1 = requests.request("POST", url=url_login, json=data1['user'])
print(response1.text)
result=json.loads(response1.text)
try:
global token #定義全局變量
token=result['data']
print(token)
except:
pass
assert data1['msg'] == result['message']
# 獲取用戶信息
def test_02():
print(token)
url_userinfo = "https://***/jlcloud/api/login/getUserInfo"
params = {"token": token}
res2 = requests.request("GET", url=url_userinfo, params=params)
print(res2.text)
result2 = json.loads(res2.text)
assert result2['message'] == "成功"
if __name__ == '__main__': # pytest運行模式
pytest.main()
os.system('allure generate ./pytest_case/temp -o report/html --clean')#將json數據生成報告


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved