本片博文主要想说明:
1.如何在pycharm里面,直接导出allure报告
2.使用命令行(linux命令)如何导出allure报告
3.我在这个过程遇到的问题
1.代码demo
import allure
import pytest
import os
@allure.feature('【需求点】:数据类型不符合是否判断')
@allure.story('【MSTD】')
@allure.severity('blocker')
def test_case_01():
"""
用例描述:这个是一个很长很长的用例描述01
"""
assert 0
@allure.feature('【需求点】:数据类型不符合是否判断')
@allure.story('【AIVWAP】')
@allure.severity('critical')
def test_case_02():
"""
用例描述:这个是一个很长很长的用例描述02
"""
with allure.step("第一步:登录"): # 将一个测试用例分成几个步骤,将步骤打印到测试报告中,步骤2
allure.attach('alien', 'name') # attach可以打印一些附加信息
allure.attach('18', 'age')
allure.story("")
with allure.step("第二步:发送订单"): # 将一个测试用例分成几个步骤,将步骤打印到测试报告中,步骤3
pass
with allure.step("第三步:判断结果"):
allure.attach('期望结果', '添加购物车成功')
assert 'success' == 'failed'
@allure.feature('【需求点】:登录能否成功')
@allure.story('【常规登录】')
@allure.severity('normal')
def test_case_03():
"""
用例描述:这个是一个很长很长的用例描述03
"""
assert 0
@allure.feature('【需求点】:登录能否成功')
@allure.story('【异常登录】')
@allure.severity('minor')
def test_case_04():
"""
用例描述:这个是一个很长很长的用例描述04
"""
assert 0 == 0
allure.dynamic.description("这个用例描述,将要替换如上的用例描述")
if __name__ == '__main__':
pytest.main(['-s', '-q','test_sort.py', '--alluredir', 'D:/MyProjects/FundJudgeTestReport/Raw_Files/'])
os.system("C:/Users/admin/Envs/AutoTestEnv/Lib/site-packages/allure-2.13.0/bin/allure.bat "
"generate "
"D:/MyProjects/FundJudgeTestReport/Raw_Files/ "
"-o "
"D:/MyProjects/FundJudgeTestReport/Report "
"--clean")
如上代码中,os.system()部分,也可以使用如下代码替换
os.system("allure "
"generate "
"Raw_Files "
"-o "
"Report "
"--clean")
如上代码的具体含义,如果有不太清楚的,可参考:
https://www.cnblogs.com/xiaogongjin/p/11705134.html
2.pycharm目录结构
- 展开之前
- 展开之后
3.遇到的几个问题(还有个问题没解决)
-
不要使用pytest框架运行如上代码,否者只会执行所有测试用例,但没有保存任何报告的数据到本地
-
直接Run-----> Run------>选在文件名运行即可
-
pytest.main()执行命令里面,里面是一个列表,包含不同命令字符串,后面地址是你要保存报告原始数据的地方
-
os.system()里面,这个模拟的是linux命令行的写法,每个语句之间需要换行,且每个语句后面需要有至少一个空格,空格,空格(没有空格的效果是:alluregenerateRaw_Files-oReport–clean,鬼知道你写的是什么东西!)
-
如果使用os.system()替换方案的时候,你安装的allure需要提前设置好环境变量,确保在linux的任意位置,输入allure命令,都能使用
-
"–clean"命令,测试了很多次,都一直没有清除掉原始的报告数据。有哪位仁兄知道原因,还请告知一二,谢谢!
4.使用linux命令导出报告
pytest ./ --alluredir Raw_Files
allure generate Raw_Files -o Report --clean