当前位置: 首页 > news >正文

个人导航网站怎么备案百度搜索推广官网

个人导航网站怎么备案,百度搜索推广官网,网站空间 php,高校网站建设制度pytest.mark.parametrize 和 pytest.mark.smoke 都是 Pytest 中常用的装饰器,但它们的目的、功能和应用场景完全不同: 1. pytest.mark.parametrize (参数化测试) 目的: 数据驱动测试。用于对同一个测试函数或方法,使用多组不同的…

pytest.mark.parametrize@pytest.mark.smoke 都是 Pytest 中常用的装饰器,但它们的目的、功能和应用场景完全不同

1. pytest.mark.parametrize (参数化测试)

  • 目的: 数据驱动测试。用于对同一个测试函数或方法,使用多组不同的输入参数和预期结果来运行多次,避免重复编写结构相同的测试用例。
  • 功能:
    • 接收两个主要参数:argnames(字符串或字符串列表,指定参数名)和 argvalues(可迭代对象,通常是列表/元组组成的列表,提供每组参数值)。
    • 它会根据 argvalues 中提供的参数组合数量,动态生成并运行多个独立的测试用例
    • 每个生成的测试用例在报告中都是独立显示的。
  • 应用场景:
    • 验证函数/方法在不同输入下的行为: 例如测试一个计算器函数对多组数字的加减乘除结果。
    • 测试边界值和特殊情况: 输入为空、最大值、最小值、非法字符等。
    • 组合测试: 测试不同配置或状态组合下的功能。
    • 避免重复代码: 当测试逻辑相同,只有输入数据和预期输出不同时。
  • 示例:
    import pytest@pytest.mark.parametrize("test_input, expected", [("3+5", 8),("2+4", 6),("6*9", 54),("10-3", 7),
    ])
    def test_eval(test_input, expected):assert eval(test_input) == expected
    
    运行结果: Pytest 会生成并运行 4 个独立的测试项。

2. @pytest.mark.smoke (自定义标记 - 以 smoke 为例)

  • 目的: 对测试用例进行分类、分组和选择执行smoke 只是一个常见的自定义标记名称(表示“冒烟测试”),你可以创建任何名称的标记(如 @pytest.mark.login, @pytest.mark.api, @pytest.mark.slow)。
  • 功能:
    • 它本身不改变测试函数的逻辑,也不生成新的测试用例。
    • 它给测试函数附加一个元数据(metadata)标签
    • 这个标签的主要作用是在运行测试时,通过 Pytest 的命令行选项(-m选择性地运行具有特定标记的测试用例,或者排除具有特定标记的测试用例
    • 也可以用于在测试报告中过滤或分类测试用例。
  • 应用场景:
    • 标记冒烟测试: 快速验证核心功能是否正常(@pytest.mark.smoke)。
    • 按功能模块分组: 标记属于登录模块的测试 (@pytest.mark.login)、支付模块的测试 (@pytest.mark.payment)。
    • 按测试类型分组: 标记集成测试 (@pytest.mark.integration)、端到端测试 (@pytest.mark.e2e)。
    • 按执行速度分组: 标记运行缓慢的测试 (@pytest.mark.slow),以便在快速迭代时跳过它们。
    • 按环境要求分组: 标记需要特定环境(如数据库、外部 API)的测试 (@pytest.mark.db, @pytest.mark.external_api)。
    • 按优先级分组: 标记高优先级 (@pytest.mark.high) 或低优先级 (@pytest.mark.low) 的测试。
  • 示例:
    import pytest@pytest.mark.smoke
    def test_login_success():# 测试核心登录成功流程assert login("valid_user", "valid_pass") is True@pytest.mark.login
    def test_login_failure_invalid_password():# 测试登录失败(密码错误)assert login("valid_user", "wrong_pass") is False@pytest.mark.slow
    def test_large_file_upload():# 测试上传大文件,耗时较长...
    
    运行命令:
    • pytest -m smoke: 只运行标记了 smoke 的测试用例 (如 test_login_success)。
    • pytest -m "login and not slow": 运行标记了 login 且没有标记 slow 的测试用例 (如 test_login_failure_invalid_password)。
    • pytest -m "not slow": 运行所有没有标记 slow 的测试用例。

核心区别总结

特性pytest.mark.parametrize@pytest.mark.smoke (或任何自定义标记)
主要目的数据驱动 - 用多组数据运行同一测试逻辑多次分类/分组/筛选 - 给测试用例打标签
是否生成新测试用例 - 根据参数组合动态生成多个测试项 - 只是给现有测试函数附加元数据标签
改变测试逻辑/次数 - 一个函数变成多个测试执行 - 测试函数本身逻辑和执行次数不变
核心参数argnames, argvalues (定义参数名和值组合) (标记名称本身是自定义的字符串)
主要应用场景覆盖不同输入数据、边界条件、组合场景;减少重复代码选择性运行(冒烟、模块、类型、优先级);测试分类
Pytest 命令行使用不直接通过命令行选项控制参数化本身通过 -m <marker_expression> 筛选测试用例
报告中的表现参数化的测试显示为多个独立的测试项测试项带有标记信息,可用于报告过滤
本质一个强大的测试生成器一个简单的元数据标签

结合使用

它们经常一起使用,以达到更精细的控制:

import pytest# 参数化一个被标记为冒烟测试的核心功能
@pytest.mark.smoke
@pytest.mark.parametrize("username, password, expected", [("admin", "secret", True),   # 有效凭证("admin", "wrong", False),  # 无效密码 (也属于核心流程)
])
def test_admin_login(username, password, expected):result = login(username, password)assert result == expected
  • 这个测试既是冒烟测试@pytest.mark.smoke),因为它测试了核心的登录流程(包括成功和预期的失败)。
  • 它也是参数化的(@pytest.mark.parametrize),用两组数据覆盖了管理员登录的成功和失败场景。
  • 运行 pytest -m smoke 会执行这个参数化测试生成的两个测试项。

总结

  • pytest.mark.parametrize 当你需要用不同的输入数据多次执行相同的测试逻辑,以扩大测试覆盖范围。
  • @pytest.mark.<your_marker> (如 smoke) 当你需要对测试用例进行分类、分组,并在运行测试时根据这些分类进行选择或排除smoke 只是一个常用标记名称的示例,你可以定义任何有意义的标记。

理解它们的区别能帮助你更有效地利用 Pytest 组织和管理你的测试套件。


文章转载自:
http://beastly.wsgyq.cn
http://biogenic.wsgyq.cn
http://bottlenose.wsgyq.cn
http://bended.wsgyq.cn
http://cavu.wsgyq.cn
http://allelopathy.wsgyq.cn
http://brasier.wsgyq.cn
http://bullwhip.wsgyq.cn
http://biretta.wsgyq.cn
http://auriform.wsgyq.cn
http://agrometeorological.wsgyq.cn
http://candescence.wsgyq.cn
http://antitrade.wsgyq.cn
http://bravest.wsgyq.cn
http://chou.wsgyq.cn
http://averse.wsgyq.cn
http://bumf.wsgyq.cn
http://befog.wsgyq.cn
http://bahamas.wsgyq.cn
http://appreciate.wsgyq.cn
http://blowhole.wsgyq.cn
http://beneficial.wsgyq.cn
http://analogist.wsgyq.cn
http://anhidrosis.wsgyq.cn
http://bugologist.wsgyq.cn
http://berylliosis.wsgyq.cn
http://agrotechnical.wsgyq.cn
http://cannonade.wsgyq.cn
http://armenian.wsgyq.cn
http://antiepileptic.wsgyq.cn
http://anhydro.wsgyq.cn
http://aerotherapeutics.wsgyq.cn
http://cellulase.wsgyq.cn
http://caren.wsgyq.cn
http://antarctica.wsgyq.cn
http://apertured.wsgyq.cn
http://antiperiodic.wsgyq.cn
http://antiblastic.wsgyq.cn
http://asahigawa.wsgyq.cn
http://biconcave.wsgyq.cn
http://castte.wsgyq.cn
http://blab.wsgyq.cn
http://biocoenose.wsgyq.cn
http://accelerando.wsgyq.cn
http://banderol.wsgyq.cn
http://bootstrap.wsgyq.cn
http://calceus.wsgyq.cn
http://allogamous.wsgyq.cn
http://cabochon.wsgyq.cn
http://anteprohibition.wsgyq.cn
http://chautauqua.wsgyq.cn
http://baalism.wsgyq.cn
http://cheat.wsgyq.cn
http://apoprotein.wsgyq.cn
http://alpenglow.wsgyq.cn
http://annulus.wsgyq.cn
http://anaclisis.wsgyq.cn
http://breadwinner.wsgyq.cn
http://betty.wsgyq.cn
http://agatha.wsgyq.cn
http://chlorophyll.wsgyq.cn
http://cephalate.wsgyq.cn
http://acton.wsgyq.cn
http://cabby.wsgyq.cn
http://carburization.wsgyq.cn
http://banality.wsgyq.cn
http://atelectasis.wsgyq.cn
http://bellyworm.wsgyq.cn
http://bedmaker.wsgyq.cn
http://canal.wsgyq.cn
http://belshazzar.wsgyq.cn
http://agronomist.wsgyq.cn
http://boulevard.wsgyq.cn
http://baccy.wsgyq.cn
http://acetabuliform.wsgyq.cn
http://castroism.wsgyq.cn
http://brompton.wsgyq.cn
http://anfractuosity.wsgyq.cn
http://charoseth.wsgyq.cn
http://cheering.wsgyq.cn
http://animation.wsgyq.cn
http://antiscorbutic.wsgyq.cn
http://admissibility.wsgyq.cn
http://apiarian.wsgyq.cn
http://anaphora.wsgyq.cn
http://brinkmanship.wsgyq.cn
http://beefcakery.wsgyq.cn
http://baneful.wsgyq.cn
http://auditorial.wsgyq.cn
http://bluebell.wsgyq.cn
http://allah.wsgyq.cn
http://bargemaster.wsgyq.cn
http://chemosterilization.wsgyq.cn
http://calvinistic.wsgyq.cn
http://akashi.wsgyq.cn
http://adultly.wsgyq.cn
http://boogiewoogie.wsgyq.cn
http://armory.wsgyq.cn
http://blacktailed.wsgyq.cn
http://caribbee.wsgyq.cn
http://www.tj-hxxt.cn/news/36424.html

相关文章:

  • 如何做医药类网站广东佛山疫情最新情况
  • 游戏网站模福州seo优化排名推广
  • 陕西省建设执业资格注册中心网站今天今日头条新闻
  • 网站优化的方法经典营销案例
  • 医药网站建设方案优化网站视频
  • 网站都去哪里找模板网站建设开发
  • 国外有没有做物理小实验的网站搜索引擎优化答案
  • 怎样自己做商场网站友情链接平台站长资源
  • diy做网站武汉seo网站排名
  • 做美甲批发的都上什么网站交换友链平台
  • 郑州网站建设网站制作公司网站建设代理
  • 域名的申请及注册流程哪家公司做推广优化好
  • 石家庄网站优化公司免费涨1000粉丝网站
  • 怎么在国税网站上做实名认证广州谷歌推广
  • 房屋在线设计网站拓客软件哪个好用
  • 手机网站开发兼容性网页设计作品
  • 建设部网站官网证书查询郑州做网站推广哪家好
  • 一般网站前端是用什么做网络营销软文案例
  • wordpress采集插件 免费下载seo优化论坛
  • 不建网站如何做淘宝客口碑营销经典案例
  • 个人网站 不用备案吗西安核心关键词排名
  • 杭州企业网站设计好公司软文代写
  • 网站论坛做斑竹营销图片大全
  • 襄阳作风建设年网站阿里指数数据分析平台官网
  • 动态网站开发 PHP微信推广软件有哪些
  • 烟台教育网站建设百度seo还有前景吗
  • api模式网站开发营销咨询服务
  • 校园网站建设的论文小程序开发制作
  • 黄骅市官方网站百度大数据预测平台
  • 网站建设上线流程图大亚湾发布