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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | import requests # 在dos命令下安装:requests pip install requests # 或者在pycharm中设置里面project中安装 # (pip命令版本不要高于10,会报main函数作用的错误) # 接口的测试流程: # 问开发同事要接口文档,或者直接用浏览器或者抓包工具来抓接口 # 根据文档或者直接抓到的接口来构建请求 # 构建完请求后点击运行在查看响应体中的值来判断接口是否OK # from selenium import webdriver # selenium-->ui自动化有那几种方法 # import requests # requests -->接口的urlib urlib2 urlib3 也可以来做接口 # 1、组建一个接口请求: # import requests #导入接口库 # rep =requests.get() # rep =requests.post() # rep =requests.request() # session =requests.Session() #保持会话上下接口的关联 # session-->对象 对象名称和变量名称可以自定义 # session.get() # session.post() # 2、组建一个接口需要哪些参数????? # url地址、类型headers、入参、请求发方法get post # import requests # # 1、登录接口的url地址 # loginjump_url='http://192.168.254.129:8080/cms/manage/loginJump.do' # #2、登录接口的类型 # loginjump_haaders={'Content-Type': 'application/x-www-form-urlencoded'} # # 3、登录接口的入参 # loginjump_data={'userAccount': 'admin', # 'loginPwd': 123456} # # 4、组建一个接口的请求post请求 # rep =requests.post(url=loginjump_url,headers=loginjump_haaders # ,data=loginjump_data) # print(rep) #<Response [200]> # print(rep.text) #{"code":"200","msg":"登录成功!","model":{}} # print(type(rep.text)) #str # print(type(rep)) # # 在Python2中类型为:编码格式类型 pyhton3为str字符串类型 # # 如要去对当前的接口进行断言:需要将返回值转换成为json格式 # js =rep.json() #将rep转换成为js格式 # # 第一种断言方法:if判断 # if js['msg'] =='登录成功!': # print('接口测试OK') # else: # print('接口测试失败') # # 第二种断言方法:assertPython中自带的方法 # assert js['msg']=='登录成功!' # print(rep.status_code) #打印状态码 200 # print(rep.cookies) #打印身份cookies # print(rep.headers) #打印请求头中的信息 # import requests # # 构建一个get请求: # url='http://129.226.122.199:8080//cms/manage/loginJump.do' # data={'userAccount':'admin','loginPwd':123456} # # get请求可以不要类型 # # 在工具中post请求的时候会有一个类型选择 # rep =requests.get(url=url,params=data) # print(rep) #<Response [200]> # print(rep.text) #{"code":"200","msg":"登录成功!","model":{}} # js=rep.json()#转换成为js格式,然后在通过断言方法来实现断言 # print(rep.headers) #请求头 # print(rep.cookies)#cookie # print(rep.status_code)# 200返回状态 # 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":{}} # import requests # sesson=requests.Session() #创建一个sesson对象保持会话 # class Cms_api: # def __init__(self): # pass # def log_jump(self):#登录接口 # logjump_url='http://129.226.122.199:8080/cms/manage/loginJump.do' # logjump_hes={'Content-Type': 'application/x-www-form-urlencoded'} # logjump_data={'userAccount': 'admin', # 'loginPwd': 123456} # rep=requests.post(logjump_url,data=logjump_data,json=logjump_hes) # rep=sesson.post(logjump_url,logjump_data,logjump_hes) # print(rep.text) # def User_list(self):#用户管理接口 # userlist_url='http://192.168.254.129:8080/cms/manage/queryUserList.do' # userlist_hes={'Content-Type': 'application/x-www-form-urlencoded'} # userlist_data={'startCreateDate':'', # 'endCreateDate': '', # 'searchValue': '', # 'page': 1} # # rep=requests.post(userlist_url,userlist_hes,userlist_data) # rep=sesson.post(userlist_url,userlist_data,userlist_hes) # print(rep.text) # if __name__ == '__main__': # Run =Cms_api()# 创建一个对象 # Run.log_jump()#登录接口 # Run.User_list()#用户管理接口 # import requests # class Cms_api: # def __init__(self,url,data,headers): # self.url=url # self.data=data # self.headers=headers # def fun(self): # rep =requests.post(url=self.url,data=self.data,json=self.headers) # js=rep.json() #为了断言需要转换格式 # return js # def fun1(self): # a=self.fun() #方法传递 # assert a['msg']=="登录成功!" #断言方法 # if a['msg']=="登录成功!": #断言方法 # print('OK') # else: # print('NO') # if __name__ == '__main__': # Cms =Cms_api(url='http://129.226.122.199:8080/cms/manage/loginJump.do', # data={'userAccount': 'admin','loginPwd': 123456}, # headers={'Content-Type': 'application/x-www-form-urlencoded'}) # Cms.fun1() # 1、登录接口 # 2、用户管理接口 # 3、新增用户接口 # 4、修改密码接口 # 把省份接口当做城市接口的入参来调用 # import requests # import re # class C: # def sf(self): #省份接口 # Province_url='http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince' # Province_headers={'Content-Type': 'application/x-www-form-urlencoded'} # rep =requests.post(url=Province_url,json=Province_headers) # # print(rep.text) # a =re.findall('<string>(.+?)</string>',rep.text) # return a # # def cs(self): #城市接口 # c=self.sf() #省份接口 # portCity_url='http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity' # portCity_data={'byProvinceName':c[16]} # portCity_headers={'Content-Type': 'application/x-www-form-urlencoded'} # rep =requests.post(url=portCity_url,data=portCity_data,json=portCity_headers) # print(rep.text) # if __name__ == '__main__': # c=C() # # c.sf() # c.cs() # 1、登录接口 # 2、用户管理接口 # 3、新增用户接口 # 4、修改密码接口 # 封装在单元测试框架中,生成测试报告 # import requests #导入接口库 # session =requests.Session() #创建一个session对象保持上下接口会话 # class Cms: #定义一个类 # def __init__(self): # pass # def log_jump(self): #组建一个登录接口 # log_url='http://192.168.254.129:8080/cms/manage/loginJump.do' #url地址 # log_data={'userAccount': 'admin','loginPwd': 123456} #入参 # log_headers={'Content-Type': 'application/x-www-form-urlencoded'} #内容类型 # rep=session.post(url=log_url,data=log_data,json=log_headers) #构建一个post请求 # print(rep.text) #打印结果{"code":"200","msg":"登录成功!","model":{}} # def user_list(self): #组建一个用户管理接口 # list_url='http://192.168.254.129:8080/cms/manage/queryUserList.do' #url 地址 # list_data={'startCreateDate':'' ,'endCreateDate':'', 'searchValue': '','page': 1} #入参 # list_headers={'Content-Type': 'application/x-www-form-urlencoded'} #内容类型 # rep=session.post(url=list_url,data=list_data,json=list_headers)#构建一个post请求 # print(rep.text) #打印结果 # def list_u(self): #组建一个用户查询接口 # u_url='http://192.168.254.129:8080/cms/manage/queryUserList.do' #url地址 # u_data={'startCreateDate':'', 'endCreateDate':'', 'searchValue': 'ZSAN','page': 1} #入参 # u_headers={'Content-Type': 'application/x-www-form-urlencoded'} #类型类型 # rep=session.post(url=u_url,data=u_data,json=u_headers) #构建一个post请求 # print(rep.text) #打印结果 {"code":"200","msg":"查询用户成功!","model":{"totalRow":0,"userList":[],"pages":0}} # if __name__ == '__main__': # ru=Cms() #创建一个类 # ru.log_jump() #类调用登录接口 # ru.user_list() #类调用用户管理接口 # ru.list_u()#类调用用户查询接口 # 关联接口处理 import requests class Cms_api: def log_jump( self ): #登录接口 log_url = 'http://192.168.254.129:8080/cms/manage/loginJump.do' log_data = { 'userAccount' : 'admin' , 'loginPwd' : 123456 } log_hes = { 'Content-Type' : 'application/x-www-form-urlencoded' } rep = requests.post(url = log_url,data = log_data,json = log_hes) # rep=session.post() # print(rep.text) #打印结果文本 # print(rep.cookies)#<RequestsCookieJar[<Cookie JSESSIONID=0F2A8D997904C468539241ED39A36444 for 192.168.254.129/cms/>]> self .Cookie = str (rep.cookies).split( ' ' )[ 1 ] # 通过cookie进行关联 # print(self.Cookie) # # print(type(Cookie)) #<class 'str'> #字符串 # print(Cookie)#['<RequestsCookieJar[<Cookie', 'JSESSIONID=FE86A4F77A8F4C2C345567C044B0CDE9', 'for', '192.168.254.129/cms/>]>'] # print(type(Cookie)) #<class 'list'> 列表 # print(Cookie) #JSESSIONID=E208098EA86B180C9FDD3D5D8D055A97 def uer_list( self ): #用户管理接口 list_url = 'http://192.168.254.129:8080/cms/manage/queryUserList.do' list_data = { 'startCreateDate' :' ' ,' endCreateDate ': ' ',' searchValue ': ' ',' page': 1 } list_hed = { 'Cookie' : self .Cookie, 'Content-Type' : 'application/x-www-form-urlencoded' } rep = requests.post(url = list_url,data = list_data,json = list_hed) # rep=session.post() print (rep.text) if __name__ = = '__main__' : U = Cms_api() U.log_jump() U.uer_list() |
【推荐】国内首个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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架