首页 机器学习 深度学习 神经网络 自然语言处理 计算机视觉

当前位置:首页 > 自动化 > pytest 如何实现自动化测试参数

pytest 如何实现自动化测试参数

发布时间:2024-09-25 20:28:55 作者:汉季妮
本文目录一览

⒈基于Pytest+Requests+Allure实现接口自动化测试

Pytest+Requests+Allure的组合实现了高效、可维护的UI自动化测试,结构清晰,步骤详细。 首先,工具层封装了get、post等基本作,方便代码中的复用(api_key.py)。
数据插件采用yaml文件存储,方便测试数据管理(user.yaml),并且是数据驱动的,让测试更加灵活。 然后数据驱动模块负责读写YAML文件,实现动态数据替换。
参数层存储公共参数,通过allParams.py调用以避免重写。 逻辑层是核心,比如登录、提出个问题、将产品添加到购物车、下订单等。 每个用例对应不同的数据和用例依赖于输入结果的步骤。
为了减少重复,提高效率,conftest.py定义了项目级别的默认值,包括token获取和工具类初始化,保证整个测试过程只需要初始化一次。 这样,shoppingApi.py就可以很方便地在逻辑层调用这些共享资源。
在用例层,test_Tree.py负责调用逻辑层进行测试用例管理和数据传输,实现测试用例的分发和执行。 最后通过main_run.py启动测试,整个自动化测试流程就开始了。
综上所述,该架构提供了接口测试的灵活性、可重用性和高效性,使测试结果清晰直观,便于和修复问题。

⒉ALLEN老师自动化测试小课堂|单元测试框架pytest使用

在自动化测试中,选择正确的框架可以显着提高性能。 本文将介绍另一个Python测试框架——pytest。 相比Unittest,pytest风格简洁,效率更高,更适合Python程习惯。
对于熟悉unittest的,可以继续阅读:
Pytest是Python的单元测试框架。 丰富的文档很容易上手,而且非常有帮助。 适合初学者。 安装方式有两种:一种是直接通过pip安装,另一种是使用require.txt文件来管理依赖。
在pytest中,对单元测试用例设计有明确的要求:创建以test_开的测试文件,写测试用例,添加断言,包括基本的True/False判断和异常处理。 pytest提供pytest.raises来捕获预期的异常。
要执行pytest测试用例,可以使用pytest.main()函数并通过参数指定执行范围。 测试结果将显示每个用例的状态,例如通过、失败等。 pytest还支固定方法、跳过测试和参数化用例以减少冗余代码。
测试报告必不可少。 pytest-html和allure是生成HTML报告的两个常用工具。 pytest-html需要安装和配置,而allure提供更灵活的集成和报告选项。
希望这些可以帮助您更好地理解和使用pytest。 如果觉得有用的话,可以给作者点个赞支一下。 关注作者和专栏,接收更多测试相关文章和续更新的。

⒊pytest系列之参数化、yaml和测试用例的执行状态

1.parametrize()实现数据驱动方法的详细参数解释1.1

@pytest.mark.parametrize(arg_name,arg_value)

arg_name:参数名,用于传递参数值给测试用例

arg_value:参数值(支列表、字典列表、元组和字典元组),如果有n个值,则测试用例将执行n次

1.2使用详情1.2.1直接传值@pytest.mark.parametrize("module_list",["商品搜索","商品详情","购物车"])deftest_interface_01(self,module_list):print(f'模块的第一个接口测试{module_list}case')1.2.2解压并传递值@pytest.mark.parametrize("arg1,arg2",[["name","tom"],["age",23]])deftest_interface_01(self,arg1,arg2):print(f'第一个模块接口测试场景{str(arg1)+":"+str(arg2)}')2、yaml格式的测试用例

yaml是一种数据格式,并且扩展名可以是yaml。 yml,支#注释,使用缩进表示级别,区分大小写,

一旦yaml读取,它就是一个字典列表

用法:

使用创建配置文件

用于写自动化测试用例

表组成

对象1.map:键值对(键与值之间有空格)

姓名:汤姆

2.数组(列表):使用‘-’表示列表

books:-book1:-price:34-book2:平凡的世界-book3:十日谈3.测试用例执行状态

测试后用例执行完成后,每个测试用例都有自己的状态。 常见状态有:

passed:测试用例通过。 Error:Assertionfailed:失败:用例代码本身报错(例如:fixture不存在,fixture中有错误)xfail:预期失败,添加了@pytest.mark.xfail();代码有异常并且匹配;引发的异常类,因此它是xfail(通过测试类型,表示应该捕获该异常),如果与引发的异常类不匹配则没有失败;

如果测试用例代码中存在任何异常,包括主动抛出异常或代码中出现异常,当测试用例调用的设备有异常或参数时,这将为失败。 通过的有异常,会在测试报告中算作错误,错误测试用例数量越多,测试用例质量越差。