pytest学习笔记(上)

前言:该笔记是我在B站上看视频做的一些笔记,自用和供大家在学习pytest时参考;由于内容比较多,分为上下两个部分。

一、pytest简介

特点:

  1. pytest是-一个非常 成熟的python的单元框架,比uittest更灵活,容易上手。

  2 pytest可以和selenium,requests , appium结合实现web自动化,接口自动化, ap自动化。

  3. pytest可以实现测试用例的跳过以及reruns失败用例重试。

  4 pytest可以和allure生成非常美观的测试报告。

  5. pytest可以和Jenkins持续集成。

  6. pytest有很多非常强大的插件,并且这些插件能够实现很多的实用的操作。

pytest基本包介绍

  pytest-html ( 生成html格式的自动化测试报告)

  pytest-xdist测试用例分布式执行。 多CPU分发。

  pytest-ordering用于改变测试用例的执行顺序

  pytest-rerunfailures用例失败后重跑

  allure-pytest用于生成美观的测试报告。

一次性安装多个插件:

  在项目文件中,新建一个txt文件,文件名为:requirements. txt,把需要安装的插件名称放到requirements. txt中,通过pip install -r requirements .txt命令进行安装。

 

检查一个插件是否安装成功:

 

输入命令:插件名 --version;如:pytest --version 若出现版本,就是安装成功

 

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

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

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

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

、pytest测试用例的运行方式

1.主函数模式

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

(2)指定模块: ipytest . main ( [ '-vs ' ,' test login.py' ] )

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

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

  pytest. main('-vs",'/interface_ testcase/test _interface. p.:test_ 04_ func'])

  pytest main(["-vs','/interface_ _testcase/test_ _interface py:: Testlnterfac.:test 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

    pytest -vs ./interface_ _testcase/test_ _interface py:: Testlnterfac::test 03_ zhiliao

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

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

  1.位置:一般放在项目的根目录

  2编码:必须是ANSI ,可以使用notpad++修改编码格式。

  3.作用:改变pytest默认的行为。

  4.运行的规则;不管是主函数的模式运行,命令行模式运行,都会去读取这个配置文件。

[pytest]

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

testpaths = ./testcase  #测试用例的路径

python_ files = test_ _*. py #模块名的规则

python_ classes = Test* #类名的规则

python_ functions = test #方法名的规则

参数详解:

-S :表示输出调试信息,包括print打印的信息

-V :显示更详细的信息

-VS :这两个参数一起用

-n:代表多线程运行,支持多线程或者分布式运行测试用例

如: pytest -VS ./testcase/test _login.py -n 2

--reruns NUM :失败用例重跑

失败的case再跑几次命令,--reruns=2;命令行输入:--reruns 2

-x :表示只要要一个用例报错,那么测试停止

--maxfail=2出现两个用例失败就停止

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

如: pytest -VS ./testcase -k “ao'

改变case执行顺序,用@pytest.mark.run(order=2)

--html ./reportreport. html :生成htm的测试报告

四、pytest执行测试用例的顺序是怎样的呢?

unittest:ascll的大小来绝对的执行的顺序

pytest:默认从上到下

改变默认的执行顺序:使用mark标记。

@pytest . mark. run (order=2)

注:需要安装order插件

 

 、如何分组执行(冒烟,分模块执行,分接口和web执行)

smoke :冒烟用例,分布在各个模块里面

pytest -VS -m "smoke'

pytest -VS -m "smoke or usermanage or 其他组名"

 

 

 

 

posted @ 2022-09-09 16:21  疯狂学习中  阅读(92)  评论(0编辑  收藏  举报