博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3+requests:使用类封装接口测试脚本
阅读量:5810 次
发布时间:2019-06-18

本文共 3156 字,大约阅读时间需要 10 分钟。

转载请注明出处:

前言:接口测试用例较多,我们不可能每个用例都写一次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 = None14     if method == 'GET':15         respose = send_get(url,data,headers)16     else:17         respose = send_post(url,data,headers)18     return respose19 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 = None14         if method == 'GET':15             respose = self.send_get(url,params,headers)16         else:17             respose = self.send_post(url,data,headers)18         return respose19 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 = None17         if method == 'GET':18             respose = self.send_get(url,params,headers)19         else:20             respose = self.send_post(url,data,headers)21         return respose22 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

你可能感兴趣的文章
8.1_Linux习题和作业
查看>>
11.排序算法_6_归并排序
查看>>
Redis redis-cli 命令列表
查看>>
.NET框架设计—常被忽视的框架设计技巧
查看>>
BigDecimal 舍入模式(Rounding mode)介绍
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 infoSign
查看>>
开源 免费 java CMS - FreeCMS1.9 移动APP生成栏目列表数据
查看>>
git reset 三种用法总结
查看>>
hdfs笔记
查看>>
虚拟机新增加硬盘,不用重启读到新加的硬盘
查看>>
Java IO流详尽解析
查看>>
邮件服务系列之四基于虚拟用户的虚拟域的邮件系统(安装courier-authlib以及部分配置方法)...
查看>>
Linux VSFTP服务器
查看>>
DHCP中继数据包互联网周游记
查看>>
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
项目管理心得
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>