Python3 异步编程实例篇本篇主要内容:启动一个线程启动多线程获取线程名字让线程按顺序执行给线程加上日志线程类的实现线程锁多线程使用全局变量下锁的重要性锁嵌套的问题使用队列来存储线程数据取得线程中的线果多线程与非多线程性能对比多线程与非多线程I/O操作线程池的使用一、用threading启动一个线程示例代码:#!/usr/bin/python3 import time from thread
转载 2024-03-18 21:08:51
44阅读
PlayWright简介 我是在知乎上看到这个项目的介绍的,比较好奇,就找资料看了一下,试着玩一玩。 Github地址:playwright-python 根据官方页面的介绍,PlayWright是一个“用于Chromium, Firefox 和WebKit浏览器(引擎?内核?)自动化的,提供统一API的python库”(翻译水平不行,大致是这么个意思)。 所以,PlayWright的优势在于-
转载 2024-10-08 21:52:02
68阅读
       最近复原了之前公司的一套测试框架,并根据我们业务组的实际情况,进行一些变动和调整,之前公司业务流程比较长,多了一个业务层,做了四层封装,我们这边暂时的需求业务线没有这么长,后续可以根据需求在模板层的基础上适当扩展一层,目前在CRM1.16的接口测试阶段实现并应用了此框架~      简介:框架采用三层封装,基础层和
转载 2024-03-25 23:05:48
42阅读
目录80节1.前置后置条件----测试夹具fixture2.conftest.py 文件3.重运行机制  1.测试夹具fixture背景:之前的测试代码中,并没有实现测试完成后,关闭浏览器操作的行为。这么多年测试经验的你,不难理解:打开浏览器、关闭浏览器,可以看做是前置条件和后置条件。那么在unittest中的setUp() 、tearDown()在这里还能不能用呢?答案是否定
转载 2024-07-07 21:18:51
243阅读
引入我们之前学习的都是测试用例的前置固件,也就是相当于“setup”。说到这,细心的你可能想到了,那有没有什么方式可以表示出“teardown”?这就是我们今天学习的yield和addfinalizer。yieldyield是一个关键字,它不是单独存在的,要写在fixtrue标记的固件中。吃个小荔枝:我们在声明的固件myfixture中加入yield关键字,在它下面写测试用例执行后想要运行的代码;
在本系列中,我们将深入探讨如何使用 pytest-asyncio 插件测试异步函数、编写异步 fixture,以及通过简单示例使用异步
原创 1月前
124阅读
前言pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例。方便我们在运行用例的时候加上--lf 和 --ff 参数,快速运行上一次失败的用例。--lf, --last-failed 只重新运行上次运行失败的用例(或如果没有失败的话会全部跑)--ff, --failed-first 运行所有测试,但首先运行上次运行失败的测试(这可能
原创 2021-04-27 16:11:26
2259阅读
添加命令行参数 addopts = -v --reruns 1 用例标签 markers = demo: 这是一个demo smoke: 这是冒烟测试 full: 这是全量测试 收集用例不扫描的目录 norecursedirs = data api lib common 用例目录 test_path ...
转载 2021-08-23 13:27:00
244阅读
2评论
一、关于pytest的简介 以前自己学习使用unittest测试框架的时候,在使用过程中,会遇到些疑惑。在查询资料解决问题的过程中,了解到了Python下的第三方单元测试框架:pytest。那么pytest有什么优点呢? 简单总结下: pytest 是一个非常成熟的全功能的Python测试框架 可以
原创 2021-04-23 17:10:20
631阅读
一.pytest的基本简介pytest 安装: pip3 install pytestpytest查看版本:pytest --version1. pytest是python的一个成熟的单元框架,比unitest更加灵活,容易上手;2. 它可以和selenum,requests,appium结合实现 web自动化,接口自动化,app自动化;3. pytest可以 实现测试用例的跳过以及reruns失
转载 2024-03-30 12:36:54
107阅读
目录1、conftest.py作用范围2、yield实现teardown3、yield+with的结合4、addfinalizer终结函数1、conftest.py作用范围conftest.py 文件名称是固定的,pytest 会自动识别该文件,可以理解成一个专门存放 fixture 的配置文件。一个工程下可以建多个 conftest.py 的文件,一般在工程根目录下设置的 conftest 文件
nvs\\pytest\\lib\\site-packages\\allure\\pytest_plugin.py'>解决策略:5、 如何执行pytest:(1) 在pycharm中:点击terminal,然后输入pytest 测试用例.py (注意:测试用例的文件名一定要带:test_*.py或者*_test.py)(2) 或者在dos命令行,cd到pytes
pytest功能支持参数化简单的单元测试复杂的功能测试接口测试:pytest+requests做selenium/appnium具有很多第三方插件,并且可以自定义扩展 pytest-selenium(集成selenium) pytest-html(完美html测试报告生成) pytest-rerunfailures(失败case重复执行)pytest生成测试报告,参考:https://www.ji
转载 2024-08-05 13:11:01
36阅读
目前团队在使用的工具是pytest+u2。并通过python的celery异步与jenkins做结合达到打包完成后自动执行测试的目的。最后需要回传测试结果到外网的数据库中并在钉钉同步测试结果。UI自动化,不同于接口,在case量级上来之后执行时间往往以小时计。目前App自动化项目情况:case量:1000条左右执行时间:6h+case低耦合思路这次写的自动化项目初衷是可以兼容android、ios
目录前言什么是unittest?什么是pytestpytest安装查看版本第一个测试将多个测试用例放在一个calss中知识点pytest用例的设计原则命令行模式执行pytest命令规则1、执行某个目录下的所有用例2、执行某一个py文件下用例3、执行.py模块里面的某个函数,或者某个类,或者某个类里面的某个方法4、-m标记表达式5、-q 简单打印,只打印测试用例的执行结果6、-s 详细打印7、-
转载 2024-04-08 20:59:18
111阅读
一、pytest常用插件 # 生成html格式的自动化测试报告# 测试用例分布执行,多cpu分发# 用于改变测试用例的执行顺序  pytest-rerunfailures # 用例失败后重跑 #用于生成美观的测试报告二、pytest常用规则开头或者test结尾;  2、测试类必须以Test开头,并且不能有init方法;3、测试函数或方法必须以test开头;三、pytest测试用例的运行方式1、主函
转载 2024-02-16 10:06:52
108阅读
Pytest源码分析By:授客 QQ:1033553122测试环境pytest 5.4.3测试脚本mytest.py#!/usr/bin/env python # -*- coding:utf-8 -*- import pytest def test_func(): # test开头的测试函数     print("test_func")     assert 1 # 断言成功 if __n
转载 2021-03-02 10:49:23
877阅读
2评论
示例: # -*-encoding: utf-8 -*- ''' 多个测试用例执行, 但是每个用例 对初始化和清除 的要求不同 ,可以使用@pytest.fixture() fixture(scope='',params=None,autouse=False,ids=None,name=None) ...
转载 2021-08-31 00:13:00
395阅读
2评论
Pytest源码分析 By:授客 QQ:1033553122 测试环境 pytest 5.4.3 测试脚本mytest.py #!/usr/bin/env python # -*- coding:utf-8 -*- import pytest def test_func(): # test开头的测试
原创 2021-06-04 22:19:34
325阅读
Pytest是Python的一种单元测试框架,与unittest相比,使用起来更简洁、效率更高,也是目前大部分使用python编写测试用例的小伙伴们的第一选择了。除了框架本身提供的功能外,Pytest还支持上百种第三方插件,良好的扩展性可以更好的满足大家在用例设计时的不同需求。本文将为大家详细介绍下面5项常用的插件。1. 用例依赖编写用例的时候,我们会注意用例之间的独立性,但部分用例之间确实存在关
转载 2024-03-25 16:43:51
52阅读
  • 1
  • 2
  • 3
  • 4
  • 5