pytest接口自动化测试框架 | 对requests进行二次封装
视频来源:B站《冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频【软件测试】》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
在项目中要考虑不同的接口请求方式,有的接口时get,有的接口时post,并且参数也是不一样的,有些要的是json传参,有的用data传参,有些用put,有些用delete,要的不同方式。
所以我们提前封装,封装意味着这个方式能适应所有的请求
- 通过同一个session发送请求 为什么?
- 需要传入不同的请求方式,地址,参数类型,数据,可能还有其他数据。根据不同的数据类型传不同的处理
test2.py
-
import requests
-
-
class HttpClient:
-
# 只要用到这个类 就会进入到init这个函数里面去
-
def __init__(self):
-
self.session = requests.session()
-
-
# 封装请求 post delete get put .. 请求方式
-
# 接口地址 不同的接口
-
# 接口参数 不同的参数
-
# 参数类型 表单 json
-
# 请求头 数据类型设置。。 **kwargs 接受几个参数 post Post poST
-
# 测试登录 请求方式post 地址login 参数admin password,数据类型 json
-
def send_request(self, method, url, param_type, data=None, **kwargs):
-
# 请求方式转成大写 POST
-
method = method.upper()
-
# 参数类型转成大写 JSON
-
param_type = param_type.upper()
-
# 判断 post get
-
if 'GET' == method:
-
response = self.session.request(method=method, url=url, params=data, **kwargs)
-
elif 'POST' == method:
-
if 'FROM' == param_type:
-
# 参数 json 提交 data提交 判断传的类型
-
response = self.session.request(method=method, url=url, data=data, **kwargs)
-
else:
-
response = self.session.request(method=method, url=url, json=data, **kwargs)
-
elif 'DELETE' == method:
-
if 'FROM' == param_type:
-
# 参数 json 提交 data提交 判断传的类型
-
response = self.session.request(method=method, url=url, data=data, **kwargs)
-
else:
-
response = self.session.request(method=method, url=url, json=data, **kwargs)
-
elif 'PUT' == method:
-
if 'FROM' == param_type:
-
# 参数 json 提交 data提交 判断传的类型
-
response = self.session.request(method=method, url=url, data=data, **kwargs)
-
else:
-
response = self.session.request(method=method, url=url, json=data, **kwargs)
-
else:
-
raise ValueError
-
-
return response
-
-
def close_session(self):
-
self.session.close()
test3.py
-
# 测试登录
-
from test2 import HttpClient
-
-
httpclient = HttpClient()
-
-
# 登录接口
-
url = 'http://39.98.138.157:5000/api/login'
-
data = {"password": "123456", "username": "admin"}
-
# res = requests.post(url, json=data)
-
# method, url, param_type, data, **kwargs
-
res = httpclient.send_request(method='post', url=url, param_type='json', data=data)
-
print(res.json())
-
-
-
# 工牌值取出来 放在一个变量中 下个接口使用的时候 直接拿变量
-
# 取值 转成的是字典 字典怎么取值 键值对 拿到键就拿到值
-
token = res.json()['token']
-
-
-
url = 'http://39.98.138.157:5000/api/getuserinfo'
-
header = {'token': token}
-
res = httpclient.send_request(method='get', url=url, param_type='json', headers=header)
-
print(res.json())
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjbebb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13