接口测试——requests库(python+requests)

一、requests库的介绍

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

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

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

(3)安装request库

方式一: dos下pip: 命令:pip install requests

方法二:pycharm 中 setting下载

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

  1. url  (域名+端口+接口路径)
  2. 请求头 (请求类型heards)
  3. 请求参数(请求体:账号,密码)

二、requests中的运行

1、导入requests 模块

2、运行的三种方法:

(1)第一种方法:

  • requests.post(url=url,data=data,json=heardes)
# import requests
# url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
# data1={'userAccount':'admin','loginPwd':'123456'}
# heard1={"Content-Type":"application/x-www-form-urlencoded"}
# # jk1=requests.post(url=url1,data=data1,json=heard1)
# print(jk1.text)     #打印响应体
# print(jk1.json())   #响应体转换成json格式
# print(jk1.status_code)  # 打印状态码
# print(jk1.cookies)   #打印cookie
# print(jk1.request)   #打印接口请求
# print(jk1.url)   #打印url

ctrl  鼠标点击  post查看方法

  • requests.get(url=url1,headers=heard1)
# import requests
# url1="http://49.233.201.254:8080/cms/manage/loginJump.do?userAccount=admin&loginPwd=123456"
# heard1={"Content-Type":"application/x-www-form-urlencoded"}
# # jk1=requests.get(url=url1,headers=heard1)
# jk1=requests.request("get",url=url1,headers=heard1)
# print(jk1.text)     #打印响应体

第二种调用方法:requests.request(请求方法,url,headers=h1)

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

第三种 方法:保持会话关系

requests.Session()调用方法

# import requests
# s=requests.Session()
# 登录接口
# url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
# data1={'userAccount':'admin','loginPwd':'123456'}
# heard1={"Content-Type":"application/x-www-form-urlencoded"}
# jk1=s.request("post",url=url1,data=data1,headers=heard1)
# print(jk1.text)
#查询用户接口
# url2="http://49.233.201.254:8080/cms/manage/queryUserList.do"
# data2={
# 'startCreateDate':'',
# 'endCreateDate':'',
# 'searchValue':'',
# 'page':'2'
# }
# heard2={"Content-Type":"application/x-www-form-urlencoded"}
# jk2=s.request("post",url=url2,data=data2,headers=heard2)
# print(jk2.text)

一、requests断言

1、if断言

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

2、assert断言

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

二、封装接口

1、

# 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'}
#         heard1={"Content-Type":"application/x-www-form-urlencoded"}
#         jk1=s.request("post",url=url1,data=data1,headers=heard1)
#         print(jk1.json())
#     def yh(self):
#         url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
#         data2={
#         'startCreateDate':'',
#         'endCreateDate':'',
#         'searchValue':'',
#         'page':'2'
#         }
#         heard2={"Content-Type":"application/x-www-form-urlencoded"}
#         jk2=s.request("post",url=url2,data=data2,headers=heard2)
#         print(jk2.text)
# if __name__ == '__main__':
#     dx=cms()
#     dx.dl()
#     dx.yh()

2、cookies 保持会话

  • 获取相同的cookie值

# 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'}
#         heard1={"Content-Type":"application/x-www-form-urlencoded"}
#         jk1=s.request("post",url=url1,data=data1,headers=heard1)
#         print(jk1.text)
#         c=str(jk1.cookies)
#         print(c)
#         self.cookie=c.split(" ")[1]
#         # print(cookie)
#     def yh(self):
#         url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
#         data2={
#         'startCreateDate':'',
#         'endCreateDate':'',
#         'searchValue':'',
#         'page':'2'
#         }
#         heard2={"Content-Type":"application/x-www-form-urlencoded","Cookies":self.cookie}
#         jk2=s.request("post",url=url2,data=data2,headers=heard2)
#         print(jk2.text)
# if __name__ == '__main__':
#     dx=cms()
#     dx.dl()
#     dx.yh()
  • return返回值
# 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'}
#         heard1={"Content-Type":"application/x-www-form-urlencoded"}
#         jk1=s.request("post",url=url1,data=data1,headers=heard1)
#         print(jk1.text)
#         c=str(jk1.cookies)
#         print(c)
#         cookie=c.split(" ")[1]
#         print(cookie)
#         return cookie
#     def yh(self):
#         d=self.dl()
#         url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
#         data2={
#         'startCreateDate':'',
#         'endCreateDate':'',
#         'searchValue':'',
#         'page':'2'
#         }
#         heard2={"Content-Type":"application/x-www-form-urlencoded","Cookies":d}
#         jk2=s.request("post",url=url2,data=data2,headers=heard2)
#         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 City

传入参数:byProvinceName:{{cs}}

import requests
import re
s=requests.Session()
class gl(object):
    def __int__(self):
        pass
    def sf(self):
        url1="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
        jk1=s.post(url=url1)
        print(jk1.text)
        self.tq=re.findall('<string>(.+?)</string>',jk1.text)
        print(self.tq)
    def cs(self):
        url2=r"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity"
        data1={'byProvinceName':self.tq[10]}
        # heard2 = {"Content-Type": "application/x-www-form-urlencoded"}
        jk2=s.post(url=url2,data=data1)
        print(jk2.text)

if __name__ == '__main__':
    dx=gl()
    dx.sf()
    dx.cs()

posted @ 2025-03-25 20:10  uai  阅读(186)  评论(0)    收藏  举报