随笔分类 -  python-pytest

摘要:环境安装 一、安装配置JDK 先检查是否安装JDK,cmd中查看java版本:java -version 若未安装,以下面的步骤安装: 1、Oracle官网下载JDK:https://www.oracle.com/java/technologies/downloads/,请下载安装JDK8及以上版本 阅读全文
posted @ 2024-06-07 10:34 陈晓猛 阅读(96) 评论(0) 推荐(0) 编辑
摘要:pytest运行报错:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xaf in position 82: illegal multibyte sequence D:\Python\environment\python3.9.7\python3 阅读全文
posted @ 2024-06-03 16:28 陈晓猛 阅读(34) 评论(0) 推荐(0) 编辑
摘要:如果想把登录操作放到前置操作里,也就是用到@pytest.fixture装饰器,传参就用默认的request参数user = request.param 这一步是接收传入的参数,下面演示一个参数的情况 那当request传递两个参数的时候,如果用到@pytest.fixture,里面用2个参数情况, 阅读全文
posted @ 2024-03-13 17:34 陈晓猛 阅读(76) 评论(0) 推荐(0) 编辑
摘要:python的单元测试框架经常使用的是unittest,因为它比较基础,并且可以进行二次开发,如果你的开发水平很高,集成开发自动化测试平台也是可以的接下来主要讲unittest与pytest的区别,pytest相对unittest而言,代码简洁,使用便捷灵活,并且插件很丰富。 Unittest vs 阅读全文
posted @ 2021-06-03 08:02 陈晓猛 阅读(2749) 评论(0) 推荐(1) 编辑
摘要:参数化表达式: ddt表达式 @pytest.mark.parametrize(“参数名”, 列表数据) @ddt.ddt def(参数名): class xxx(unittest.TestCase): #一定要继承unitest.TestCase 执行体 @ddt.data(*LD.wrong_d 阅读全文
posted @ 2021-06-02 14:23 陈晓猛 阅读(396) 评论(0) 推荐(0) 编辑
摘要:pytest断言 前面说到pytest的断言比较强大,它直接可以使用python自带的断言内容,当然不止而已,pytest还有一个重要的功能是可以重写assert关键字,pytest会截断对python中自带的assert的调用然后替换成自己定位的assert,从而可以获取更多的错误信息,让我们知道 阅读全文
posted @ 2021-05-31 16:45 陈晓猛 阅读(367) 评论(0) 推荐(0) 编辑
摘要:我们在执行用例的时候,每次都在命令行中输入-v,-s等一些命令行参数的时,比较麻烦。其中pytest.ini这个配置文件可以快速的帮助我们解决这个问题。 配置文件 pytest.ini文件是pytest的主配置文件,可以改变pytest的运行方式,且是一个固定的文件pytest.ini文件,pyte 阅读全文
posted @ 2021-05-31 16:16 陈晓猛 阅读(218) 评论(0) 推荐(0) 编辑
摘要:执行自动化用例的过程中,遇到已知bug或者其他平台的执行内容,这个时候我们可以选择用跳过用例,在unittest中有无条件跳过,也有满足条件进行跳过,那么pytest中也存在跳过用例。 skip 前面介绍了mark的时候,知道mark属于标记用例,那么当mark.skip的时候就表示无条件进行跳过用 阅读全文
posted @ 2021-05-31 16:07 陈晓猛 阅读(371) 评论(0) 推荐(0) 编辑
摘要:unittest中存在mock模块,那么pytest中也存在mock模块,pytest中的mock使用第三方库:pytest-mock pytest-mock 安装: pip install pytest-mock 这里的mock和unittest的mock基本上都是一样的,唯一的区别在于pytes 阅读全文
posted @ 2021-05-31 15:45 陈晓猛 阅读(594) 评论(0) 推荐(0) 编辑
摘要:可以使用pytest.mark.parametrize来做参数化,非常的方便,其实fixture也可以用来做参数化,灵活性更高。 fixture参数化 fixture前面介绍的时候说过一共有5个参数分别是:name,scope,params,autouse,ids。每个参数都会介绍到,今天主要介绍p 阅读全文
posted @ 2021-05-31 14:29 陈晓猛 阅读(434) 评论(0) 推荐(0) 编辑
摘要:遇到一个class中都需要传入一个fixture,那一个个写进函数中,太麻烦,通过class直接传入fixture usefixtures usefixtures是fixture用来标记class中的一个方法。用法结果相当于和setup和teardown的结果一样。每个用例函数都会进行执行fixtu 阅读全文
posted @ 2021-05-27 15:26 陈晓猛 阅读(396) 评论(0) 推荐(0) 编辑
摘要:需要传入fixture的名称,如果用例都需要这个fixture,每个用例都进行传入fixture名称,这就比较麻烦了,有什么好的方法?当然fixture中的autouse就是控制传参范围。 autouse autouse属于fixture参数中的其中一个,默认是为False,不会使作用域的方法全部都 阅读全文
posted @ 2021-05-27 15:11 陈晓猛 阅读(247) 评论(0) 推荐(0) 编辑
摘要:通过前面学习fixture可以正常的代替setup和teardown,我们在后期框架中的文件名过多,或者函数名过多,有时会和fixture名字进行重名,或者fixture调用容易出错。fixture也可以进行重新自己更改自己的名称 fixture重命名 在fixture源码中我们可以通过修改name 阅读全文
posted @ 2021-05-27 15:01 陈晓猛 阅读(104) 评论(0) 推荐(0) 编辑
摘要:fixture可以代替setup和teardown,怎么在不同的场景下进行使用运行呢?比如我只想要启动浏览器一次呢?如果每个用例按照前面的都加入fixture那么每条用例都会运行,其实fixture中有参数可以进行配置,配置后可以在不同的场景下进行使用,这里就要引入新的知识fixture的作用范围。 阅读全文
posted @ 2021-05-27 14:49 陈晓猛 阅读(191) 评论(0) 推荐(0) 编辑
摘要:不同的用例使用到登录的场景,如果不同文件夹的用例使用到相同的fixture应该怎么办呢?如果再写一个fixture就会比较麻烦,那么强大的pytest肯定不会让我们这样麻烦的,只会让我们更加方便。这里就要引入新的知识点conftest.py文件 conftest.py conftest.py文件属于 阅读全文
posted @ 2021-05-26 19:58 陈晓猛 阅读(70) 评论(0) 推荐(0) 编辑
摘要:上一篇介绍了如何通过setup和teardown来帮助我们做自动化的前置和后置内容,那么如果有一个场景,有的用例需要用到登录的方法,有的却用不到登录的方法,这时如果用setup和teardown的方法就不能写在一个测试类中,但是pytest中还有更好的前置内容,不需要每个用例都能用到。 fixtur 阅读全文
posted @ 2021-05-26 19:55 陈晓猛 阅读(116) 评论(0) 推荐(0) 编辑
摘要:前言 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次。当然还有更高级一点的setupClass和teardownClass,需配合@classmethod装饰器一起使用,在做selenium自动化的时候,它的效率尤为突出,可以只 阅读全文
posted @ 2021-05-26 19:38 陈晓猛 阅读(401) 评论(0) 推荐(0) 编辑
摘要:pytest用例设计规则 测试文件以test_开头(以_test结尾也可以) 测试类以Test开头,并且不能带有 __init__ 方法 测试函数以test_开头 断言使用assert 所有的包pakege必须要有__init__.py文件 pytest常见的命令行参数 命令行参数 pytest - 阅读全文
posted @ 2021-05-26 18:15 陈晓猛 阅读(376) 评论(0) 推荐(0) 编辑
摘要:pytest简介 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它具有如下特点: 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 能够支持简单的单元测试和 阅读全文
posted @ 2021-03-31 10:08 陈晓猛 阅读(730) 评论(0) 推荐(0) 编辑