接口自动化测试框架学习手册

本文为您提供了一个全面的接口自动化测试框架学习指南,帮助你快速上手并打造高效的测试工具。

用 Apifox,节省研发团队的每一分钟

接口自动化测试框架学习手册

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

接口测试

咱们先来看看一张图:

接口自动化测试框架学习手册
接口测试

接口测试的步骤

一般接口测试的步骤基本就走四步:

  • 第一步:准备好要测试的接口;
  • 第二步:设置好期望的结果;
  • 第三步:使用测试框架或者 API 工具进行测试;
  • 第四步:得到结果,看是否符合预期。

但其实实际过程是比这个复杂的,因为还要考虑持续集成、测试逻辑、测试报告这些~

接口测试的方案

接口测试的方案,我分为两种:

  • 第一种:使用编程语言的自动化测试框架进行测试。
  • 第二种:使用 API 工具进行测试。

而测试框架,比较火的就是 Python+Pytest+Allure

至于 API 工具,比较火的就是 Apifox

使用自动化测试框架测试接口

使用自动化测试框架测试接口
接口测试

涉及到的技术栈有:

  • Requests
  • Python
  • Pytest
  • Allure

Requests

使用自动化测试框架测试接口
Requests

我们可以使用 Requests 来进行接口的请求发送,并获取到返回来的响应结果,Requests 几乎支持所有请求方法。

r = requests.get(url, params, kwargs) r = requests.post(url, data, json, kwargs)

并且我们可以操作、修改响应结果。

r.json()
r.text()

响应里比较重要的参数有:

 # HTTP响应的状态码
r.status_code
# 响应失败的原因
r.reason
# 响应对应的请求对象
r.request
# 响应中数据转换成文本
r.text
# 响应来自于哪个url
r.url
# 响应的content
r.content

Requests 同时也支持 Session 的功能,用来做鉴权等操作。

s = requests.Session()
s.header[key] = value
s.auth = (username, password)

Pytest

Pytest 是 Python 的一个自动化测试框架,它的衍生插件包括了 allure-pytest,他支持参数话,并且可以与 jenkins 集成,支持参数化等功能。

Pytest
Pytest

基本的测试代码,可以这么写:

@pytest.mark.login
def test_login():
    pass

@pytest.mark.logout
def test_logout():
    pass

Pytest 支持具体执行某个类、某个函数、某个文件,非常灵活。

main文件里的调试
# 指定运行单个测试目录
pytest.main(['./test_case'])

# 指定运行单个测试文件
pytest.main(['./test_case/test_func.py'])

# 指定运行测试类
pytest.main(['./test_case/test_func.py::TestFunc'])


# 指定运行测试类中的某个方法
pytest.main(['./test_case/test_func.py::TestFunc::test_add_by_class'])

# 指定运行单个测试函数
pytest.main(['./test_case/test_func.py::test_add_by_func_aaa'])

Pytest.ini 支持对日志直接输出。

[pytest]
log_cli = 1
log_cli_level = DEBUG
log_cli_date_format = %Y-%m-%d-%H-%M-%S
log_cli_format = %(asctime)s - %(filename)s - %(module)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)sv
log_file_level = DEBUG
log_file_date_format = %Y-%m-%d-%H-%M-%S
log_file_format = %(asctime)s - %(filename)s - %(module)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s
log_file = ./log/Test.log

Allure

Allure 是用来做测试报告的,它被集成在很多框架中,比如 Pytest、Junit、TestNG 等等。

Allure 提供了一些装饰器,用来改造 Pytest 的测试用例,其实都是为了最后的测试报告做准备。

@allure.feature # 用于描述被测试产品需求
@allure.story # 用于描述feature的用户场景,即测试需求
with allure.step # 用于描述测试步骤,将会输出到报告中
allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些测试数据,截图等
@pytest.allure.step # 用于将一些通用的函数作为测试步骤输出到报告,调用此函数的地方会向报告中输出步骤

使用 Apifox 测试接口

为什么使用 Apifox 来做接口测试呢,因为使用 Apifox 的话,并不需要你做太多操作,只需要点点点就行了,也不需要你写很多代码,只需要写最基本的测试脚本就行。

Apifox 自动化测试

Apifox 提供了 自动化测试的功能,但是前提是你得先定义好你所需要测试的接口们,就像我这里定义了五个接口,并且每个接口写了两个简单的测试脚本。

  • 测试状态码是否为 200
  • 测试响应时间是否小于 200ms
Apifox 自动化测试
Apifox 自动化测试

定义好接口我们需要进入 自动化测试 中去,把接口导进去,Apifox 支持导入 接口、接口用例,看你想要哪个,很灵活,然后你需要设置一些参数,比如:

  • 循环数:运行循环次数
  • 延迟数:每次循环的延迟数
  • 线程数:想开几个线程
  • 环境:运行环境

等等,这些参数,其实都比较语义化比较好理解。

Apifox 自动化测试
测试用例

Apifox 测试报告

设置好参数,我们需要运行一下,查看到了运行之后的结果,Apifox 提供了一键导出报告的功能,等到运行完毕之后,我们可以导出测试报告查看。

Apifox 自动化测试
导出报告

导出后,我们可以看到 HTML 页面的测试报告,报告包含了测试的一些重要信息,以及每个接口的测试情况。

Apifox 自动化测试 测试报告
测试报告

关于Apifox

欢迎体验一下,完全免费的哦:在线使用 Apifox

Apifox 是一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。

Apifox 提供了一种全面的 API 管理解决方案。使用 Apifox ,你可以在统一的平台上设计、调试、测试以及协作你的 API,消除了在不同工具之间切换和数据不一致的问题。

个人使用体验还是不错的,推荐使用~

Apifox

知识扩展: