我们今天讲解的内容
一、什么是Requests? Requests是用Python语言编写的简单易用的HTTP库,用来做接口测试的库。
二、安装requests库 1.按住Windows标志+r,在运行窗口输入cmd,输入pip install requests进行安装。
三、接口测试的流程:
1、问开发人员要到接口文档(或者通过fiddler和chrome浏览器抓包)
2、查看当前接口是用什么请求发送的
3、添加对应的请求参数
4、在IDE工具中右键点击run,运行py文件,发送接口请求,查看返回结果,对返回 结果进行校验看是否正确
四、
# # 接口测试:
# # 组建一个接口需要哪些参数
# # 1、URL请求地址
# # 2、当前接口的请求方式get /post
# # 3、当前接口的请求类型
# # 4、接口的入参
# # # # # # 请求方式有三种:
# # # # # # 第一种:
# # rep =requests.get()
# rep =requests.post()
# # 第二种
# rep =requests.request(post,get)
# # 第三种
# session =requests.Session()
# #创建一个session对象,作用就是保持会话和关联
# rep =session.get()
# rep =session.post()
post使用方法
一个post请求方法:
get 方法:
第二种:调用方法
# # # 通过第二种请求方式来构建请求
import requests
url ='http://129.226.122.199:8080/cms/manage/loginJump.do'
data ={'userAccount': 'admin',
'loginPwd': 123456}
rep =requests.request(method='get',url=url,params=data)
print (rep) #Response [200]>
print (rep.text) #{"code":"200","msg":"登录成功!","model":{}}
#封装接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import requests class Cms_api: #定义一个类 def __init__( self ): #定义一个构造函数用来初始化 pass def fun( self ): #定义一个方法 '''封装登录接口''' url = 'http://129.226.122.199:8080/cms/manage/loginJump.do' data = { 'userAccount' : 'admin' , 'loginPwd' : 123456 } headers = { 'Content-Type' : 'application/x-www-form-urlencoded' } rep = requests.post(url = url,data = data,json = headers) print (rep.text) '''如需要断言则要把类型转换成为字典:js''' js = rep.json() #切记如需要断言一定要转换否者无法断言 assert js[ "msg" ] = = "登录成功!" if js[ "msg" ] = = "登录成功!" : print ( '接口用例正常' ) else : print ( '接口用例异常' ) if __name__ = = '__main__' : c = Cms_api() #创建一个对象 c.fun() #实例方法,通过对象调用实例方法 |
断言
第三种方法:结合多个接口进行封装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #第三种方法 # # 练习题目: # # 将登录接口,用户管理接口,新增用户接口封装在类中且实现断言, # # 请求方式:post import requests #到入 接口库 session = requests.Session() # 创建一session对象来保持上下接口的关联 class Cms_api: def __init__( self ): pass def cms_dl( self ): #定义一个登录 url = 'http://129.226.122.199:8080/cms/manage/loginJump.do' data = { 'userAccount' : 'admin' , 'loginPwd' : 123456 } headers = { 'Content-Type' : 'application/x-www-form-urlencoded' } # dl_rep=requests.post(url=url,data=data,json=headers) dl_rep = session.post(url = url,data = data,json = headers) print (dl_rep.text) #{"code":"200","msg":"登录成功!","model":{}} js = dl_rep.json() assert js[ "msg" ] = = "登录成功!" def cms_yhgl( self ): #定义一个用户管理接口 uerlist_url = 'http://129.226.122.199:8080/cms/manage/queryUserList.do' uerlist_data = { 'startCreateDate' : ' ',' endCreateDate ': ' ',' searchValue ': ' ', ' page': 1 } uerlist_headers = { 'Content-Type' : 'application/x-www-form-urlencoded' } # uerlist_rep=requests.post(url=uerlist_url,data=uerlist_data,json=uerlist_headers) uerlist_rep = session.post(url = uerlist_url,data = uerlist_data,json = uerlist_headers) print (uerlist_rep.text) #{"code":"200","msg":"登录成功!","model":{}} js = uerlist_rep.json() #"code":"200","msg":"查询用户成功!", if js[ "msg" ] = = "查询用户成功!" : print ( '查询接口正常' ) else : print ( '查询接口失败' ) def cms_uers( self ): #薪增用户接口 user_url = 'http://129.226.122.199:8080/cms/manage/saveSysUser.do' user_data = { 'id' :' ' ,' userName ': ' cccc ',' userSex ': 1,' userMobile': 13314333333 , 'userEmail' : '8834343@qq.com' , 'userAccount' : 'cccc' , 'loginPwd' : 123456 , 'confirmPwd' : 123456 } user_headers = { 'Content-Type' : 'application/x-www-form-urlencoded' } # user_rep=requests.post(url=user_url,data=user_data,json=user_headers) user_rep = session.post(url = user_url,data = user_data,json = user_headers) print (user_rep.text) #{"code":"400","msg":"保存用户信息失败,登录帐号已存在!","model":{}} js = user_rep.json() assert js[ "msg" ] = = "保存用户信息失败,登录帐号已存在!" if __name__ = = '__main__' : U = Cms_api() # 创建一个对象 U.cms_dl() #对象调用登录接口 U.cms_yhgl() #对象调用用户管理接口 U.cms_uers() #对象调用新增用户接口 # # |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架