Python接口自动化测试--requests使用和基本方法封装(1)

  • """ 定义send_get函数,用来接收参数,发送get请求 """
  • r = requests.get(url=url, params=data)
  • result = r.json()
  • return result
      • def send_post(url, data):
  • """ 定义send_post函数,用来接收参数,发送post请求 """
  • r = requests.get(url=url, data=data)
  • result = r.json()
  • return result
      • def main(url, method, data):
  • """ 定义一个主函数,根据method是get或post,来调用send_post()或send_get() """
  • if method == 'POST':
  • r = send_post(url, data) # 如果是POST请求,则调用send_post()
  • else:
  • r = send_get(url, data) # 如果是GET请求,则调用send_get()
  • return r # 将结果返回出去
      • url = 'http://localhost:7001/XXX'
  • data = {
  • 'controlSeq': '2018118325'
  • }
  • demo = main(url, 'GET', data)
  • print(demo)
3.定义一个类,对post请求和get请求进行封装
  1. run_method.py# -*- coding: UTF-8 -*-
    • import requests
  • import json
      • class RunMain:
  • """含有构造器"""
  • def __init__(self, url, method, data=None):
  • self.t = self.run_main(url, method, data)
    • def send_post(self, url, data):
  • r = requests.post(url=url, data=data)
  • result = r.json()
  • return json.dumps(result, indent=2, sort_keys=False, ensure_ascii=False)
    • def send_get(self, url, data):
  • r = requests.get(url=url, params=data)
  • result = r.json()
  • return json.dumps(result, indent=2, sort_keys=False, ensure_ascii=False)
  • # 利用json.dumps将响应数据进行json格式的编码解析
  • # indent=2将输出结果缩进2个字符显示
  • # sort_keys=False,输出结果是否按照关键字排序
  • # json.dumps 序列化时对中文默认使用的ascii编码,ensure_ascii=False才会输出中文
  • # return result
    • def run_main(self, url, method, data=None):
  • if method == 'GET':
  • r = self.send_get(url, data)
  • else:
  • r = self.send_post(url, data)
  • return r
      • if __name__ == '__main__':
  • url = 'http://localhost:7001/XXX'
  • data = {
  • 'controlSeq': '2018118325'
  • }
  • test = RunMain(url, 'GET', data) # 因为有构造器 __init__,实例化时要带参数
  • print(test.t)
  1. run_method.py
  2. # -*- coding: UTF-8 -*-
    • import requests
  • import json
  • class RunMain:
  • """无构造器"""
  • def send_get(self, url, data):
  • res = requests.get(url=url, params=data).json()
  • return res
    • def send_post(self, url, data):
  • res = requests.post(url=url, data=data).json()
  • return res
    • def run_main(self, url, method, data=None):
  • res = None
  • if method == 'GET':
  • res = self.send_get(url, data)
  • else:
  • res = self.send_post(url, data)
  • return res
      • if __name__ == '__main__':
  • url = 'http://192.168.0.53:7001/CommonService/api/control/controlProgress/query.v'
  • data = {
  • 'controlSeq': '2018118325'
  • }
  • run = RunMain() # 先实例化,实例化时不需要带参数
  • print(run.run_main(url, 'GET', data))

建议在封装运行方法类时,不要加构造器,这样就不需要在实例化时传参,在后面的主函数中从excel中取出参数后再传给类中的方法即可

下面是json.dumps使用前后的对比图

内容到此结束,一方面简单介绍下requests的用法,另一方面将post和get请求进行基本封装,通过实例化对象进行调用

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

B-1719235251965)]
[外链图片转存中…(img-Fz608GHs-1719235251965)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值