python编写接口测试文档(以豆瓣搜索为例)
作者:测试baby 发布时间:2023-09-21 17:39:49
标签:python,接口,测试
前言
很多人会使用postman工具,或者熟悉python,但不一定会使用python来编写测试用例脚本,postman里面可以完整的将python代码复制出来。
(以下所有内容以豆瓣网站搜索功能为例子)
一、postman接口用例转换为python测试用例
打开postman,点击右侧的</>图标,页面右边会显示脚本,顶部修改导出的语言,这边我使用的是Python-Reqyests
复制脚本,在PyCharm中打开即可,在导入使用之前如果没有reuqests库,可能会报错,我们需要安装reuqests库。
cmd命令窗口输入:pip install requests
导出后的脚本格式如下:
import requests
url = "<https://www.douban.com/search?">
payload={'q': '三体'}
files=[
]
headers = {
'Cookie': 'bid=5bBvkukAbvY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
二、转换为pytest测试用例
1.下面就是转成pytest的测试用例
import requests
class TestDouban:
def test_douban(self):
url = "<https://www.douban.com/search?">
payload = {'q': '三体'}
files = []
headers = {
'Cookie': 'bid=5bBvkukAbvY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
三、封装POST和GET方法
在一个项目中,根路由的路径是一样的,只是不同功能对应的具体的接口不一致,且POST和GET是目前测试用例中比较通用的方法,所以可以将根路由、POST和GET方法封装成一个通用的类,后面直接调用即可。
1.common.py—公共类封装
import requests
class Common:
def __init__(self):
# 豆瓣根路由
self.url_root = "<https://www.douban.com>"
# get请求,uri是接口具体地址,params是get请求的参数,如果没有,默认为空
def get(self, uri, params=''):
# 拼凑访问地址
url = self.url_root + uri + params
# 通过get请求访问对应地址
response = requests.get(url)
# 返回request的response结果,类型为requests的Response类型
return response
# post请求,uri是接口具体地址,params是post请求的参数,如果没有,默认为空
def post(self, uri, params=''):
# 拼凑访问地址
url = self.url_root + uri
# 有参数,则访问对应的url,并赋值给默认参数data
if len(params) > 0:
response = requests.post(url, data=params)
# 无参数,只需要访问对应的url即可
else:
response = requests.post(url)
# 返回request的response结果,类型为requests的Response类型
return response
2.具体接口测试用例
import requests
from common.common import Common
class TestDouban:
def setup(self):
self.com = Common()
def test_douban(self):
uri = "/search?"
payload = {'q': '三体'}
response = self.com.post(uri, payload)
# 由于file不需要,就将file删除了,至于hearder是否要添加可根据需求来定
执行结果如下:
来源:https://blog.csdn.net/m0_56736369/article/details/118523109


猜你喜欢
- SvnPeer.php <?php /** * * This class for execute the external progr
- openpyxl模块支持.xls和.xlsx格式的excel创建,但是只支持.xlsx格式的读取操作,不支持.xls的读取(可以使用xlrd
- 今天的博客是直接来源于我自己的个人工具函数库。过去几个月,有些PyImageSearch读者电邮问我:“如何获取URL指向的图片并将其转换成
- 一、安装环境PHPMailer 需要 PHP 的 sockets 扩展支持另外登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密的,
- 概述考虑这样一个问题,有hello.py脚本,输出”hello, world!”;有TestInput.py脚本,等待用户输入,然后打印用户
- 限流是项目中经常需要使用到的一种工具,一般用于限制用户的请求的频率,也可以避免瞬间流量过大导致系统崩溃,或者稳定消息处理速率这个文章主要是使
- Python写一些简单的GUI界面也是非常简单的,并且Python有着丰富的库,这些库可以很方便我们去操作Windows系统,搭配界面,可以
- Python转json时出现中文乱码设置报文头# -*- coding:gbk -*- 连接数据库设置编码mysql = MyS
- 基本用法#初始化%h为空数组 %h={};#用数组初始化%h为a=>1,b=>2 %h=('a',1
- 实现目标:mysql下将自增主键的值,从10000开始,即实现自增主键的种子为10000。方案1)使用alter table `tablen
- 前言无论是单机锁还是分布式锁,原理都是基于共享的数据,判断当前操作的行为。对于单机则是共享RAM内存,对于集群则可以借助Redis,ZK,D
- 这篇文章主要介绍了Python3的socket使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示
- 字典求和edge_weights = defaultdict(lambda: defaultdict(float))for idx,node
- 将通过各种例子来了解如何在 Python 中使用 type() 函数。你好类型打印 "Hello World "几乎是你
- 文章slice介绍append的机制slice tricksgo dataslicearray的语法: [4]int{1,2,3,4}, [
- 本文实例讲述了ThinkPHP中自定义错误页面和提示页面的方法。分享给大家供大家参考。具体实现方法如下:在ThinkPHP中有两个方法时提示
- ACCESS2000文件用ACCESS2007打开,并迁移到SQLSERVER2005里 打开ACCESS2007的数据库工具方法
- 表单介绍说到表单,在HTML中表单的创建时通过<form>标签实现的,在<form>标签内部,字段通过使用<i
- 今天简单使用了一下python的re模块和lxml模块,分别利用的它们提供的正则表达式和xpath来解析页面源码从中提取所需的title,x