#学习打卡第4天
今天学习主题:接口自动化(python+pytest+requests)
学习目标:结合项目写出自动化接口脚本
学习阶段:
1、环境搭建+第三方库安装-✅
2、用例编写框架-进行中
---
一、requests
标准Http协议支持六种请求方法,即:
1、GET
2、POST
3、PUT
4、Delete
5、HEAD:HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息
6、Options:用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。
基本用法:
requests.get("url",params=) #向URL发送get请求,并附带参数
requests.post("url",params=) #向URL发送post请求,并附带参数
requests.status_code #获取状态码
requests.text
requests.context
requests.json
发送get请求,参数在url上,通过params传输
def test_query(self):
#参数
payload ={
"level" = 1
"name" = "Jack"
#发送请求
r = requests.get("https://httpbin.org/get",params=payload)
#打印信息
print(r.text)
#断言
assert r.status_code == 200
发送post请求,参数在form表单里,通过data传输
def test_post(self):
#参数
payload ={
"level" = 1
"name" = "Jack"
#发送请求
r = requests.post("https://httpbin.org/post",data=payload)
#打印信息
print(r.text)
#断言
assert r.status_code == 200
# 构造header数据请求
def test_head(self): r = requests.get("https://httpbin.org/get", headers={"h": "header demo"}) print(r.status_code) print(r.text) print(r.json()) assert r.status_code == 200 assert r.json()["headers"]["H"] == "header demo"
json断言
方法一:assert r.json["xxx"]["xxx"]="xxx"
方法二:安装jsonpath库,assert jsonpath(r.json(), '$..name')[0]=='xxx'
hamcrest断言
适合用于更加复杂的断言
assert_that(r.json())['xxx']['xxx'][0]['xxx'],equal_to('xxx')
二、header、Cookie处理
1、Cookie使用场景
- 在接口测试过程中,很多情况下,需要发送的请求附带cookies,才会得到正常的响应的结果。所以使用python+requests进行接口自动化测试也是同理,需要在构造接口测试用例时加入cookie。
2、传递Cookie的两种方式
- 通过请求头信息传递
- 通过请求的关键字参数cookies传递
三、认证体系
1、基本概念:
2、实战步骤
总体思路:
- 使用charles抓包查看此类请求
- 在自动化测试的过程中,可以使用auth参数传递认证信息
-
导包:from requests.auth import HTTPBasicAuth
- 请求url时,带上auth参数:auth=HTTPBasicAuth("xxx","xxx")
企业微信实战
1、封装企业成员增删改查
2、封装企业部门增删改查