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

1.pytest基础知识(默认的测试用例的规则以及基础应用)

一、pytest单元测试框架

1)什么是单元测试框架
单元测试是指再软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。
2)单元测试框架
java:junit和testing
python:unittest和pytest
3)单元测试框架主要做什么?
1.测试发现:从多个文件里面去找到我们测试用例
2.测试执行:按照一定的顺序和规则去执行。并生成脚本
3.测试判断:通过断言判断预期结果和实际结果的差异
4.测试报告:统计测试进行,耗时,通过率,生成测试报告

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

三、pytest简介
1.pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手
2.pytest可以和selenium,request,appium结合实现web自动化,接口自动化,app自动化
3.pytest可以实现测试用例的跳过以及reruns失败用例重试
4.pytest可以和allure生成非常美观的测试报告
5.pytest可以和Jenkins持续集成
6.pytest有很多非常强大的插件,并且这些插件能够实现很多实用的操作
       pytest-html(生成html格式的自动化测试报告)
        pytest-xdist(测试用例分布式执行,多CPU分发)
        pytest-ordering (用于改变测试用例的执行顺序)
        pytest-rerunfailures (用例失败后重跑)
        allure -pytest(用于生成美观的测试报告)
        pytest --version     (验证安装是否成功)

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

1.模块名必须以test_开头,或者_test结尾

2.测试类必须以Test开头,并且不能有init方法

3.测试方法必须以test开头

五、pytest测试用例的运行方式

1.主函数模式
1)运行所有:pytest.main()

2)指定模式:pytest.main(['-vs','test_login.py'])

3)指定目录:pytest.main(['-vs','./interface_testcase'])

4)通过nodeid指定用例运行:nodeid由模块名,分隔符 ,类名,方法名,函数名组成。
       pytest.main(['-vs','./interface_testcase/test_interface.py::test_04_func']) 
       //运行test_04_func函数

      pytest.main(['-vs','./interface_testcase/test_interface.py::TestInterface::test_03_zhiliao']) 

       //运行TestInterface类中的est_03_zhiliao方法


2.命令行模式

1)运行所有:pytest

2)指定模式:pytest -vs test_login.py

3)指定目录:pytest -vs ./interface_testcase

4)通过nodeid指定用例运行:nodeid由模块名,分隔符 ,类名,方法名,函数名组成。
       pytest -vs ./interface_testcase/test_interface.py::test_04_func
       //运行test_04_func函数

      pytest -vs ./interface_testcase/test_interface.py::TestInterface::test_03_zhiliao 

       //运行TestInterface类中的est_03_zhiliao方法



参数详解:
        -s:表示输出调试信息,包括print打印的信息
        -v:显示更详细的信息
        -vs:两个参数可以一起用(还可以再命令行里使用)

        -n:支持多线程或者分布式运行

        --reruns NUM:失败用例重跑

        -x:只要用一个用例报错,测试就停止

        --maxfail=2:出现两个用例报错,测试就停止

        -k:根据测试用例的部分字符串指定测试用例

                pytest -vs ./testcase -k "ao"  //只允许包含ao的用例

        --html ./report/report.html



 

3.通过读取pytest.ini配置文件运行

        pytest.ini这个文件它是pytest单元测试框架的核心配置文件

        1.位置:一般放在项目的根目录
        2.编码:必须是ANSI,可以使用notpad++改变
        3.作用:改变pytest默认的行为
        4.运行的规则:不管是主函数的模式运行,命令行模式运行,都会去读取这个配置。

        addopts = -vs                               #命令行的参数,用空格分隔

        testpaths = ./testcase                   #测试文件路径

        python_files = test_*py                 #模块名的规则

        python_classes = Test*                #类名的规则

        python_functions = test                #方法名的规则

 六、pytesr执行测试用例的顺序是怎样的呢?
pytest:默认从上到下
改变默认的执行顺序:使用mark标记
@pytest.mark.run(order=3)

七、如何分组执行(冒烟,分模块执行,分接口和web执行)
smoke:冒烟用例,分布在各个模块里面
@pytet.mark.smoke
配置文件中:
markers=
        smoke:冒烟用例
        usermanage:用户管理模块
        productmanage:商品管理模块

八、pytest跳过测试用例
1.无条件跳过
@pytest.mark.skip(reason="微微太漂亮")
2.有条件跳过
@pytest.mak.skipif(age>=18,reason="已成年")

九、生成报告


http://www.mrgr.cn/news/30035.html

相关文章:

  • opencv常用api
  • 【NLP优化】Ubuntu 20.04 下 源码安装 CasADi + Ipopt / acados
  • 华为私有接口类型hybrid
  • 在 .NET 6.0 中创建用于 CRUD 操作的 Web API
  • Mac保护电池健康,延长电池使用寿命的好方法
  • 明日周刊-第27期
  • windows11关闭自带杀毒软件
  • MapStruct 详细使用示例,详解教程
  • 如何在 Qt 的 QListWidget 中为某一行添加点击事件
  • Day04_JVM实战
  • leetcode:3232. 判断是否可以赢得数字游戏(python3解法)
  • 易基因:单细胞甲基化+转录组多组学分析揭示哺乳期母体低蛋白饮食对子代的跨代传递|项目文章
  • 【LangChain系列】实战案例3:深入LangChain源码,你不知道的WebResearchRetriever与RAG联合之力
  • 每天分享一个FPGA开源代码(4)- I2S
  • 线性电源调节到开关电源
  • I.MX6U裸机-C语言版LED灯实验
  • sql语句:查询几个相关字段(user表、role权限表,user_role关联表),查出当role_code 的固定值,在where条件中用in
  • LabVIEW提高开发效率技巧----采用并行任务提高性能
  • 我的AI工具箱Tauri版-FasterWhisper音频转文本
  • 我的AI工具箱Tauri版-FunAsr音频转文本
  • 当我们修复测试用例时,到底是修复的什么?
  • 胎牛血清厂家直销
  • AIoT应用开发:给板子装上‘嘴巴‘,实现音频播放
  • 英语六级-学习
  • 【数据结构】排序算法---快速排序
  • python中测试框架