#test_demo.py
import allure
import pytest
class TestDemo:
@allure.feature('比较功能')
@allure.story('1等于1')
def test_compare_numbers(self):
expected = 1
actual = 1
assert expected == actual
#D:\python-pro\baseapi\test_case\test_login.py
import logging
import pytest
import json
from utils.handle_ex import HandleEx
from libs.login_my import Login
import allure
# 获得请求体和预期结果
class TestLogin():
@pytest.mark.parametrize('payload,exc_res,title', HandleEx().get_ex())
@allure.title('{title}') # 报告添加标题 来自excel中的用例标题
def test_login(self, payload, exc_res, title):
# 实例化
l = Login()
# json.loads(str)->dict
# 赋值给l实例
# HandleEx().get_ex()=因为[(参数1,)(参数2,)]
# 参数化后获得(参数1,)
# 根据下标[0]取值,获得 参数1
l.payload = json.loads(payload)
res = l.login(is_need_token=False)
logging.info(f"输出返回结果{res}")
# 需要将不符合的false替换为False
exc_res_dic=eval(exc_res.replace('false','False'))
logging.info(f"预期返回值msg:{exc_res_dic['msg']}")
logging.info(res['msg']==exc_res_dic['msg'])
assert res['msg']==exc_res_dic['msg']
# 如果 名称等于main 输出pytest.main([文档,sv参数])
if __name__=='__main__':
pytest.main([__file__,'-sv'])
#__file__ 是一个Python内置变量,它表示当前脚本的文件路径。在命令行中,可以使用 __file__ 来指定要运行的测试文件;使用 -s 选项可以将这些输出打印到控制台上;-v 选项可以输出更详细的测试结果,包括每个测试用例的名称和结果
# 清空outfile文件夹 防止多次执行造成重复
Remove-Item -Recurse -Force outfile\*
# 执行allure
PS D:\python-pro\baseapi> pytest test_case/test_login.py --alluredir=outfile/allure-results
# 生成报告 点击生成的html文件 以默认浏览器打开
PS D:\python-pro\baseapi> allure generate outfile/allure-results -o outfile/allure-report --clean
![]()