视频来源:B站《冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频【软件测试】》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:pytest接口自动化测试框架 | 汇总_COCOgsta的博客-CSDN博客
test_py.py
import configparser
import pytest
from test2 import HttpClient
class TestCase:
# 全局变量 类变量 公共变量 都可以使用
token = None
httpclient = None
url = None
# 接口的地址放在 外层 用例执行之前 先拿到接口的项目信息 接口地址
# 读取ini文件中的数据
@classmethod
def setup_class(cls):
TestCase.httpclient = HttpClient()
# configparser文件对象
config = configparser.ConfigParser()
# 读取哪个文件
config.read('env.ini', encoding='utf-8')
TestCase.url = config.get('apidemo01', 'URL')
@classmethod
def teardown_class(cls):
pass
# 登录
def test_login(self):
# 登录接口 url+/api/login
url = TestCase.url + '/api/login'
data = {"password": "123456", "username": "admin"}
res = TestCase.httpclient.send_request(method='post', url=url, param_type='json', data=data)
print(res.json())
TestCase.token = res.json()['token']
# 个人信息查询 下划线报错
# 函数与函数支架的变量是不能够互相去使用 全局变量、类变量
def test_userinfo(self):
url = TestCase.url + '/api/getuserinfo'
header = {'token': TestCase.token}
res = TestCase.httpclient.send_request(method='get', url=url, param_type='json', headers=header)
print(res.json())
if __name__ == '__main__':
pytest.main(['test_py.py', '-sv'])
# pytest实现关联 通过类变量去实现的
# setupclass所有用例执行之前要做的事情
env.ini
[apidemo01]
URL = http://39.98.138.157:5000