python3+requests:使用类封装接口测试脚本

前言:接口测试用例较多,我们不可能每个用例都写一次requests,get或者requests,post等,所以对共用方法要进行封装处理

第一次修改:将get请求和post请求单独定义出来,使用过程中根据不同类型的请求直接调用对应的方法

 1 import requests
 2 import json
 3
 4 def send_post(url,data,headers):
 5     response = requests.post(url=url,data=data,headers=headers).json()
 6     return json.dumps(response,sort_keys=True,indent=4)
 7
 8 def send_get(url,data,headers):
 9     response = requests.get(url=url,data=data,headers=headers).json()
10     return json.dumps(response,sort_keys=True,indent=4)
11
12 def run_main(url,headers,method,data=None):
13     respose = None
14     if method == ‘GET‘:
15         respose = send_get(url,data,headers)
16     else:
17         respose = send_post(url,data,headers)
18     return respose
19
20 url = ‘https://...‘
21 headers = {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}
22 print(run_main(url,headers,method=‘POST‘))

第二次修改:用class进行封装,主函数中创建一个实例run来调用类中的方法

 1 import requests
 2 import json
 3 class Runmain:
 4     def send_post(self,url,data,headers):
 5         response = requests.post(url=url,data=data,headers=headers).json()
 6         return json.dumps(response,sort_keys=True,indent=4)
 7
 8     def send_get(self,url,params,headers):
 9         response = requests.get(url=url,params=params,headers=headers).json()
10         return json.dumps(response,sort_keys=True,indent=4)
11
12     def run_main(self,url,params,data,headers,method):
13         respose = None
14         if method == ‘GET‘:
15             respose = self.send_get(url,params,headers)
16         else:
17             respose = self.send_post(url,data,headers)
18         return respose
19
20 if __name__ == ‘__main__‘:
21     run = Runmain()
22     url = ‘https://...‘
23     headers = {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}
24     print(run.run_main(url,params=None,data=None,headers=headers,method=‘POST‘))

第三次修改:第二次修改,每次都需要实例化后再调用对应的方法;

改进办法:使用__init__方法实现:只要实例化类时候就会调用__init__方法

 1 import requests
 2 import json
 3 class Runmain:
 4     def __init__(self,url,params,data,headers,method):
 5         self.response = self.run_main(url,params,data,headers,method)
 6
 7     def send_post(self,url,data,headers):
 8         response = requests.post(url=url,data=data,headers=headers).json()
 9         return json.dumps(response,sort_keys=True,indent=4)
10
11     def send_get(self,url,params,headers):
12         response = requests.get(url=url,params=params,headers=headers).json()
13         return json.dumps(response,sort_keys=True,indent=4)
14
15     def run_main(self,url,params,data,headers,method):
16         respose = None
17         if method == ‘GET‘:
18             respose = self.send_get(url,params,headers)
19         else:
20             respose = self.send_post(url,data,headers)
21         return respose
22
23 if __name__ == ‘__main__‘:
24     url = ‘https://...‘
25     headers = {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}
26     run = Runmain(url,params=None,data=None,headers=headers,method=‘POST‘)
27     print(run.response)

备注:对python中类,实例不了解的同学,可以参考:

http://yangcongchufang.com/%E9%AB%98%E7%BA%A7python%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80/python-object-class.html

原文地址:https://www.cnblogs.com/shapeL/p/9045439.html

时间: 2024-07-31 14:20:05

python3+requests:使用类封装接口测试脚本的相关文章

接口测试框架-使用类封装接口测试脚本(get post)

一 安装requests cmd中输入 pip install requests 二 安装成功验证 在python下输入import requests,导入成功,则安装成功 三 封装类 import requestsimport json class RunMain: def __init__(self,url,method,data=None): self.res = self.run_main(url,method,data) def send_get(self, url, data): r

封装接口测试脚本

将get和post封装到一起,根据请求方式不同,决定调用的方法.调用的时候只调用一个就可以了. import requests import json class Interface(): '''练习接口测试''' def send_post(self, url, data): '''封装post请求''' result = requests.post(url, data) assign = result.json() return json.dumps(assign, indent=4, so

学习python的第一个小目标:通过requests+xlrd实现简单接口测试,将测试用例维护在表格中,与脚本分开。

小白的学习方式:通过确定一个小目标来想办法实现它,再通过笔记来加深印象. 面对标题中的小目标我陷入了思考....嗯,首先实现利用xlrd库来取出想要的用例 首先用表格准备好用例,如图下: 先试下取number为1的一行用例试试: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 import xlrd 4 5 xlsurl = r"D:\RequestAPI.xlsx" # 表格文件路径 6 rqapi = xlrd.open_wo

uni-app,vue,react,Trao之缓存类封装

uni-app,vue,react,Trao之缓存类封装 一,介绍与需求 1.1,介绍 缓存主要分为如下几个 1.LocalStorage LocalStorage是永久性的本地缓存,存储在客户端的浏览器上,除非主动删除,是不会过期的.LocalStorage采用的是键值对的方式进行存储,存储方式只能是字符串.存储内容可以用图片.json.样式.脚本等. API基本使用方法: 1.1.localStorage.setItem() 存储 1.2.localStorage.getItem() 获取数

Loadrunner之HTTP接口测试脚本实例

Loadrunner之HTTP接口测试脚本实例 接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文结果与预期结果进行比对的过程,接口测试可以通过Java发送 http post或者get请求来实现,也可以通过loadrunner来实现,今天介绍下loadrunner接口自动化测试实例: loadrunner接口测试原理是web_submit_data函数发送post或者get请求,将测试用例数据进行

day10 Python作用域 Python2.7与Python3.x的类继承的区别及其他

一.Python作用域   1.Python中无块级作用域 if 1 == 1: name = 'test' print(name) #输出会报错,因为name的作用域仅限于if下的代码块,而不属于全局   2.Python中以函数为作用域 def func(): func_name = 'func_test' print(func_name) #这里同样会报错,因为变量func_name的作用于func函数中   3.Python作用域链,层层嵌套,使用时从内向外找   4.Python的作用

QT 操作excel 类封装

1 # pro file 2 [plain] view plaincopy 3 CONFIG += qaxcontainer 4 5 QT += core 6 7 QT -= gui 8 9 TARGET = QExcel 10 CONFIG += console 11 CONFIG -= app_bundle 12 13 TEMPLATE = app 14 15 16 SOURCES += main.cpp \ 17 qexcel.cpp 18 19 HEADERS += \ 20 qexce

php---数据库类封装

为了节省以后的时间,今天封装了操作sql语句的一个类,在此保存起来,方面以后使用. 这个类的文件名:SqlTool.class.php 主要有dql和dml两个函数 看下面的源码" <?php class SqlTool{ private $conn; private $username="root"; private $password="1234"; private $host="127.0.0.1"; private $db

分析特定类的python脚本

今天接触了下pyUSB,事先没看对象内部成员资料,直接用python的dir函数看了看pyUSB的内部构成.突然间想到自己可不可以写个简单的脚本,利用dir或其他函数遍历某个对象内部的所有成员,并打印出来成树状图的形式?于是写了如下对象分析程序: 使用方法 : import matplotlib.pyplot as plt import AnalysisClass m = AnalysisClass.AnalysisClass() m.analysisObject(plt.Arrow, 'plt