接口测试框架选择

接口测试是现在比较有性价比的自动化测试方法

目前常见的接口测试框架是1. Python + unittest + HtmlTestRunner;2. Python + Pytest + allure。下面描述一下2种框架的大概区别,可以自行判断使用的框架

1、准备工作

unittest是python自带的库,不用安装。可直接使用,该框架下需要仅需安装HtmlTestRunner插件来查看报告即可

Pytest是第三方库。该框架下需要安装Pytest框架插件 + allure报告插件

2、测试用例

总的来说,unittest 的测试执行需要按照一定的规范和结构,而 pytest 更加灵活,能够自动发现测试用例,并提供更友好和详细的执行输出。

2.1 unittest
  1. 测试用例:unittest 的测试用例是基于类的,通常需要继承 unittest.TestCase 类。因此在测试用例中必须以类来写才可以被执行。测试方法需要以 test_ 开头
  2. 执行测试用例:需要自己创建测试套装,之后测试套件会自动发现和执行这些以 test_ 开头测试用例。
  3. 测试结果:会显示详细的测试结果,包括测试用例的名称、执行结果、通过/失败的数量等信息。
  4. 断言方式:unittest提供了丰富的断言方法,如 assertEqual()、assertNotEqual()、assertTrue() 等,用于判断测试结果是否符合预期
2.2 Pytest
  1. 测试用例:可以自动发现当前目录及其子目录下的所有测试文件和测试函数,并执行它们,不需要按照特定的命名规范或目录结构,可以直接定义测试函数,并且支持参数化测试、装饰器等特性。
  2. 执行测试用例:不需要创建测试套装,会自动执行
  3. 测试结果:pytest 提供了更加友好和详细的执行输出,包括测试用例的名称、执行结果、通过/失败的数量、失败原因等信息,并且支持生成彩色的输出。
  4. 断言方式:pytest支持 Python 的标准断言,同时还提供了丰富的插件和扩展,如 assert 语句、assertion 方法等。
3、生成报告

总的来说,HtmlTestRunner 是一个简单易用的测试报告生成工具,适合快速生成测试报告并查看测试结果;而 Allure 提供了丰富的报告内容和交互性,支持多种语言和框架,适用于需要更详细和定制化的测试报告需求。

3.1 HtmlTestRunner
  1. 报告格式HtmlTestRunner 生成的测试报告通常是 HTML 格式的,呈现为一个网页,包含了测试用例的执行结果、通过/失败的数量、测试用例的名称、执行时间等信息,以及测试用例的执行日志。
  2. 简单易用HtmlTestRunner 是一个简单易用的测试报告生成工具,使用起来非常方便,适合快速生成测试报告并查看测试结果。
  3. 适用性HtmlTestRunner 适用于 Python 中的 unittest 框架,可以与 unittest 结合使用来生成测试报告。
3.2 Allure
  1. 丰富的报告内容Allure 生成的测试报告包含了丰富的信息,包括测试用例的执行结果、通过/失败的数量、测试用例的名称、执行时间,以及附加的信息如失败原因、截图、日志等,报告呈现出来的效果更加详细和丰富。
  2. 交互性Allure 生成的测试报告具有交互性,可以在报告中点击链接查看详细的测试用例信息、日志、截图等,方便查看测试结果和分析问题。
  3. 插件支持Allure 支持丰富的插件,可以扩展其功能,如生成图表、报表、测试历史记录等,可以根据需要定制报告的内容和样式。
  4. 支持多种语言Allure 不仅适用于 Python,还支持多种编程语言,如 Java、JavaScript、Ruby 等,可以在不同的测试框架中使用。
4、失败重试

unittest 没有自己的重试机制,需要自己通过编写装饰器或者自定义测试运行器来实现测试用例的重试。

pytest 则内置了重试插件,可以更方便地实现测试用例的重试。

5、数据驱动

unittest没有自己的数据驱动机制,需要需要安装ddt插件库,该库提供了数据驱动测试(Data-Driven Testing)的功能。

pytest 使用自带的pytest.mark.parametrize 装饰器来实现数据驱动测试。

6、稳定性与易用性

unittest是 Python 的官方单元测试框架,因此有较好的稳定性和可靠性。

pytest 的灵活性和丰富的功能,可能需要一定的学习曲线才能熟练使用。

posted on 2024-04-29 16:54  小菜鸟920  阅读(28)  评论(0编辑  收藏  举报