前言 我们经常听说请求拦截,那到底什么是请求拦截,请求拦截有什么用呢?今天我们就一起来看一看。 关于请求拦截 请求拦截,顾名思义就是在请求过程中将请求拦截下来,然后对请求进行处理然后才进入视图中处理然后响应给客户端。 在安全测试、前后端开发中,请求拦截是非常有用的。比如 token 续签、统一响应处理、统一异常处理、历史接口改造等。 今天我们就用非…
前言 前面我们介绍的 FastApi 响应体都是使用不同的结构体进行的,有 str、list、json 等,但是这在前后台分离的场景下是不友好的。为了方便前端处理,我们一般会使用统一的数据结构作为响应。 分析 针对常用的响应码,我们可以封装符合自己业务需求的结构体。比如自定义响应码,自定义 message 等。 我们可以使用 Python 的字典类…
前言 相信你和我一样,在日常的工作中,requests 库被广泛使用。今天我要为你介绍一款号称下一代全功能的 HTTP 客户端:httpx。 什么是 httpx httpx 是 Python3 的全功能客户端,支持同步&异步 API,同时支持 HTTP/1.1 和 HTTP/2。 相比其他 HTTP 库,httpx 具有更加易用的接口,更加…
前言 相信你和我一样,在日常的工作中,requests 库被广泛使用。今天我要为你介绍一款号称下一代全功能的 HTTP 客户端:httpx。 什么是 httpx httpx 是 Python3 的全功能客户端,支持同步&异步 API,同时支持 HTTP/1.1 和 HTTP/2。 相比其他 HTTP 库,httpx 具有更加易用的接口,更加…
数据驱动概览 为什么要用数据驱动 举个简单例子,当我们在测试一个输入框的功能时,可能需要输入不同的参数,此时,我们不需要设计多个用例,而只需要将输入值参数化,将不同的参数作为一个列表通过数据驱动的方式进行加载即可。 httprunner 的数据驱动 通过上篇文章,我们已经知道 httprunner 的数据驱动需要在 testsuite 中使用关键字…
何为用例分层? 在自动化测试领域,自动化测试用例的可维护性是极其重要的因素,直接关系到自动化测试能否持续有效地在项目中开展。 概括来说,测试用例分层机制的核心是将接口定义、测试步骤、测试用例、测试场景进行分离,单独进行描述和维护,从而尽可能地减少自动化测试用例的维护成本。 逻辑关系图如下所示: 图片摘自 httprunner 官方网站。 几个核心概…
为什么要用环境变量 在自动化测试中,有时需要借助环境变量实现某些特定的目的,常见的场景包括: 切换测试环境 切换测试配置 存储敏感数据(从信息安全的角度出发) 设置环境变量 Linux 中 使用 export 命令 $ export UserName=admin $ echo $UserName admin $ export Password=12…
什么是 debugtalk 在前面的文章中我们已经介绍过 httprunner 的项目结构。debugtalk.py 是用来表示项目根目录的,同时我们也能在其中自定义一些方法供 api 和 case 使用。 debugtalk 用于 hook 详情查看:HttpRunner-03-hook debugtalk 用于数据传递 前面的 HttpRunn…
什么是 extract extract 顾名思义,我们就可以猜到其实用来做数据提取和引用的。 使用场景 通常,测试框架中都有获取数据并且将其存储到变量的机制。httprunner 也不例外,extract 就是用来提取变量并且供后续步骤使用。 在接口测试中,大多数接口都是需要鉴权的,而我们不可能在每个测试步骤,甚至测试用例中重复进行 token 的…
什么是 hook? hook 俗名钩子函数,就是在特定情况下才会触发的 Api。 举个 hook 栗子 就像你用银行卡去 ATM 机取钱,当你在执行取钱的动作过程中会触发一个名为 msg 的钩子函数,而这个 msg 钩子函数就会执行像你手机发送短信的动作。 即:在取钱动作成功发生的时候会触发发送短信的钩子函数。 hrun 中的 hook 和其他测试…