conftest.py import pytest @pytest.fixture(scope="class") def class_auto(): print("") print("class-begin") yield print("class-end") test_autouse.py import pytest @pytest.mark.usefixtures("class_auto") class…
pytest框架规则 测试文件以test_开头或者以_test结尾 测试类以Test开头,并且不能带有init方法 测试函数以test_开头 断言使用assert pytest框架运行用例 运行单个文件 运行多个文件 运行整个目录 import pytest if __name__=="__main__": # 运行单个文件,添加对应文件的路径,使用相对路径 pytest.main(['../test_requests/test_assert.py']) # ../ run_case目…
        接口自动化-pytest中的fixture - scope                介绍 fixture文章中介绍的比较少,同学们可以去搜索下fixture的详解或者去看看源码 在这之前博主都是用的unittest单元测试框架去写的接口自动化,感觉也挺好用,但是得知pytest的fixture以及allure后,则出现了真香警告!! 先说fixture源码中包含了几大核心,我摘出了源码中的一部分 def fixture( fixture_function: Optional…
一.fixture里面有个参数scope,通过scope可以控制fixture的作用范围,根据作用范围大小划分:session>module>class>function,具体作用范围如下: 1.function 函数或者方法级别都会被调用 2.class 类级别调用一次 3.module 模块级别调用一次 4.session 是个多文件调用一次(可以跨 .py 文件调用,每个.py文件就是 module) 例如整个模块有多条测试用例,需要在全部用例执行之前打开浏览器,全部执行完之后去关…
本项目实现接口自动化的技术选型:Python+Requests+Pytest+YAML+Allure ,主要是针对之前开发的一个接口项目来进行学习,通过 Python+Requests 来发送和处理HTTP协议的请求接口,使用 Pytest 作为测试执行器,使用 YAML 来管理测试数据,使用 Allure 来生成测试报告. 接口项目开发学习: 使用Flask开发简单接口(1)--GET请求接口 使用Flask开发简单接口(2)--POST请求接口 使用Flask开发简单接口(3)--引入MyS…
一.conftest.py作用 可以理解成存放fixture的配置文件 二.conftest.py配置fixture注意事项 pytest会默认读取conftest.py里面的所有fixture conftest.py 文件名称是固定的,不能改动 conftest.py只对同一个package下的所有测试用例生效 不同目录可以有自己的conftest.py,一个项目中可以有多个conftest.py 测试用例文件中不需要手动import conftest.py,pytest会自动查找 三.实例场…
在PC端登录公司的后台管理系统或在手机上登录某个APP时,经常会发现登录成功后,返回参数中会包含token,它的值为一段较长的字符串,而后续去请求的请求头中都需要带上这个token作为参数,否则就提示需要先登录. 这其实就是状态或会话保持的第三种方式token. 一. 什么是token token 由服务端产生,是客户端用于请求的身份令牌.第一次登录成功时,服务端会生成一个包含用户信息的加密字符串token,返回给客户端并保存在本地,后续客户端只需要带上token进行请求即可,无需带上用户名密码…
上图是试验的目录结构 conftest.py:存放pytest fixture的文件 import uuid import pytest @pytest.fixture(scope="module") def test_module(): return "module"+str(uuid.uuid4()) @pytest.fixture(scope="class") def test_class(): return "class&quo…
前言 我们都知道在自动化测试中都会用到前后置,pytest 相比 unittest 无论是前后置还是插件等都灵活了许多,还能自己用 fixture 来定义.(甩 unttest 半条街?) 首先了解一下,用例运行前后置级别如下: 模块级:全局的,整个模块开只运行一次,优先于测试用例. 类级别:定义在类里面,只针对此类生效.类似unittest的cls装饰器 函数级:只对函数生效,类下面的函数不生效. 方法级:定义在类里面,每个用例都执行一次 一.setup.teardown级别 1.模块级别:s…
tep的设计理念是让人人都可以用Python写自动化,本文就来介绍如何用tep完成增删改查接口自动化. 环境变量 编辑fixtures/fixture_admin.py: "qa": { "domain": "https://qa.com", }, 修改qa环境的domain. 登录 因为非登录接口需要从登录接口拿token,放在请求参数中,所以先在fixtures/fixture_admin.py中实现登录,修改url和json: respon…