当前位置: 首页 > article >正文

Python(request库)

request库 

一、request库介绍

(1)简介

requests是用python语言编写的简单易用的http库,用来做接口测试的库


(2)接口测试自动化库有哪些?

 requests、urllib 、urllib2、urllib3、 httplib 等(最受欢迎的是requests) 

(3)安装request库

方式一:

dos下pip: 命令:pip install requests

图片

方法二:

pycharm 中 setting下载

图片

 (4)组建一个接口需要参数?


a、url  (域名+端口+接口路径)
c、请求头 (请求类型heards)
d、请求参数(请求体:账号,密码)


二、requests中的运行


1、导入requests 模块

2、运行的三种方法:

(1)第一种方法:


requests.post(url=url,data=data,json=heardes)

图片

ctrl  鼠标点击  post查看方法

案例:
import   requests
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1={'userAccount':'admin','loginPwd':'123456'}
h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=requests.post(url=url1,data=data1,json=h1)
print(jk1.text) #打印响应体
print(jk1.json()) #响应体转换成json格式
print(jk1.cookies) #打印cookie
print(jk1.status_code)# 打印状态码
print(jk1.request) #打印接口请求
print(jk1.url) #打印url
第一种方法中的get请求:
import   requests
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1={'userAccount':'admin','loginPwd':'123456'}
h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=requests.get(url=url1,params=data1,headers=h1)
print(jk1.text) #打印响应体
print(jk1.json()) #响应体转换成json格式
print(jk1.cookies) #打印cookie
print(jk1.status_code)# 打印状态码
print(jk1.request) #打印接口请求
print(jk1.url) #打印url

图片

图片

get参数接在url后面
import   requests
url1="http://49.233.201.254:8080/cms/manage/loginJump.do?userAccount=admin&loginPwd=123456"
h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=requests.get(url=url1,headers=h1)
print(jk1.text) #打印响应体
print(jk1.json()) #响应体转换成json格式
print(jk1.cookies) #打印cookie
print(jk1.status_code)# 打印状态码
print(jk1.request) #打印接口请求
print(jk1.url) #打印url
(2)第二种调用方法:
requests.request(请求方法,url,headers=h1)

图片

案例1:
requests.request(get,url,headers=h1) 方法
 
import   requests
url1="http://49.233.201.254:8080/cms/manage/loginJump.do?userAccount=admin&loginPwd=123456"
h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=requests.request("get",url1,headers=h1)
print(jk1.text) #打印响应体
print(jk1.json()) #响应体转换成json格式
print(jk1.cookies) #打印cookie
print(jk1.status_code)# 打印状态码
print(jk1.request) #打印接口请求
print(jk1.url) #打印url
案例2:
requests.request(post,url,data,headers=h1) 方法
import   requests
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1={'userAccount':'admin','loginPwd':'123456'}
h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=requests.request("post",url=url1,data=data1,headers=h1)
print(jk1.text) #打印响应体
print(jk1.json()) #响应体转换成json格式
print(jk1.cookies) #打印cookie
print(jk1.status_code)# 打印状态码
print(jk1.request) #打印接口请求
print(jk1.url) #打印url
 
(3)第三种 方法:保持会话关系

requests.Session()调用方法

import   requests
s=requests.Session()
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1={'userAccount':'admin','loginPwd':'123456'}
h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=s.request("post",url=url1,data=data1,headers=h1)
print(jk1.text) #打印响应体
#查询用户接口
url2="http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2={
'startCreateDat':'',
'endCreateDate':'',
'searchValue':'',
'page':'1'
}
h2={"Content-Type":"application/x-www-form-urlencoded"}
jk2=s.post(url=url2,data=data2,headers=h2)
print(jk2.text)

 


request断言

一、if断言

案例:

import   requests
s=requests.Session()
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1={'userAccount':'admin','loginPwd':'123456'}
h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=s.request("post",url=url1,data=data1,headers=h1)
wb=jk1.json()
print(jk1.json())
if wb["msg"]=="登录成功!":
    print("ok")
else:
    print("no")

二.assert断言

h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=s.request("post",url=url1,data=data1,headers=h1)
wb=jk1.json()
print(jk1.json())
assert  wb["msg"]=='登录成功'
print(jk1.cookies)

图片


封装接口

案例1:requests.Session()

import   requests
s=requests.Session()
class  Cms(object):
    def __init__(self):
        pass
    def  dl(self):
        url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do"
        data1={'userAccount':'admin','loginPwd':'123456'}
        h1={"Content-Type":"application/x-www-form-urlencoded"}
        jk1=s.request("post",url=url1,data=data1,headers=h1)
        print(jk1.json())
    def   yh(self):
        url2="http://49.233.201.254:8080/cms/manage/queryUserList.do"
        data2={
        'startCreateDat':'',
        'endCreateDate':'',
        'searchValue':'',
        'page':'1'
        }
        h2={"Content-Type":"application/x-www-form-urlencoded"}
        jk2=s.request("post",url=url2,data=data2,headers=h2)
        print(jk2.text)
if __name__ == '__main__':
    dx=Cms()
    dx.dl()
    dx.yh()

案例2:cookies 保持会话

图片

图片

代码:

import   requests
class  Cms(object):
    def __init__(self):
        pass
    def  dl(self):
        url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do"
        data1={'userAccount':'admin','loginPwd':'123456'}
        h1={"Content-Type":"application/x-www-form-urlencoded"}
        jk1=requests.request("post",url=url1,data=data1,headers=h1)
        print(jk1.text)
        c=str(jk1.cookies)
        print(c) #<RequestsCookieJar[<Cookie JSESSIONID=DAB3F94092C907F3BAD009410A8778E0 for 49.233.201.254/cms/>]>
        self.cookie=c.split(" ")[1] #JSESSIONID=6D60B90E937058D8B91B66A18671A4CB
        # print(cookie)
    def   yh(self):
        url2="http://49.233.201.254:8080/cms/manage/queryUserList.do"
        data2={
        'startCreateDat':'',
        'endCreateDate':'',
        'searchValue':'',
        'page':'1'
        }
        h2={"Content-Type":"application/x-www-form-urlencoded",
            "Cookie":self.cookie}
        jk2=requests.request("post",url=url2,data=data2,headers=h2)
        print(jk2.text)
if __name__ == '__main__':
    dx=Cms()
    dx.dl()
    dx.yh()

案例3:

import   requests
class  Cms(object):
    def __init__(self):
        pass
    def  dl(self):
        url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do"
        data1={'userAccount':'admin','loginPwd':'123456'}
        h1={"Content-Type":"application/x-www-form-urlencoded"}
        jk1=requests.request("post",url=url1,data=data1,headers=h1)
        print(jk1.text)
        c=str(jk1.cookies)
        print(c) #<RequestsCookieJar[<Cookie JSESSIONID=DAB3F94092C907F3BAD009410A8778E0 for 49.233.201.254/cms/>]>
        cookie=c.split(" ")[1] #JSESSIONID=6D60B90E937058D8B91B66A18671A4CB
        # print(cookie)
        return cookie
    def   yh(self):
        d=self.dl()
        url2="http://49.233.201.254:8080/cms/manage/queryUserList.do"
        data2={
        'startCreateDat':'',
        'endCreateDate':'',
        'searchValue':'',
        'page':'1'
        }
        h2={"Content-Type":"application/x-www-form-urlencoded",
            "Cookie":d}
        jk2=requests.request("post",url=url2,data=data2,headers=h2)
        print(jk2.text)
if __name__ == '__main__':
    dx=Cms()
    # dx.dl()
    dx.yh()

图片


关联接口

省份接口:

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince

城市接口:

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupport

入参:CitybyProvinceName:{{cs}}

案例1:


import   requests s=requests.Session() class  Gl(object):     def __init__(self):         pass     def  sf(self):         url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"         jk=s.post(url=url)         print(jk.text)     def  cs(self):         url1=r"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity"         data1={'byProvinceName':"浙江"}         h1={"Content-Type":"application/x-www-form-urlencoded"}         jk1=s.post(url=url1,data=data1,)         print(jk1.text) if __name__ == '__main__':     dx=Gl()     dx.sf()     dx.cs()

案例2:

图片

import   requests
import  re
s=requests.Session()
class  Gl(object):
    def __init__(self):
        pass
    def  sf(self):
        url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
        jk=s.post(url=url)
        print(jk.text)
        self.tq=re.findall('<string>(.+?)</string>',jk.text)
        # print(tq)
    def  cs(self):
        url1=r"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity"
        data1={'byProvinceName':self.tq[8]}
        h1={"Content-Type":"application/x-www-form-urlencoded"}
        jk1=s.post(url=url1,data=data1,headers=h1)
        print(jk1.text)
if __name__ == '__main__':
    dx=Gl()
    dx.sf()
    dx.cs()

http://www.kler.cn/a/600874.html

相关文章:

  • netty select/poll/epoll区别
  • CSS+JS 堆叠图片动态交互切换
  • 六级备考 词汇量积累(day11)
  • 最新DeepSeek-V3-0324:AI模型性能提升与新特性解析
  • 初识哈希表
  • 【JavaEE进阶】Linux搭建Java部署环境
  • 阿里开源的免费数据集成工具——DataX
  • ngx_http_add_location
  • 压测工具开发(一)——使用Qt Designer构建简单界面
  • 【漫话机器学习系列】154.岭回归(Ridge Regression)
  • JMeter JSON断言讲解和错误用例
  • kubernetes高级资源之污点和容忍
  • mapbox进阶,添加鹰眼图控件
  • 基于Spring Boot的个性化商铺系统的设计与实现(LW+源码+讲解)
  • 鸿蒙移动应用开发--UI组件布局
  • react中防止数据多大并需要二次加工处理进行单线程转多线程webworker优化处理(不借助react-webworker)
  • 代码随想录刷题day52|(二叉树篇)106.从中序与后序遍历序列构造二叉树
  • 大疆上云api如何配置开放平台
  • DM9162使用记录
  • Tekton系列之实践篇-从触发到完成的完整执行过程