pytest架构是什么? 首先,来看一个 pytest 的例子: def test_a(): print(123) collected 1 item test_a.py . [100%] ============ 1 passed in 0.02s =========
pytest的命名规则: .py文件必须以test_开头,或者以test_结尾 测试类必须以Test开头,并且类中不能包含init方法 测试方法必须以test_开头 断言必须使用assert pytest 运行出现collected 0 items 如果出现collected 0 items的现象,首先检查自己的命名是否规范
fixture参数列表 @pytest.fixture(scope="function", params=None, autouse=False, ids=None, name=None) def test(): print("fixture初始化的参数列表") 参数列表 scope:可以理解成fixture的作用域,默认:function,还有class、module、package、session四个【常用】 autouse
pytest问题点: 1、test_try.py:None (test_try.py) import file mismatch: imported module 'demo.test_try' has this __file__ attribute: E:\software\appium\lej\demo\test_try.py which is not the same as the test file we want to collect: E:\soft
目录Requests库介绍Requests库安装Requests库使用实际案例添加日志功能封装requests库使用pytest装饰器实现参数化通过读取Json文件实现参数化通过读取Yaml文件实现参数化通过读取Excel文件实现参数化封装文件解析方法测试报告Pytest-html报告Allure报告 关于Pytest和Allure如何使
1 pytest.register_assert_rewrite-断言重写 pytest是使用普通的断言语句以及断言失败时表达式的详细内省,仅重写测试模块本身以及作为插件一部分的任何模块,任何其他导入的模块都不会被重写,并且会发生正常的断言行为。 换言之:如果你在其他模块中有断言,你需要启用断言重写,你需要pyt
2 编写测试函数 2.1 使用 assert 声明 pytest 允许在 assert 关键字后面添加任何表达式。如果表达式的值通过 bool 转换后等于 False,则意味着测试失败。 pytest 有一个重要功能是可以重写 assert 关键字,pytest 会截断对原生 assert 的调用,替换为 pytest 定义的 assert,从而提供更多
pytest.ini: [pytest] log_cli=True addopts= -s conftest.py: import pytest # 读取pytest.ini 的配置信息 返回给测试用例 @pytest.fixture() def getini(pytestconfig): return [pytestconfig.getini('log_cli'), pytestconfig.getini('addopts')] test_geti
1 Pytest的运行 1.1 测试搜索 运行pytest时可以指定目录和文件。如果不指定,pytest会搜索当前目录及其子目录中以test_开头或以_test结尾的测试函数。【pytest搜索测试文件和测试用例的过程称为测试搜索】 只要你遵守pytest的命名规则,pytest就能自动搜索所有待执行的测试用例。 测
总结 pytest.ini 修改用例的命名规则 配置日志格式,比代码配置更方便 指定执行目录 排除搜索目录 添加标签,防止运行过程报警告错误 添加默认参数 注意:windows下要去掉所有的中文,不然会出现编码问题 报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaa in
使用fixture和conftest文件可以让数据共享 Fixture 在自动化中的应用 - 数据共享 场景: 你与其他测试⼯程师合作⼀起开发时,公共的模块要在不同⽂件中,要在⼤家都访问到的地⽅。 解决: 使⽤ conftest.py 这个⽂件进⾏数据共享,并且他可以放在不同位置起着不同的范围共享作⽤。
fixture 使用介绍: @pytest.fixture() #加fixture装饰器,可以让这个方法后面被调用 def login(): print("\nlogin.....\n") def test_search(): print("search") def test_order(login): #只需要在括号内填入加了fixture装饰器的方法,就可以实现在这个测试用例前
day1 pytest插件:可以实现测试用例的跳过和重新执行失败用例 pytest-html:生成HTML格式的自动化测试报告 pytest-xdist:测试用例分布式执行,多cpu分发 pytest-ordering:用于改变测试用例的执行顺序 pytest-rerunfailures:用于失败用例重跑 allure-pytest:用于生成测试报告 安装:pip insta
实例: def test_answer(): assert inc(4) == 5,"error"def test_str(): assert "abc" in "abcdd"def test_sys(): assert 'linux' in sys.platform,"no linux!"
Pytest 是什么? pytest 能够支持简单的单元测试和复杂的功能测试; pytest 可以结合 Requests 实现接口测试; 结合 Selenium、Appium 实现自动化功能测试; 使用 pytest 结合 Allure 集成到 Jenkins 中可以实现持续集成。 pytest 支持 315 种以上的插件; 为什么要选择 Pytest
接口自动化的核心就是request+pytest,request库用作发送HTTP请求,而pytest就是对发送的数据进行参数化 以上是做参数化前要准备的东西 接下来我们看看代码上具体如何实现 #封装一个请求接口,形参分别为接口所需要传递参数。 def addProject(self, name="测试2
一、skip介绍及运用 在我们自动化测试过程中,经常会遇到功能阻塞、功能未实现、环境等一系列外部因素问题导致的一些用例执行不了,这时我们就可以用到跳过skip用例,如果我们注释掉或删除掉,后面还要进行恢复操作。 1、skip跳过成功,标识为 ============================= 2 skipped in
接上一篇,本章讲pytest的fixture 很多测试框架里的setup、teardown可以实现在执行用例前或结束后加入一些操作,但这种都是针对整个脚本全局生效的。如果有以下场景:用例 1 需要先登录,用例 2 不需要登录,用例 3 需要先登录。很显然无法用 setup 和 teardown 来实现。fixture可以让我们
""" 实现思路: 1.使用excel文件管理接口自动化测试用例 ----涉及技术点:excel文件内容的读与写; 2.使用pytest.mark.parametrize 将excel中读到的数据参数化后,传入接口请求中 3.调用接口把接口运行后的结果,一次性写入到excel列表中 4.jenkins上集成接口自动化用例并生成allure报告 ""
续上一篇,本章节讲参数化以及fixture 在测试过程中,我们经常会遇到一个接口或者业务过程需要重复不同传参的情况,pytest也是可以使用 装饰器@pytest.mark.parametrize来满足这种需求,例子如下 import pytestdef add_demo(a, b): return a+b@pytest.mark.smokeclass TestDemo:
接上一篇,继续延伸pytest框架 打标签 在测试中,我们对用例做一些标识,用来做冒烟测试,优先级最高,次级,再次级的标记,pytest支持打标签的方式来对用例进行分级管理,确保运行的是对应等级的用例。使用方式是在对应的用例上添加装饰器 @pytest.mark.xxx ,同一个用例支持添加多个标签并且支持
一、安装python1.python安装Python3.9.5下载地址:https://www.python.org/ftp/python/3.9.5/python-3.9.5-amd64.exe双击python-3.9.5-amd64.exe,选择自定义安装/快速安装即可安装完成后,在”开始“菜单栏中点击所有程序,可以找到python文件下的IDLE工具,打开即可使用 2.查看python版本
import jsonimport pytestdef get_data_json(): ''' @return: 返回列表数据 ''' with open("test.json") as f: lst_data = [] my_data = json.load(f) lst_json = my_data['data'] for
一、前言 cmd or pycharm的terminal输入命令:pip install -U pytest,安装pytest的同时会安装pytest-rerunfailures。 二、rerun所有失败的用例 1、使用--reruns命令行选项,并指定要运行测试的最大次数:pytest --reruns 5 -s 2、添加rerun的delay,使用--reruns-delay命令行
一、前言 平常在做功能测试时,经常会遇到某个模块不稳定,偶现一些bug,或者领导临时安排帮忙复现线上比较难出现的bug,我们一般会反复执行多次,最终复现问题 自动化运行用例时,也会偶现bug,可以针对某个用例,或者针对某个模块的用例重复执行多次 安装插件:cmd or pycharm的terminal输入命令