【pytest】一、pytest的3种运行方式,运行指定测试用例,跳过测试用例

一、pytest测试用例的3种运行方式 

1.1 : 主函数模式

         1)运行所有:pytest.main()

if __name__ == '__main__':
    pytest.main()

         2)运行指定模块

#运行指定模块
pytest.main(['-vs','test_0617.py'])

        3)运行指定目录

if __name__ == '__main__':
    #运行指定目录
    pytest.main(['-vs','./testcase'])

        4)通过nodeid指定测试用例执行:nodeid由模块名,分隔符,类名,方法名,函数名组成。

if __name__ == '__main__':
    # #运行指定函数
    # pytest.main(['-vs','./testcase/test_0616.py::test_04_func'])

    #运行指定方法(用例)--需要加类名
    pytest.main(['-vs','./testcase/test_0616.py::TestLogin::test_02'])

1.2:命令行模式 

        1)运行所有:pytest

        2)运行指定模块:pytest -vs test_0616.py

        3)运行指定目录:pytest -vs ./api_testcase

        4)通过nodeID运行指定的测试函数:

                pytest -vs ./testcase/test_0616.py::test_04_func

                pytest -vs ./testcase/test_0616.py::TestLogin::test_04_func

1.3:通过配置文件pytest.ini来改变以及执行用例 

  如果配置了pytest.ini,则不管是命令行模式还是主函数模式,都会读取pytest.ini配置文件来执行;

-vs等具体参数详解,见以下链接:

 【pytest】pytest之全局配置文件pytest.ini,及命令执行参数详解_福多多的福的博客-CSDN博客_pytest 参数

二、pytest,默认的测试用例的规则以及基础应用

  1. 模块名(.py文件)必须以test_开头或者_test结尾
  2. 测试类必须以Test_开头,并且不能有init方法
  3. 测试方法必须以test_开头

三、pytest跳过测试用例

  • 无条件跳过:skip
@pytest.mark.skip(reason="无理由跳过")
  • 有条件跳过,满足特定条件后跳过该用例:skipif 
@pytest.mark.skipif(age>60,reason="年龄大于60岁者跳过")

四、单元测试框架简介

(1)什么是单元测试框架?

单元测试是指在软件开发当中,针对软件的最小单位(即:函数、方法)进行正确性的检查测试。

(2)单元测试框架有哪些?

java:junit和testng(主流)

python:unittest和pytest(主流)

(3)单元测试框架主要做什么?

  1. 测试发现:按照规则,从多个文件里面去发现测试用例并加载测试用例
  2. 测试执行:按照一定的顺序和规则去执行测试用例,并生成结果
  3. 测试判断:通过断言判断预期结果和实际结果的差异
  4. 测试报告:统计测试进度、耗时、通过率,生成测试报告

五、单元测试框架和自动化测试框架有什么关系?

(1)什么是自动化测试框架:pytest只是其中一部分

(2)作用

  1. 提高测试效率,降低维护成本
  2. 减少人工干预,提高测试的准确性,增加代码的重用性
  3. 核心思想是让不懂代码的人也能够通过这个框架去实现自动化测试

(3)pytest单元测试框架和自动化测试框架的关系

  • 单元测试框架:只是自动化测试框架中的组成部分之一
  • pom设计模式:只是自动化测试框架中的组成部分之一
  • 数据驱动
  • 关键字驱动
  • 全局配置文件的封装
  • 日志监控
  • selenium,requests二次封装
  • 断言
  • 报告邮件
  • 更多。。。

六、pytest简介

  1. pytest是一个非常成熟的python的单元测试框架,比unittest更灵活,更易上手
  2. pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化
  3. pytest可以实现测试用例的跳过以及reruns失败用例重试
  4. pytest可以和allure生成非常美观的测试报告
  5. pytest可以和Jenkins持续集成
  6. pytest有很多非常强大的插件,并且这些插件能够实现很多的使用操作:
    • pytest
    • pytest-html    (生成html格式的自动化测试报告)
    • pytest-xdist    (测试用例的分布式执行,多线程,多CPU分发)    
    • pytest-ordering    (用于改变测试用例的执行顺序)
    • pytest-rerunfailures    (用例失败后重跑)
    • allure-pytest    (用于生成美观的测试报告)
    • pytest-base-url     (配置基础路径,sit/uat/prod等环境配置)
    • allure-pytest      (生成allure自动化测试报告)

安装插件的方法:

方法一:pip install -U pytest

方法二:pycharm-Settings-Project Interpreter

方法三:通过pip install -r requirements.txt(一次性安装)

  1. 新建file--requirements.txt,将需安装的插件放到txt文档中(去掉中文注释),保存
  2. 在terminal终端,输入命令:pip install -r requirements.txt 

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
pytest中,有几方法可以跳过测试用例。一方法是使用pytest.mark.skip装饰器,在需要跳过测试用例上添加该装饰器,同时传入reason参数来标注跳过的原因。该方法可以基于某个条件来决定是否跳过测试用例,只需将条件作为参数传入装饰器中的condition参数即可。如果条件为True,测试用例将被跳过,如果条件为False,测试用例将继续执行。 另一方法是使用pytest.skip函数,在测试用例内部调用该函数可以直接跳过当前用例。可以在函数调用时添加reason参数来指定跳过的原因。 总结起来,pytest跳过测试用例的方法有两:使用pytest.mark.skip装饰器和使用pytest.skip函数。这两方法都可以根据条件或原因来决定是否跳过测试用例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【自动化测试】Pytest框架 —— 跳过测试和失败重试](https://blog.csdn.net/jiangjunsss/article/details/130642266)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [pytest自动化跳过不想执行的测试用例](https://blog.csdn.net/weixin_57805858/article/details/131095478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值