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()