首页 > 编程语言 >Python编写接口测试文档(以豆瓣搜索为例)

Python编写接口测试文档(以豆瓣搜索为例)

时间:2023-12-21 12:04:49浏览次数:41  
标签:为例 Python self uri url 豆瓣 params requests response


前言

很多人会使用postman工具,或者熟悉python,但不一定会使用python来编写测试用例脚本,postman里面可以完整的将python代码复制出来。

(以下所有内容以豆瓣网站搜索功能为例子)


一、postman接口用例转换为python测试用例

打开postman,点击右侧的</>图标,页面右边会显示脚本,顶部修改导出的语言,这边我使用的是Python-Reqyests

Python编写接口测试文档(以豆瓣搜索为例)_自动化测试

复制脚本,在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是否要添加可根据需求来定

执行结果如下:

Python编写接口测试文档(以豆瓣搜索为例)_接口测试_02

 

标签:为例,Python,self,uri,url,豆瓣,params,requests,response
From: https://blog.51cto.com/u_15333581/8920881

相关文章

  • Python接口测试get请求过程详解
    python做接口测试用到的是requests模块,首先要导入requests库,pipinstallrequests1、get直接请求方式以豆瓣网为例:url='https://read.douban.com/'respose=requests.get(url=url)#status_code为返回的状态码print(respose.status_code)#text为返回的数据print(res......
  • 用Python进行websocket接口测试
    我们在做接口测试时,除了常见的http接口,还有一种比较多见,就是socket接口,今天讲解下怎么用Python进行websocket接口测试。现在大多数用的都是websocket,那我们就先来安装一下websocket的安装包。pipinstallwebsocket-client 安装完之后,我们就开始我们的websocket之旅了。我们先来看......
  • Python接口自动化浅析logging封装及实战操作
    一、yaml配置文件将日志中的常用配置,比如日志器名称、日志器等级及格式化放在配置文件中,在配置文件config.yaml中添加:logger:name:ITesterlevel:DEBUGformat:'%(filename)s-%(lineno)d-%(asctime)s-%(levelname)s-%(message)s'封装logging类,读取yaml中的日志配置。二、读取y......
  • Python接口自动化之文件上传/下载接口详解
    〇、前言文件上传/下载接口与普通接口类似,但是有细微的区别。如果需要发送文件到服务器,例如:上传文档、图片、视频等,就需要发送二进制数据,上传文件一般使用的都是Content-Type:multipart/form-data数据类型,可以发送文件,也可以发送相关的消息体数据。反之,文件下载就是将二进制格式......
  • python+excel接口自动化获取token并作为请求参数进行传参操作
    1、登录接口登录后返回对应token封装:importjsonimportrequestsfromutil.operation_jsonimportOperationJsonfrombase.runmethodimportRunMethodclassOperationHeader:def__init__(self,response):self.response=json.loads(response)defget_response_token(......
  • Python中Selenium模块的使用详解
    Selenium的介绍、配置和调用Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),Firefox,Safari,GoogleChrome,Opera等。这个工具的主要功能包括:测试浏览器的兼容性——......
  • ERROR: Could not build wheels for opencv-python, which is required to install py
    目录系统环境问题描述问题解决问题二参考文章系统环境#macOS系统版本$sw_versProductName:MacOSXProductVersion:10.14.4BuildVersion:18E2035#Python版本$python--versionPython3.9.13问题描述安装opencv-python报错,安装失败#安装opencv-python的命令......
  • python初识
    一、何为编程语言编程:用代码指挥计算机做事,编写一个特定的程序程序:根据据一堆指令,告诉计算机该做什么代码:写给计算机看的/处理的一条命令,写代码就是给计算机下命令语言:分自然语言和编程语言。自然语言,本质上是人与人之间的交流;编程语言,本质上是计算机跟人的交流。计算机和人都......
  • 【算法】python版A-Star(A星)寻路
    importpygameimportmathfromqueueimportPriorityQueue#初始化屏幕WIDTH=800WIN=pygame.display.set_mode((WIDTH,WIDTH))pygame.display.set_caption("A*PathFindingAlgorithm")#定义颜色RED=(255,0,0)GREEN=(0,255,0)BLUE=(0,255,0)......
  • Python异步编程之yield from
    yieldfrom简介yieldfrom是Python3.3后新加的语言结构,可用于简化yield表达式的使用。yieldfrom简单示例:>>>defgen():...yieldfromrange(10)...>>>g=gen()>>>next(g)0>>>next(g)1>>>yieldfrom用于获取生成器中的值,是对yield使用的一种......