一、编写测试用例:
用例名称——>用例步骤——>预期结果——>实际结果——>前置、后置
1、用例名称:要以 test_开头 ;
2、用例步骤:即用例业务逻辑 ;
3、断言:(实际和预期结果比对) assert 表达式( True/ False ) AssertError ;
当出现用例 AssertError 或者 测试用例其他原因 raise 异常时,测试用例执行Fail ;
4、用例呈现的2种形式:
5、自动搜集测试用例:
a、搜集目录 :在哪个文件目录下执行 pytest 命令,就在 哪个目录开始搜集测试用例 ;
b、目录下的文件过滤: 文件名以 test_ 开头的 py文件,或者 文件名 以 _test 结尾的py 文件 ;
目录下所有 .py 文件 的执行顺序是 按照 ASCII 码 顺序 ;
c、.py 文件下的用例过滤:.py 文件下的函数, 函数名以 test_ 开头,
所有测试用例 test_xx 是按照代码 自上而下的 顺序执行 ;
6、pytest.main(['-s', '-v', 'test_dd.py']) 在 _.py 文件中添加 pytest.main() 的效果 和 在cmd 命令行执行效果一样 ;
a、当出现用例 AssertError 或者 测试用例其他原因 raise 异常时,测试用例执行Fail ;
示例代码如下:
def test_3():
login = 'success'
assert login == 'success'
# 除数不能为0 ,异常,测试用例执行Fail
def test_1():
a = 10
b = 0
c = a / b
login = 'success'
assert login == 'success'
执行结果如下:
D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day15\dd>pytest -sv ================================================= test session starts ================================================= platform win32 -- Python 3.8.6, pytest-5.4.3, py-1.10.0, pluggy-0.13.1 -- c:\skyworkspace\worktools\python\python38\python.exe cachedir: .pytest_cache Metadata: {'Python': '3.8.6', 'Platform': 'Windows-10-10.0.19041-SP0', 'Packages': {'pytest': '5.4.3', 'py': '1.10.0', 'pluggy': '0.13.1'}, 'Plugins': {'allure-pytest': '2.9.43', 'html': '2.1.1', 'Metadata': '1.11.0'}, 'JAVA_HOME': 'C:\\SkyWorkSpace\\WorkTools\\Java\\jdk1.8\\jdk1.8.0_271'} rootdir: D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day15\dd plugins: allure-pytest-2.9.43, html-2.1.1, Metadata-1.11.0 collected 2 items test_dd.py::test_3 PASSED test_dd.py::test_1 Failed ====================================================== FAILURES ======================================================= _______________________________________________________ test_1 ________________________________________________________ def test_1(): a = 10 b = 0 > c = a / b E ZeroDivisionError: division by zero test_dd.py:11: ZeroDivisionError =============================================== short test summary info =============================================== Failed test_dd.py::test_1 - ZeroDivisionError: division by zero ============================================= 1 Failed, 1 passed in 0.16s ============================================= D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day15\dd>
b、pytest.main(['-sv', 'test_dd.py']) : 在 _.py 文件中添加 pytest.main() 的效果 和 在cmd 命令行执行效果一样 ;
或者 pytest.main(['-s', '-v', 'test_dd.py']) ,参数以列表的形式 ;
代码如下:
import pytest
class TestDemo():
def test_3(self):
login = 'success'
assert login == 'success'
def test_2(self):
login = 'success'
assert login == 'success'
def func_1(self):
login = 'success'
assert login == 'success'
class TestDemoAA():
def test_3(self):
login = 'success'
assert login == 'success'
def test_2(self):
login = 'success'
assert login == 'success'
def func_1(self):
login = 'success'
assert login == 'success'
if __name__ == '__main__':
pytest.main(['-sv', 'test_dd.py'])
执行结果如下:
D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day15\venv\Scripts\python.exe D:/SkyWorkSpace/WorkSpace/Pytest/Temp/day15/dd/test_dd.py ============================= test session starts ============================= platform win32 -- Python 3.8.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day15\venv\Scripts\python.exe cachedir: .pytest_cache rootdir: D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day15\dd collecting ... collected 4 items test_dd.py::TestDemo::test_3 PASSED test_dd.py::TestDemo::test_2 PASSED test_dd.py::TestDemoAA::test_3 PASSED test_dd.py::TestDemoAA::test_2 PASSED ============================== 4 passed in 0.01s ============================== Process finished with exit code 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。


