pytest
蜀山客e
这个作者很懒,什么都没留下…
展开
-
Pytest自动化测试 - allure报告进阶
Allure除了具有Pytest基本状态外,其他几乎所有功能也都支持。1、严重性如果你想对测试用例进行严重等级划分,可以使用 @allure.severity 装饰器,它可以应用于函数,方法或整个类。它以 allure.severity_level 枚举值作为参数,分别为:BLOCKER(中断),CRITICAL(严重),NORMAL(常规),MINOR(轻微),TRIVIAL(不重要)。示例:# test_sample.pyimport allure# 两数相加def add(x, y原创 2020-12-07 19:19:47 · 432 阅读 · 1 评论 -
pytest+allure+jenkins - 持续集成平台生成allure报告
pytest是什么pytest是python的一款测试框架,拥有unittest的功能并比它更丰富。allure是什么有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例执行过程和结果。allure是一款开源的,专门用来展示测试结果的工具,目的是希望团队内部每一个人都可以看到非常清楚的测试结果。allure可以与非常多的著名测试框架做集成。 像java语言,可以与junit4,junit5,TestNG测试框架集成。 python语言,可以与pytest,behave原创 2020-11-09 15:23:12 · 325 阅读 · 0 评论 -
pytest学习 用例查找原理
当执行pytest命令时,pytest会从project中查找test来执行。本文先从几个路径相关的概念讲起,这样便于理解pytest在遍历路径时的走向。几个路径相关的概念PYTHONHOME定义了Python标准库的路径。PYTHONPATH定义了Python import模块搜索的路径。basedir①如果是module,目录中不包括__init__.py,basedir的值等于aa|--b_test.py②如果是package,目录中包括__init__.py,basedir的值原创 2020-11-05 17:14:03 · 526 阅读 · 0 评论 -
pytest学习 参数化进阶
用过unittest的朋友,肯定知道可以借助DDT实现参数化。用过JMeter的朋友,肯定知道JMeter自带了4种参数化方式。pytest同样支持参数化,而且很简单很实用。语法@pytest.mark.parametrize@pytest.mark.parametrize("test_input,expected", [("3+5", 8), ("2+4", 6), ("6*9", 42)])def test_eval(test_input, expected): assert eval(原创 2020-11-05 16:59:36 · 332 阅读 · 0 评论 -
pytest学习-内置和自定义marker
可以通过命令行查看所有marker,包括内置和自定义的pytest --markersusefixtures如果我们只想把fixture注入到test中,test不直接访问fixture的时候,就需要用到usefixtures。示例,test需要一个临时目录,但是并不需要知道这个目录具体路径在哪# content of conftest.pyimport osimport shutilimport tempfileimport pytest@pytest.fixturedef原创 2020-11-05 16:44:51 · 390 阅读 · 0 评论 -
pytest之将多个测试用例放在一个类中,生成唯一临时文件夹
将多个测试用例放在一个类中简单来说就是将多个测试用例放到类中,通过pytest去管理,这和Testng很像。示例代码如下:"""将多个测试用例放到一个类中执行"""class TestClass(object): def test_1(self): assert 1 == 1 def test_2(self): assert 'h' in "hello"执行效果创建唯一的临时文件夹内置 fixtures 之 tmpdir:tmpdi原创 2020-10-27 14:48:38 · 775 阅读 · 0 评论 -
Pytest之使用断言指定异常
网的翻译是使用断言抛出指定异常,当我觉得他这里更应该指的是 Pytest 断言错误类型#使用raise在测试方法中指定异常的类型,这点和java还是蛮像的呢,具体示例如下:import pytestdef myfunction(): raise IOError("指定异常类型")def test_myfuntion(): with pytest.raises(IOError): myfunction()if __name__ == '__main__':原创 2020-10-27 14:05:42 · 794 阅读 · 0 评论 -
Pytest学习 - Pytest的用例执行测试后的常见报错
常见的状态passed:测试通过failed:断言失败error:代码编写上的错误xfail:预期失败,加了 @pytest.mark.xfail()测试通过的栗子(passed)示例代码如下:# -*- coding: utf-8 -*-# @Time : 2020/10/25 17:17# @Author : longrong.lang# @FileName: test_pass.py# @Software: PyCharm# @Cnblogs :https://ww原创 2020-10-27 14:03:20 · 3071 阅读 · 0 评论 -
Pytest学习 - fixture的使用
fixture功能传入测试中的数据集配置测试前系统的数据准备,即初始化数据为批量测试提供数据源fixture可以当做参数传入如何使用在函数上加个装饰器@pytest.fixture(),个人理解为,就是java的注解在方法上标记下,依赖注入就能用了。fixture是有返回值,没有返回值默认为None。用例调用fixture返回值时,把fixture的函数名当做变量用就可以了,示例代码如下:# -*- coding: utf-8 -*-# @Time : 2020/10/24 18:原创 2020-10-27 13:53:30 · 388 阅读 · 0 评论 -
Pytest学习 - setup和teardown的使用
unittest用法unittest有两个前置方法,两个后置方法,分别是:setup()setupClass()teardown()teardownClass()个人始终觉得unittest和Junit像极了。pytest用法当然,Pytest也提供了类似setup、teardown的方法,分别是:模块级别:setup_module、teardown_module函数级别:setup_function、teardown_function,不在类中的方法类级别:setup_clas原创 2020-10-27 13:09:57 · 284 阅读 · 0 评论 -
Pytest学习 - 断言的使用
一、前言学习pytest总会习惯性的和unittest对比使用,自然就断言pytest和unittest也是有些区别的。二、断言对比unittest 断言assertEqual(a, b) # 判断a和b是否相等assertNotEqual(a, b) # 判断a不等于bassertTrue(a) # 判断a是否为TureassertFalse(a) #判断a是否为FalseassertIn(a, b) # a 包含在b里面asserNotIn原创 2020-10-26 15:20:14 · 573 阅读 · 0 评论 -
Pytest学习 - 入门及基础
为什么要使用Pytest就Python的测试框架而言,目前比较流行的就是pytest和unittest,unittest广为人知,但就现在而言是老框架了,但是依旧有那么多喜欢使用他来做自动化测试。pytest是基于unittest开发的另一款更高级更好用的单元测试框架,作为知识更新,也更该去学习新知识了,它就和Testng和junit一样,无论从逼格和好用程度来看,都是完胜后者。pytest特点非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考能够支持简单的单元测试和复杂的功能测试支持原创 2020-10-26 15:10:00 · 611 阅读 · 1 评论