目录
前言:
一、 简介
二、 实战操作
1. 登录接口
2. 查询订单接口
3. 新增订单接口
4. 修改订单接口
5. 删除订单接口
三、 结束语
前言:
接口自动化测试是软件测试过程中的重要一环,现在越来越多的公司开始使用自动化测试来提高测试效率和测试质量。在接口自动化测试中,请求参数的传递、接口返回数据的解析、状态码的判断等都是测试人员需要关注和处理的问题。其中,接口鉴权比较常见,而Cookie鉴权是一种常用的鉴权方式。在本篇文章中,我们将如何使用Requests库实现Cookie鉴权并关联接口的实战操作过程。
一、 简介
Requests是Python中最流行的HTTP库之一,它提供了一个简单且易于使用的接口,用于发送HTTP/1.1请求。在测试接口中,Requests被广泛应用于HTTP请求发送、接口性能测试、接口自动化测试等方面。
二、 实战操作
我们在实战中,以一个订单管理接口为例来演示Cookie鉴权的相关操作。该接口需要登录后才能进行访问,而且接口返回的数据格式为JSON格式。我们将演示如何使用Requests库进行接口自动化测试,完成订单查询、订单新增、订单修改和订单删除操作。
1. 登录接口
在进行鉴权关联之前,我们需要先登录获取到Cookie进行鉴权。登录接口的请求参数为用户名和密码,接口返回的数据中包含一个类似于token的Cookie。下面是代码演示:
import requests
# 登录接口
def login():
url = 'http://xxxxx/login'
user = {'username': 'test', 'passwor': '123456'}
res = requests.post(url, data=user)
# 获取Cookie
cookie = res.cookies.get('token')
return cookie
2. 查询订单接口
接下来,我们将演示如何使用Cookie鉴权实现订单查询功能。该接口需要在请求头中添加Cookie,我们可以使用Requests库的headers参数来设置请求头,具体代码如下:
import requests
# 查询订单接口
def query_order(cookie):
url = 'http://xxxxx/query_order'
headers = {'Cookie': 'token=' + cookie}
res = requests.get(url, headers=headers)
data = res.json()
return data
3. 新增订单接口
新增订单接口需要提交订单信息。在此之前,我们需要先把需要提交的订单信息保存在一个字典中,然后使用Requests库的json参数来提交JSON格式的数据。下面是代码演示:
import requests
# 新增订单接口
def add_order(cookie):
url = 'http://xxxxx/add_order'
order_info = {'order_no': 'xxxxxx', 'order_amount': 100}
headers = {'Cookie': 'token=' + cookie}
res = requests.post(url, json=order_info, headers=headers)
data = res.json()
return data
4. 修改订单接口
修改订单接口需要提供订单ID以及修改的订单信息。我们可以将订单ID和订单信息保存在一个字典中,然后使用Requests库的put方法来提交修改请求。下面是代码演示:
import requests
# 修改订单接口
def modify_order(cookie):
url = 'http://xxxxx/modify_order'
order_info = {'order_id': 1, 'order_no': 'yyyyyy', 'order_amount': 200}
headers = {'Cookie': 'token=' + cookie}
res = requests.put(url, json=order_info, headers=headers)
data = res.json()
return data
5. 删除订单接口
删除订单接口需要提供订单ID,我们可以将订单ID保存在一个字典中,然后使用Requests库的delete方法来提交删除请求。下面是代码演示:
import requests
# 删除订单接口
def del_order(cookie):
url = 'http://xxxxx/del_order'
order_info = {'order_id': 1}
headers = {'Cookie': 'token=' + cookie}
res = requests.delete(url, json=order_info, headers=headers)
data = res.json()
return data
到这里,我们已经完成了Cookie鉴权关联接口的实战操作。下面,我们将整个代码串联起来,实现一个完整的测试用例。完整代码如下:
import requests
# 登录接口
def login():
url = 'http://xxxxx/login'
user = {'username': 'test', 'passwor': '123456'}
res = requests.post(url, data=user)
# 获取Cookie
cookie = res.cookies.get('token')
return cookie
# 查询订单接口
def query_order(cookie):
url = 'http://xxxxx/query_order'
headers = {'Cookie': 'token=' + cookie}
res = requests.get(url, headers=headers)
data = res.json()
return data
# 新增订单接口
def add_order(cookie):
url = 'http://xxxxx/add_order'
order_info = {'order_no': 'xxxxxx', 'order_amount': 100}
headers = {'Cookie': 'token=' + cookie}
res = requests.post(url, json=order_info, headers=headers)
data = res.json()
return data
# 修改订单接口
def modify_order(cookie):
url = 'http://xxxxx/modify_order'
order_info = {'order_id': 1, 'order_no': 'yyyyyy', 'order_amount': 200}
headers = {'Cookie': 'token=' + cookie}
res = requests.put(url, json=order_info, headers=headers)
data = res.json()
return data
# 删除订单接口
def del_order(cookie):
url = 'http://xxxxx/del_order'
order_info = {'order_id': 1}
headers = {'Cookie': 'token=' + cookie}
res = requests.delete(url, json=order_info, headers=headers)
data = res.json()
return data
if __name__ == '__main__':
# 获取Cookie
cookie = login()
# 查询订单
query_result = query_order(cookie)
print('查询订单结果:', query_result)
# 新增订单
add_result = add_order(cookie)
print('新增订单结果:', add_result)
# 修改订单
modify_result = modify_order(cookie)
print('修改订单结果:', modify_result)
# 删除订单
del_result = del_order(cookie)
print('删除订单结果:', del_result)
三、 结束语
本篇文章主要介绍了如何使用Requests库实现Cookie鉴权关联接口的实战操作过程。在实际的应用中,我们还需要考虑接口的异常情况处理、性能测试、测试结果的输出和报告等。
【自动化测试交流】:574737577http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=L7ciHIyOnE5wR-WjW99VYUQELBbNvwEi&authKey=d28p8qACMAvFA0DEZRwQEVTHiANFRKlRSSnAMBo7rnwuJexGvBynhSCyZ4CAZZz8&noverify=0&group_code=574737577
接口自动化测试:
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: ReactHub:我用 ChatGPT 搞了一个 React 的资源导航网站,谁有我用心啊!
大家好,我是DOM哥。 图谱年年有,今年我来盘! 之前已经盘完了 Vue 的技术图谱,今天来盘 React 的。 我用 ChatGPT 开发了一个 React 的资源导航网站。 不管你是资深 React 用户,还是刚入门想学习 React 的小白,这个网站都能…