import requests
post_url = 'http://localhost:7001/XXX'
payload2 = {'approveSeq':'6610','userCode':'qyzh123456_88','projName':'测试项目'}
r = requests.post(post_url, data=payload2, timeout=1) #post请求传参数时,使用data关键字6 print(r.json()) 7 print(r.status_code)
2.然后通过函数调用来发送get/post请求
# -*- coding: UTF-8 -*-
import requests
-
-
def send_get(url, data):
-
""" 定义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请求进行封装
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)
run_method.py
# -*- 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请求进行基本封装,通过实例化对象进行调用
总结:
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
e-1719235302263)]
[外链图片转存中…(img-bfh5X6yN-1719235302264)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!