python+requests+pytest实现接口自动化测试

前言

  • 运用框架:requests,pytest

封装requests和断言方法

 1、新建py文件requests_,文件名称自定
 2、封装分3个阶段,
   封装控制台打印网络请求信息和返回信息
   封装requests网络请求,已post请求为主
   重新封装断言方法

improt json
from requests import Request

""" 1、封装控制台打印网络请求信息和返回信息 """
# 控制台带引网络请求信息
def print_req(preq):
    print('=======================【请求信息】=======================')
    print(f'【url】-{
     preq.method}{
     preq.url}')
    print(f'【headers】-{
     preq.headers}')
    print(f'【data】-{
     preq.body}')
# 控制台打印网络返回结果
def print_resp(resp):
    print('=======================【返回结果】=======================')
    print(f'【status_code】-{
     resp.status_code}')
    print(resp.json()) # 不美化打印返回数据
    ppd(resp.json()) # 美化打印字典格式数据
    print('========================================================')
# 美化打印字典格式数据
def ppd(dic):
    print(json.dumps(dic,indent=2,ensure_ascii=False))
    
""" 2、封装requests网络请求 """
# 发送网络请求,返回原始response对象
def pure_request(s,url,data='{}',headers={
   'Content-type':'application/json'}):
    req = Request('POST',url,data=data,headers=headers)
    prep = req.prepare() # 准备url
    print_req(prep) # 调用上面封装好的控制台打印方法,打印请求信息
    
    # 发送网络请求,返回请求结果
    resp = s.send(prep)
    print_resp(resp) # 调用上面封装好的控制台打印方法,打印返回信息
    return resp
# 发送网络请求,返回json对象
def request(s,url,data='{}',headers={
   'Content-type':'application/json'}):
    result = pure_request(s,url,json.dumps(data),headers)
    return result.json()    

""" 3.重新封装json格式断言方法 """
"""
    d1-预期结果,d2-实际返回结果
    递归d2字典是不是和d1模板字典所期望值
    d1中 键开头是 !,那么 d1 != d2
    d1中 键开头是 * ,那么表示这个key不应该存在
    d1中 键开头是 ?,可选字段,有的话进行验证,没有的略过
    d1中 键开头是 @ ,那么检查长度是否正确
    d1中 键开头是 [] ,那么检查只是否在一个范围内,例如[1,2,3,4]
    d1中 值是None, 只检查是否有这个键
    d1中 值不是None, 检查两个值是否一模一样
"""
def iterdict_dic(d1,d2):
    # 判断数据类型是否一样
    if type(d1) 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值