• 自动化测试框架(pytest)&附学习视频


    另外一篇文章基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

    pytest

    学习视频

    请添加图片描述
    请添加图片描述

    基础语法使用

    1.pytest找寻测试语句

    1. 从根目录下找test_.py或_test.py的文件
    2. 从这些文件下,a-找到Test类下的test为前缀的函数,b-或文件下直接test为前缀的函数
    3. 注意Test类不能写__init__构造函数

    2.使用pytest. --找到根目录cmd进入E:\LIN\baiyu_auto>,输入pytest,执行测试,那么此时执行的时baiyu_auto目录下所有的测试用例
    4. pytest -s 将每个用例的print语句打印,用于调试
    5. pytest -sv更详细的执行信息,包括每个测试类、测试函数的名字
    6. pytest case --html=report.html --self-contained-html (case表示E:\LIN\baiyu_auto\case更细目录)-
    安装了 pytest-html 插件,这个插件就是用来产生测试报告的,不能加-s

    pytest.mark.parametrize()参数化

    请添加图片描述

    allure生成报告

    链接:https://pan.baidu.com/s/1OYyn5v_RINqm6R_z3cSv5g
    提取码:ruhj
    配置环境变量,将E:\LINYANG\Anaconda3\allure-2.15.0\bin加到path中

    import pytest
    import os
    #1.指定某一个py
    pytest.main(['-s','test_example.py','test_example2.py','--alluredir','./temp'])
    os.system('allure generate ./temp -o ./report --clean') #os.system()就相当于在命令行输入
    
    • 1
    • 2
    • 3
    • 4
    • 5

    初始化清除

    (模块级别,类级别,方法级别,目录级别)
    如果没做好,导致某测试用例与A批能跑,与B批不能。
    登录测试用例中有数据,pytest自动运行时,导致登录测试用例中数据 串到 用户管理测试用例,信息不准确

    模块级别 的初始化、清除 分别 在整个模块的测试用例 执行前后执行,并且 只会执行1次 。
    请添加图片描述
    类级别 的初始化、清除 分别 在整个类的测试用例 执行前后执行,并且 只会执行1次
    请添加图片描述
    方法级别 的初始化、清除 分别 在类的 每个测试方法 执行前后执行,并且== 每个用例分别执行1次==
    请添加图片描述请添加图片描述
    请添加图片描述

    执行pytest,测试用例

    请添加图片描述
    找到根目录,cmd进入E:\python_project\自动化学习\autotest_pytest>pytest ,输入pytest,执行测试,那么此时执行的是该目录下所有的测试用例,so,要分别测试

    1.命令行、terminal中执行pytest

    pytest -s 将每个用例的print语句打印,用于调试
    pytest -sv更详细的执行信息,包括每个测试类、测试函数的名字
    pytest -rA -v 测试结果的简单统计
    pytest case --html=report.html --self-contained-html (case表示E:\LIN\baiyu_auto\case更细目录)-
    安装了 pytest-html 插件,这个插件就是用来产生测试报告的,不能加-s,加了后,html就不显示print

    1. 指定文件名,块里面的函数或者类

    pytest case 执行case下所有测试用例
    pytest case\登录\test_错误登录1.py -s 只执行错误登录1.py的模块
    pytest cases\登录\test_错误登录.py::Test_错误密码 指定模块里面的类
    pytest cases\登录\test_错误登录.py::Test_错误密码::test_C001001 指定类里面的方法
    pytest cases1 cases2\登录 指定多个目录

    1. 根据名字

    pytest -k C001001 -s 可以是测试函数的名字,可以是类的名字,可以是模块文件名,可以是目录的名字
    大小写敏感的不一定要完整,只要能有部分匹配上就行
    pytest -k “not C001001” -s not 表示选择名字中不包含
    pytest -k “错 and 密码2” -s and 表示选择名字同时包含多个关键字
    pytest -k “错 or 密码2” -s 可以用 or 表示选择名字 包含指定关键字之一即可

    1. 根据标签
      冒烟测试时,测试的用例散落在各处,所以要将测试用例打上标签
      可以将方法def ,class ,.py 模块设置成标签
      请添加图片描述
      请添加图片描述

    2.使用py脚本管理

    请添加图片描述
    请添加图片描述

  • 相关阅读:
    【问题解决】Ubuntu 安装 SeisSol 依赖 easi 报错解决: undefined reference to `H5free_memory‘
    BBS第一天,项目开发流程,BBS项目功能分析,表设计,表字段的编写和数据库的迁移
    Javaweb 之 Filter(过滤器)快速入门,执行流程,使用细节
    2023-09-20力扣每日一题-水题
    【PPT技巧】如何将多张幻灯片打印在一张纸上?
    C 语言学习笔记(三):C 语言开发环境搭建
    Vue3简介
    【Java八股文总结】之SpringBoot
    Java 24 Design Pattern 之 状态模式
    2.3.13、head:显示文件开头的内容
  • 原文地址:https://blog.csdn.net/m0_46204224/article/details/119955274