前言
实现接口自动化过程中,绕不开调用登陆接口获取token,带着token访问其他接口。
1.目录结构
class是类,归类
def是define的缩写,定义、方法
项目采用pytest框架,命名规则如下:
1.模块名必须以test_开头,或以_test结尾(如test_login.py)
2.测试类必须以Test开头(如class TestDemo)
3.方法必须以test开头(如def test_get_token)
case——测试用例
common——公共部分
report——测试报告
2.获取token
将登陆放在common目录下,test_login.py
```python
import json
import requests
#登陆
def test_get_token(self):
payload = {
"password": "0000",
"userName": "13100000000"
}
#转换数据类型,字典转为json
payload_json = json.dumps(payload)
headers = {
"content-type": "application/json"
}
r = requests.post('https://XXX', data=payload_json,
headers=headers)
assert r.status_code == 200
s = r.headers
#请求头的数据类型是字典
#从字典中提取token,并且拼接
token = "Bearer "+s['Access-Token']
return token
3.使用token调接口
在case文件夹下创建test_demo.py,想在test_demo.py中调用common下的test_get_token方法。
from *文件夹 import py文件名
access_token = py文件名.测试类.方法(self)
import requests
from common import test_login
class TestDemo:
def test_get(self):
#test_login是模块名,test_get_token是方法
access_token = test_login.test_get_token(self)
headers = {
"companyId": "1",
"Authorization": access_token
}
r = requests.get('https://XXX', headers=headers)
print(r.json())
assert r.status_code == 200
x = TestDemo()
x.test_get()