当前位置:首页 > 技术知识 > 正文内容

python自动化-pytest测试框架_pytest自动化框架目录

maynowei9个月前 (08-26)技术知识78

pip介绍

pip是Python 中的标准库管理器。它允许你安装和管理不属于 Python标准库的其它软件包

Python3的3.4版本以及Python2的2.7.9 版本开始,pip 被直接包括在Python 的安装包内

pypi 托管了大量非常流行的库 (www.pypi.org)

pip命令

  • pip help 帮助
  • pip install 安装
  • pip install -U 包名 升级包
  • pip uninstall 卸载
  • pip list 列出所有的包文件
  • pip download下载包
  • pip search requests 搜索包

python虚拟环境

输入:python -m tutorial-env

进入相关目录:cd tutorial-env

立即生效 source bin/activate,虚拟环境就生效

pyChram基于本地python环境生成对应python虚拟环境

pytest介绍

  • 一个很成熟的全功能的python测试框架
  • 简单灵活,容易上手;
  • 支持参数化;
  • 测试用例的skip和xfail,自动失败重试等处理
  • 支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);
  • pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-allure(完美html测试报告生成),pytest-xdist(多CPU分发)等;
  • 可以很好的和jenkins集成;

pytest测试用例的识别

  • test开头如: test_*.py
  • test结尾如:*_test.py
  • Test*类包含的所有test_*的方法(测试类不能带有init 方法)
  • 不在class中的所有的test_*方法

安装命令:pip install pytest

创建第一个case

使用-v 插件详细的执行日志 pytest -v

pycharm配置pytest环境

安装完成后使用的为pytest的解释器

参数化:ab为需要参数化的变量值,()内为需要赋予的值

pytest的装饰器,用于参数传递

pytest的数据参数化

  • @pytest.mark.parametrize(argnames,argvalues)
  • argnames:要参数化的变量,string (逗号分割),list, tuple
  • argvalues:参数化的值,list, listituple]

使用string

使用list ,tuple

pytest-yaml 参数化

安装pyyaml包

新建测试yaml文件

打开yaml的文件

相关文章

IT博物馆之Objective-C诞生(micro博物馆)

1984年,Objective-C诞生。设计者:布莱德·考克斯(Brad Cox)、汤姆·洛夫(Tom Love)Objective-C是面向对象的通用、高级编程语言。它扩展了标准的 ANSI C,将...

真来了,iOS 16.6 beta 利用,隐藏 Dock 栏

昨天提到!iOS 16.5 kfd 漏洞可以隐藏 Dock 栏消息,现在已经确定 iOS 16.6 beta 内测也是支持使用 kfd 漏洞,当然!也是支持隐藏 Dock 栏,主要验证该系统是否可用。...

Android让视图折叠(安卓叠加视图设置)

Android UI Libs之ExpandableLayout1. 说明ExpandableLayout,顾名思义,可扩展的布局,是一个可以帮助我们实现折叠功能的第三方库,折叠时,只显示头部,打开时...

分析 Rust 程序的火焰图(rust火吗)

分析 Rust 程序的火焰图(Flame Graph)是定位性能瓶颈的核心手段,其核心是通过可视化的函数调用栈和时间分布,找到 CPU 耗时、内存分配、锁竞争等热点。以下是详细的分析方法和步骤,结合...

Go语言进阶:时间轮(golang时间轮)

时间轮概念时间轮(Timing Wheel)是一种高效的定时任务调度数据结构,特别适合处理大量定时任务。它通过一个循环数组(轮盘)和多个槽位(buckets)来组织定时任务,每个槽位代表一个时间间隔。...

Qt QWaitCondition 的正确使用方法

简单用法QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往...