接口测试——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)组建一个接口需要参数?
- url (域名+端口+接口路径)
- 请求头 (请求类型heards)
- 请求参数(请求体:账号,密码)
二、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()


浙公网安备 33010602011771号