pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用,可应用在单元测试、自动化测试工作中。  官网:(https://docs.pytest.org/en/7.2.x/)文章主要以unittest为参考分析pytestpytest主要作用是编写测试用、收集、执行、生成测试结果文件(html、xml)unittest: 模板化 不需要安装1.基于pyth
重复执行引入在测试过程中我们可能将某条,某个测试用甚至整个测试重复执行多次。这时你可能会想到多写几次运行函数,再不就写个for循环。其实pytest提供了一个扩展模块:pytest-repeat。安装pytest-repeat是Python的扩展模块,使用pip命令安装即可。pip install pytest-repeat@pytest.mark.repeat()我们可以@pytes
pytest-xdist基本的介绍声明:在介绍pytest-xdist时,本人不讲任何原理,需要看原理的请移至官方:https://pypi.org/project/pytest-xdist/ 当我们自动化测试用非常多的时候, 一条条按顺序执行会非常慢,pytest-xdist的出现就是为了让自 动化测试用可以分布式执行,从而节省自动化测试时间,pytest-xdist是属于进程级别的并发。
使用appium可以实现app自动化测试,我们之前是连接一台手机去运行,如何同时连接多台手机呢?很多人可能想到的是多线程(threading)。今天分享一种比多线程更简单的方法,虽然不是多台手机同时运行,但可以连接多台手机依次运行,大致的运行方式是:001号测试用:A手机,B手机...,002号测试用:A手机,B手机...环境准备appium的安装:adt,nodejs,appium的pyth
转载 2024-07-16 23:23:32
120阅读
fixture的优势命名方式灵活,不局限于 setup 和teardown 这几个命名conftest.py 配置里可以实现数据共享,不需要 import 就能自动找到fixturescope="module" 可以实现多个.py 跨文件共享前置scope="session" 以实现多个.py 跨文件使用一个 session 来完成多个@pytest.fixture(scope="functi
转载 2024-04-01 12:41:04
78阅读
前言:实际项目中的例数量会非常多,几百上千;如果采用单进程串行执行的话会非常耗费时间。假设每条耗时2s,1000条就需要2000s $\approx$ 33min;还要加上加载、测试前/后置套件等耗时;导致测试执行效率会相对低。想象一下如果开发改动一块代码,我们需要回归一下,这时候执行一下自动化用需要花费大半个小时或者好几个小时的时间,这是我们无法容忍的。为了节省项目测试时间,需要多个
前言:1.我们可以通过help帮助查看pytest如何使用查看pytest命令行参数,可以pytest -h或pytest --help查看  2. 设计原则(1)文件名以test_*.py 文件和*_test.py(2)以test_开头的函数(3)以Test开头的类(4)以test_开头的方法(5)所有的包pakege必须有__init__.py文件3.设计&nbs
转载 2024-03-16 14:32:00
262阅读
一、unittest 批量执行我们在写的时候,单个脚本的好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到 unittet 里面的 discover 方法来加载了。加载后, unittest 里面的 TextTestRunner 这里类的 run 方法去一次执行多个脚本的。二、新建测试项目1.打开pycharm,左上角File>New Projetc>P
转载 2024-03-22 16:27:56
402阅读
对于实现的接口代码,如登陆,我们常常会有多种情况的登陆,但其实本质就是每次发送登陆的请求参数不一样,我们如何只写一个测试接口,实现我们多条不同数据的登陆呢?1、固件/前后置处理方法''' pytest fixture仓库 ,全部是都fixture内容 '''import pytest from global_session import global_session as s @pytest
一、引言:1)setup的作用:用来实现执行前的一些初始化操作(如:数据准备、连接设备、打开APP/浏览器、创建日志对象、创建数据库连接、创建接口的请求对象等操作);2)teardown的作用:用来实现执行后的一些操作(如:数据清理、关闭APP/浏览器、销毁日志对象、关闭数据库连接等操作)。二、分类:函数级:setup_function/teardown_function  &nbs
目录:导读一、前言二、pytest-repeat三、重复执行—count四、—repeat-scope五、@pytest.mark.repeat(count)六、重复测试直到失败七、Unittest样式测试 一、前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此反复执行多次,最终复现出问题来自动化运行时候,也会出现偶然的bug,可以针对单
pytest中参数化的几种方法@pytest.mark.parametrize元组组成的列表进行参数化,每一组元素表示一组参数化值每个参数单独赋值添加idpytest.param, 针对单个参数化添加mark标记或者id利用indirect参数,通过fixture实现间接参数化pytest_generate_tests根据输入命令动态选择参数值执行命令动态输入参数值 @pytest.mark
书籍来源:房荔枝 梁丽丽《pytest框架与自动化测试应用》一边学习一边整理老师的课程内容及实验笔记,并与大家分享,侵权即删,谢谢支持!实际工作中,测试用的执行可能会依赖于一些外部条件,例如:只能运行在某个特定的操作系统(Windows),或者我们本身期望它们测试失败,例如:被某个已知的Bug所阻塞。如果我们能为这些提前做上标记,那么pytest就可以相应地预处理它们,并提供一个更加准确的测
前言 pytest如何执行不是test开头的?如执行xxx.*.py这种文件的pytest.ini配置文件可以修改用的匹配规则。 pytest命令行参数 cmd打开输入pytest -h查看命令行参数找到[pytest] ini-options python_files(args)匹配 ...
转载 2021-09-14 11:25:00
188阅读
2评论
前言 pytest如何执行不是test开头的?如执行xxx.*.py这种文件的pytest.ini配置文件可以修改用的匹配规则。 pytest命令行参数 cmd打开输入pytest -h查看命令行参数找到[pytest] ini-options python_files(args)匹配 ...
转载 2021-09-14 11:25:00
217阅读
2评论
先安装pip install pytestpytest管理框架默认规则:1.py文件必须以test_开头或者_test结尾2.类名必须以test开头3.测试用必须以test_开头 get 请求通过params传递参数post请求通过json或者data传参 data数据报文:dict字典类型,请求头:application/x-www-form以form表单的方式传参&n
转载 2024-02-13 13:00:07
35阅读
1、编写测试用在Pycharm中新建test_sample.py文件如下:其中包含被测函数func和测试用test_answer,使用assert断言测试预期结果和实际结果。# content of test_sample.py def func(x): return x + 1 def test_answer(): assert func(3) == 5测试用编写规范:
前言上篇文章相信大家已经了解了pytest在cmd下结合各种命令行参数如何运行测试用,并输出我们想要看到的信息。那么今天会讲解一下pytest是如何收集我们写好的?我们又有哪些方式来运行单个或者批量运行呢?下面将为大家一一解答!Pytest收集原理首先我们按照如下目录结构新建我们的项目 [pyttest搜索测试用的规则] |[测试用目录1] | |__
一、 基本应用1、如下代码是对日报的增加、查看、修改和删除:(文件名称:test_dailyreport.py)#!/usr/bin/env python # -*- coding:utf-8 -*- ''' caseName:工作日报 ''' # import unittest import pytest from businessView.daily_report import DailyR
前言我们在写的时候,单个脚本的好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载了。加载后,unittest里面的TextTestRunner这里类的run方法去一次执行多个脚本的。 unittest模块中的TestLoader类有一个discover方法(Python2.7之后) discover(s t
转载 2024-04-19 19:14:21
1085阅读
  • 1
  • 2
  • 3
  • 4
  • 5