目录:
test_api.yaml:
#用例1--正例
-
name: 获得token鉴权码的接口
request:
url: https://api.weixin.qq.com/cgi-bin/token
method: get
headers:
Content-Type: application/json
params:
grant_type: client_credential
appid: wx6b11b3efd1cdc290
secret: 106a9c6157c4db5f6029918738f9529d
validate:
- eq: {expires_in: 7200}
#用例2--反例
-
name: 获得token鉴权码的接口
request:
url: https://api.weixin.qq.com/cgi-bin/token
method: get
headers:
Content-Type: application/json
params:
grant_type: client_credential
secret: 106a9c6157c4db5f6029918738f9529d
validate:
- eq: {expires_in: 7200}
yaml_util.py:
import pytest
import yaml
class YamlUtil:
def __init__(self,yaml_file):
self.yaml_file=yaml_file
def read_yaml(self):
with open(self.yaml_file,encoding='utf-8') as f:
value=yaml.load(f,Loader=yaml.FullLoader)
return value
test_api.py:
import os
import pytest
import requests
from testcase.yaml_util import YamlUtil
class TestApi:
@pytest.mark.parametrize('args',YamlUtil(os.getcwd()+'/testcase/test_api.yaml').read_yaml())
def test_01_baili(self,args):
url=args['request']['url']
params=args['request']['params']
res=requests.get(url,params)
print(res.text)
pytest.ini:
[pytest]
addopts=-vs --alluredir ./temp
testpaths=./testcase
python_files=test_*.py
python_classes=Test*
python_functions=test
all.py:
import os
import pytest
if __name__ == '__main__':
pytest.main()
os.system('allure generate ./temp -o ./report --clean')
测试报告: