Pytest 应用接口用例
- 运行原则
- 在不指定运行目录,运行文件,运行函数等参数的默认情况下,pytest会执行当前目录下的所有以test为前缀(test.py)或以_test为后缀(test.py)的文件中以test为前缀的函数
- pytest会找当前以及递归查找子文件夹下面所有的test*.py或*test.py的文件,把其当作测试文件
- 在这些文件里,pytest会收集下面的一些函数或方法,
- 当作测试用例 不在类定义中的以test开头的函数或方法 在以Test开头的类中(不能包含init方法),以test开头的方法
-
如何执行多条测试?
-
pytest
会执行当前目录及子目录下所有test_*.py
及*_test.py
格式的文件 -
可以设置pytest.ini配置文件,自定义执行文件格式
addopts = -s # 当前目录下的scripts文件夹 -可自定义 testpaths = testcase # 当前目录下的scripts文件夹下,以test_开头,以.py结尾的所有文件 -可自定义 python_files = test_*.py # 当前目录下的scripts文件夹下,以test_开头,以.py结尾的所有文件中,以Test_开头的类 -可自定义 python_classes = Test_* # 当前目录下的scripts文件夹下,以test_开头,以.py结尾的所有文件中,以Test_开头的类内,以test_开头的方法 -可自定义 python_functions = test_*
-
-
登录用例脚本
url = "http://xxxx.xxx.xxx/authorizations/" data = [{"username":"python", "password":"12345678"}, {"username":"python1", "password":"test123"}, ] @pytest.mark.parametrize("login", data) def test_login(login): res= requests.post(url,json=login) print(res.json()) if __name__ =="__main__": pytest.main(["-s"])
-
结果
{"user_id":1,"username":"python","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NjUzNDA5NTcsInVzZXJfaWQiOjEsImVtYWlsIjoiOTUyNjczNjM4QHFxLmNvbSIsInVzZXJuYW1lIjoicHl0aG9uIn0.K0Kx8lKkeX0CjNTuWZ0cA67FU33nkNYBfl_s-5LxNP8"} .{"non_field_errors":["无法使用提供的认证信息登录。"]}