1、层级结构

用例层:case——》test_login.py
# 方法一:通过函数实现
import pytest
def testlogin():
print('通过函数实现用例')
def testlogin1():
print("通过函数写用例:testlogin1")
def testlogin2():
print("通过函数写用例:testlogin2")
#模块执行前
def setup_module():
print('\n模块执行前,执行这个函数:setup_module()')
#模块执行后
def teardown_module():
print('\n模块执行后,执行这个函数:teardown_module()')
#函数执行前,对类里面的函数无效
def setup_function():
print('\n函数执行前,执行这个函数:setup_function()')
#函数执行后,对类里面的函数无效
def teardown_function():
print('\n函数执行后,执行这个函数:teardown_function()')
# 方法二:通过类实现
class TestLogin(object):
@classmethod
def testlogin3(cls):
print('用类方法写用例')
# @staticmethod
def testlogin4(self):
print('用实例方法写用例')
def testlogin5(self):
print('用实例方法写用例')
# 类里面所有用例执行前执行一次
def setup_class(self):
print('\n类里面用例执行前执行一次这个函数:setup_class()')
# 类里面所有用例执行后执行一次
def teardown_class(self):
print('\n类里面用例执行后执行一次这个函数:teardown_class()')
#类中每个用例前执行
def setup_method(self):
print("\n执行用例前,执行本函数:setup_method()")
#类中每个用例后执行
def teardown_method(self):
print("\n执行用例后,执行本函数teardown_method()")
执行层:runner
1、安装对应版本的allure报告,配置环境变量
2、Pycharm控制台执行pip install allure-pytest
import pytest
import subprocess
allure_result = "./report/allure_result" #指定数据存储目录
allure_html = "./report/allure_html"#存放html报告
pytest.main(['case','-v','-s',f'--alluredir={allure_result}','--clean-alluredir'])
subprocess.run(f'allure generate {allure_result} -o {allure_html} --clean',shell=True,universal_newlines=True) #生成报告
运行结果:
D:\Study\pythonProject\venv\Scripts\python.exe D:/Study/pythonProject/Pythonpytest/runner.py
============================= test session starts =============================
platform win32 -- Python 3.7.9, pytest-7.4.4, pluggy-1.2.0 -- D:\Study\pythonProject\venv\Scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\Study\pythonProject\Pythonpytest
plugins: allure-pytest-2.15.2, rerunfailures-13.0, xdist-3.5.0
collecting ... collected 6 items
case/test_login.py::testlogin
模块执行前,执行这个函数:setup_module()
函数执行前,执行这个函数:setup_function()
通过函数实现用例
PASSED
函数执行后,执行这个函数:teardown_function()
case/test_login.py::testlogin1
函数执行前,执行这个函数:setup_function()
通过函数写用例:testlogin1
PASSED
函数执行后,执行这个函数:teardown_function()
case/test_login.py::testlogin2
函数执行前,执行这个函数:setup_function()
通过函数写用例:testlogin2
PASSED
函数执行后,执行这个函数:teardown_function()
case/test_login.py::TestLogin::testlogin3
类里面用例执行前执行一次这个函数:setup_class()
执行用例前,执行本函数:setup_method()
用类方法写用例
PASSED
执行用例后,执行本函数teardown_method()
case/test_login.py::TestLogin::testlogin4
执行用例前,执行本函数:setup_method()
用实例方法写用例
PASSED
执行用例后,执行本函数teardown_method()
case/test_login.py::TestLogin::testlogin5
执行用例前,执行本函数:setup_method()
用实例方法写用例
PASSED
执行用例后,执行本函数teardown_method()
类里面用例执行后执行一次这个函数:teardown_class()
模块执行后,执行这个函数:teardown_module()
============================== 6 passed in 0.03s ==============================
Report successfully generated to .\report\allure_html
Process finished with exit code 0
报告存放数据(自动生成):

allure查看报告
1、选择(allure_html)——》点击(index.html),选择右上角对应的浏览器打开查看
常见问题:
1、要考虑allure版本的兼容性,当前版本用的是:2.36.0。如果版本不兼容,可能会存在allure_result有数据,但是打开报告后,测试数据为:0的情况。
解决方案:重新下载、安装适配的allure,重启pycharm就可以解决,如果还是解决不了,直接重启电脑。(前提:allure_result结果数据可以正常生成)
2、runner执行后,如果控制台显示allure红色方框?乱码。原因是在配置allure环境变量的时候,pycharm是打开状态,allure未生效。
解决方案:重启pycharm就可以解决,如果还是解决不了,直接重启电脑。

913

被折叠的 条评论
为什么被折叠?



