通过Feature, story, step 记录测试的功能,场景及测试步骤

    1. # login.py
    2. '''
    3. login_func函数
    4. 传入参数是name 和 password
    5. 当输入的name和password与数据库db_data中数据一致时,返回“XXX成功登录系统!”
    6. 当输入的name存在于数据库db_data但密码不正确时,返回“XXX账号,密码输出错误,请重新输入!”
    7. 当输入的name不存在于数据库db_data中时,返回“XXX账号不存在,请输入正确的账号!”
    8. '''
    9. def login_func(name,password):
    10. db_data = {"name": ['Jie', 'Jack', 'Jame'], "password": {'Jie': '123456', 'Jack': '111111', 'Jame': '222222'}}
    11. if name in db_data["name"] and str(password) == db_data["password"][name]:
    12. return(f"{name} 成功登录系统!")
    13. elif name in db_data["name"] and str(password) != db_data["password"][name]:
    14. return(f"{name} 账号,密码输出错误,请重新输入!")
    15. else:
    16. return(f"{name} 账号不存在,请输入正确的账号!")

    login.py是一个登录模块,login_func函数主要实现登录功能
    test_mod9.py主要实现对login.py中login_func函数功能测试

    1. from login import login_func
    2. @allure.feature("测试登录模块")
    3. class TestMod9:
    4. @allure.title("测试登录正例01")
    5. @allure.story("用正确的账号与密码登录")
    6. def test_login_01(self):
    7. name = "Jie"
    8. password = "123456"
    9. with allure.step(f"使用账号名称:{name},密码:{password}进行登录"):
    10. login = login_func(name,password)
    11. exc = f"{name} 成功登录系统!"
    12. pytest.assume(login == exc)
    13. @allure.title("测试登录反例02")
    14. @allure.story("用正确的账号与错误的密码登录")
    15. def test_login_02(self):
    16. name = "Jie"
    17. password = "023456"
    18. with allure.step(f"使用账号名称:{name},密码:{password}进行登录"):
    19. login = login_func(name,password)
    20. exc = f"{name} 账号,密码输出错误,请重新输入!"
    21. pytest.assume(login == exc)
    22. @allure.title("测试登录反例03")
    23. @allure.story("用不存在的账号进入登录")
    24. @allure.description("当登录账号不存在时,有正确的提示")
    25. def test_login_03(self):
    26. name = "Hele"
    27. password = "023456"
    28. with allure.step(f"使用账号名称:{name},密码:{password}进行登录"):
    29. login = login_func(name, password)
    30. exc = f"{name} 不存在账号,请输入正确的账号!"
    31. pytest.assume(login == exc)

    test_mod9.py测试模块中,包含一个class TestMod9 测试类,测试类下包含了测试登录功能的三个测试用例
    @allure.feature(“测试登录模块”): 在报告中记录测试需求(即测试用例集的功能,要测试什么)一般修饰测试类(testsuite);
    @allure.story(“用正确的账号与密码登录”):在报告中记录根据测试需求细化的测试场景(即测试用例场景描述)一般修饰测试用例即方法;
    (注:feature与story属于父子关系)
    @allure.title(“测试登录反例03”):在报告中自定义测试用例标题
    @allure.description(“当登录账号不存在时,有正确的提示”):报告中测试用例的详细描述
    with allure.step(f”使用账号名称:{name},密码:{password}进行登录”): 在报告中记录测试用例中的测试步骤或详细信息,放在测试用例的代码逻辑中;

    1. 命令行:pytest -vs test_mod9.py --alluredir=./result/ #每次执行生成的测试结果都追加到result文件夹中
    2. 命令行:pytest -vs ./test_case/test_order.py --clean-alluredir --alluredir=./result/ #每次执行生成测试结果集前先清空已存在的结果集

    —alluredir=./result/ 为指定报告结果数据存入路径,执行上述命令后会自动在该目录下生成一个result文件夹存放报告数据
    image.png

    1. 命令:allure serve ./result/

    1、在本地启动一个server查看allure报告
    image.png

    image.png
    2、根据result文件夹中的数据在项目目录下生成allure-report存入html报告

    1. 命令:allure generate ./result/
    2. 命令:allure generate ./result/ -o ./report/ --clean # 每次生成报告时先清除原报告数据

    image.png