pytest

pytest框架中的fixture用法

匿名 (未验证) 提交于 2019-12-02 23:42:01
用例1需要先登录,用例2丌需要登录,用例3需要先登录。 fixture优势 找到一些配置 成多个用例 fixture(scope="function", params=None, autouse=False, ids=None, name=None): """使用装饰器标记fixture的功能 可以使用此装饰器(带戒丌带参数)来定义fixture功能。 fixture 功能的名称可以在以后使用 pytest.mark.usefixtures(fixturename标记。 测试功能可以直接使用fixture名称作为输入参数,在返种情况下, :arg scope: scope 有四个级别参数 "function" (默讣), "class", "module" or "session". :arg params: 一个可选的参数列表,它将导致多个参数调用 :arg autouse: 如果为True,则为所有测试激活fixture func 可 以看到它。 如果为False(默讣值)则显式需要参考来激活fixture :arg ids: 每个字符串id的列表,每个字符串对应于params 返样 他们就是测试ID的一部分。 如果没有提供ID它们将从params自动 生成 :arg name: fixture的名称。 返默讣为装饰函数的名称。 如果 fixture在定义它的同一模块中使用

Pytest、TestNG

匿名 (未验证) 提交于 2019-12-02 23:42:01
Pytest 成熟的全功能的Python测试框架, 简单灵活,容易上手,文档丰富 支持参数化,可以细粒度地控制要测试的测试用例; 能够支持简单的单元测试和复杂的功能测试,可以用来做selenium等自动 化测试、接口自动化测试(pytest+requests) pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)等 很好的和CI工具结合,例如jenkins pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效 TestNG是Java中的一个测试框架,是一个目前很流行实用的单元测试框架,有完善的用例管理模块,配合Maven能够很方便管理依赖第三方插件。 使用TestNG可以做功能、接口、单元、集成的自动化测试,最常见的是结合selenium做功能自动化测试 Java注释去写测试方法 可以更轻松地对测试用例进行分组和优先级排序 它提供了生成HTML执行报告的能力 数据参数化 文章来源: https://blog.csdn.net/weixin_42862552/article/details/91613130

pytest框架之fixture详细使用

匿名 (未验证) 提交于 2019-12-02 23:05:13
本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pytest框架,一边学习一边记录,和大家分享,话不多说,那就先从pytest框架的精髓fixture说起吧! 简介:   fixture区别于unnitest的传统单元测试(setup/teardown)有显著改进:   1.有独立的命名,并通过声明它们从测试函数、模块、类或整个项目中的使用来激活。   2.按模块化的方式实现,每个fixture都可以互相调用。   3.fixture的范围从简单的单元测试到复杂的功能测试,可以对fixture配置参数,或者跨函数function,类class,模块module或整个测试session范围。 (很重要!!!)(很重要!!!)(很重要!!!) 谨记:当我们使用pytest框架写case的时候,一定要拿它的命令规范去case,这样框架才能识别到哪些case需要执行,哪些不需要执行。 用例设计原则 文件名以test_*.py文件和*_test.py 以test_开头的函数 以Test开头的类 以test_开头的方法 fixture可以当做参数传入 定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(),fixture命名不要以test开头,跟用例区分开

Pytest+Allure环境的搭建

匿名 (未验证) 提交于 2019-12-02 23:03:14
1. pytest的安装: 1.1. windows下: pip install pytest 1.2. linux下: pip install pytest 2. 安装pytest-allure-adaptor插件 2.1. windows下: pip install pytest-allure-adaptor 3. allure的安装: 3.1. windows下: 前情提示: allure 是基于 Java 的一个程序,需要 Java1.8 的环境,没有安装需要去安装一下。 Windows下不能直接安装,点击此链接下载压缩包 下载之后,将压缩包解压到一个磁盘中,我这里用的是 F 盘 image 3.2. 配置 allure 的环境变量 image image 点击确定,保存。这样就可以通过 CMD 使用 allure 命令 3.3. 编写测试文件 pycharm 新建一个 test_demo.py 文件,代码如下: import allure @allure.MASTER_HELPER.feature("测试Dome") class TestDome(object): @allure.MASTER_HELPER.step("定义被测函数") def func(self, x): return x+1 @allure.MASTER_HELPER.story("被测场景")

python单元测试pytest

匿名 (未验证) 提交于 2019-12-02 22:56:40
1、pytest简介 pytest是 Python 的一种单元框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败 能够支持简单的单元测试和复杂的功能测试 支持重复执行失败的case 支持运行由nose, unittest编写的测试case 具有很多第三方插件,并且可以自定义扩展 方便的和持续集成工具集成 支持参数化 2、安装pytest pip install pytest 3、举例 (1)单测试case 执行测试的时候,我们只需要在测试文件test_sample所在的目录下,运行py.test即可。pytest会在当前目录及其子目录下寻找以test开头的py文件或者以test结尾的py文件(即测试文件),找到测试文件之后,进入到测试文件中寻找test_开头的测试函数并执行。 在当前目录下新建文件 test_champ.py def func(x): return x + 1 def test_answer(): assert func(3)==5 在命令行输入py.test [-q],加上-q(quiet)输出结果会省去pytest版本信息,便可以看到执行的成功与失败的原因了 (2)多测试case 当需要编写多个测试样例的时候

使用python测试框架完成自动化测试并生成报告-实例练习

匿名 (未验证) 提交于 2019-12-02 22:51:30
练习一: 使用unittest 完成自动化测试并使用HttpTestRunner生成报告 '''1、写个简单的计算器功能,大小写转换功能,随机生成字符串功能2、编写测试用例,不同的数据(你能想到的所有测试用例),并进行断言。除0的选择可以跳过skip,随机生成字符串功能可以断言是否包含你名字的缩写。3、使用unittest框架+HTMLTestRunner,最后生成html报告''' import unittestimport osimport timeimport loggingimport ddtfrom HTMLTestRunner import HTMLTestRunnerimport randomtestData1 = [{'a':5,'b':1,'x':'+','result':6}, {'a':5,'b':1,'x':'-','result':4}, {'a':5,'b':1,'x':'*','result':5}, {'a':5,'b':1,'x':'/','result':5} ]testData2 = [{'string':'asd','stringType':'upper','result':'ASD'}, {'string': 'ASD', 'stringType': 'lower','result':'asd'} ]#被测函数class test_demo

关于《Selenium3自动化测试实战--基于python语言》

匿名 (未验证) 提交于 2019-12-02 22:51:30
2016年1月,机缘巧合下我出版了《Selenium2自动化测试实战--基于python语言》这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目中使用Selenium,几乎离不开编程语言和单元测试框架,难道你只用Selenium IDE去录制/回放脚本么? 没想到受到许多测试人员的欢迎,我会时常去看网上的书评。大多是感谢的留言,书的销量也印证了这一点,当然,也有批评和建议。在此,表示感谢。 随着,我对Selenium自动化技术的理解,越来越发现《Selenium2自动化测试实战--基于python语言》书中有许多不足之处。 2017年的时候,我就有萌生了要重写一版的想法,当时能想到的改动的地方不多。只是一定未开始动笔。知道2018年下半年,我才开始重新写这本书。 接下来,我将简单的向你介绍以下新书的章节,以及我的改动。 第一章: 不讲什么是软件测试,以及测试的分类这些过于基础的东西了。快速的帮助你对自动化测试,以及Selenium、appium有一个认识。 第二章: 搭建环境。 第三章: python基础,修改了部分列子,以及我认识上的错误,比如,我把 list/列表 称为 数组 ,这其实源于我学C/Java语言,就把他们的叫法照搬了过来。显然,是不太合适的。随着对python的语言的使用,也有了更多的认识。如果你还不会python

Python测试框架:pytest

匿名 (未验证) 提交于 2019-12-02 22:51:30
全功能Python测试框架:pytest 摘自: https://www.jianshu.com/p/932a4d9f78f8 image.png pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests) pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等 测试用例的skip和xfail处理 可以很好的和jenkins集成 report框架----allure 也支持了pytest 安装pytest: pip install -U pytest 验证安装的版本: pytest --version 几个pytest documentation中的例子: 例子1: import pytest # content of test_sample.py def func(x): return x + 1 def test_answer(): assert func(3

Unable to debug in pycharm with pytest

大兔子大兔子 提交于 2019-12-02 20:11:36
I cannot debug in PyCharm using py.test. All the test suite is running ok in "Debug mode" but it doesn't stop on breakpoints. I also have py.test as the default test runner. Maybe this is not important, but debugging works correctly in my Django server. Any ideas? picture of enable_breakpoints_and_the_mode_of_pycharm_is_ debug References: pycharm-enabling-disabling-and-removing-breakpoints Run/Debug Configuration: py.test Simin Jie For my situation, i found what the problem is: If there is --cov in pytest.ini , then breakpoints in pycharm won't work, after deleting all --cov in pytest.ini ,

“py.test” vs “pytest” command

房东的猫 提交于 2019-12-02 19:58:57
The py.test command is failing in my case, whereas pytest is running totally fine. I use the pytest-flask plugin: platform linux -- Python 3.5.2, pytest-3.0.2, py-1.4.31, pluggy-0.3.1 rootdir: /home/sebastian/develop/py/flask-rest-template, inifile: plugins: flask-0.10.0 When I invoke $ py.test I get the following error: Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/_pytest/config.py", line 301, in _getconftestmodules return self._path2confmods[path] KeyError: local('/home/sebastian/develop/py/flask-rest-template') During handling of the above exception,