感谢大家关注,帮忙分享呦,你们的阅读就是我的动力!!!
公众号:小李测试随笔
第六章 应用pytest测试框架6.1-6.3章节
pytest是一个非常成熟的全功能的python测试框架,主要有以下几个特点:
- 简单灵活,容易上手
- 支持参数化
- 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appium等自动化测试,接口自动化测试(pytest+request)
- pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等
- 测试用例的skip和xfail处理
- 可以很好的和Jenkins集成
- report框架—-allure 也支持了pytest
- 本章节将通过实例带你一起应用pytest测试框架
6.1 pytest测试框架的安装
pytest测试框架的安装命令为pip3 insatll pytest
安装过程如图
6.2 验证pytest是否安装成功
pytest测试框架安装完成后,通过pycharm导入pytest测试框架,并通过dir()函数来查看pytest测试框架的方法,如果能正常输出pytest测试框架的方法,则表明pytest测试框架安装成功。
6.3 函数和方法的执行规则
6.3.1 函数的执行规则
在pytest测试框架中,接口用例可以直接封装在函数中,自动执行。但并不是每个函数都会自动执行,例如在很多的接口测试中,会碰到上下游接口有依赖关系,就需要设置动态参数来处理依赖关系。读取或处理动态参数的函数并不需要自动执行,而是需要间接被调用。那么在什么情况下函数会自动执行?什么情况下函数不会自动执行呢?pytest框架都有它既定的执行规则。默认情况下,pytest测试框架会以选择以test打头的函数自动执行,而不以test打头的函数则不自动被执行
import pytest
#此函数以test打头,会被执行
def test_login():
print('我是会被执行的')
#此函数以test打头,会被执行
def testlogin():
print('我也是会被执行的')
#此函数不以test打头,不会被执行
def logintest():
print('我也是会被执行的')
#此函数不以test打头,不会被执行
def login_test():
print('我也是会被执行的')
#此函数不以test打头,不会被执行
def logintesting():
print('我也是会被执行的')
if __name__ == '__main__':
'''运行方式,直接在文件内执行以下命令
其中,-v参数显示命令执行过程,-s参数显示打印的信息
如不加-s参数,则print()函数打印的信息不会显示'''
pytest.main(['-s','-v','【例 6-1】 以 test 打头的函数将自动执行.py'])
运行结果如下
更多说明:运行方式中,除通过pytest.main([‘-s’,’-v’,’【例 6-1】 以 test 打头的函数将自动执行.py’])的运行方式外,还可以通过命令行方式(cmd)运行程序,需要切换到运行文件所在目录下,直接执行pytest -v -s Test.py来运行程序
6.3.2 方法的执行规则
在pytest测试框架中,接口用例可以直接封装在函数中进行自动执行,但更多的搜索将接口测试用例封装在类的方法中。类似的,封装在类中的方法并不都会自动执行。默认情况下,如果类名以Test打头,则此类下面所有以test打头的方法都会自动执行,而不是test打头的方法则不会被执行
import pytest
#定义TestOrdering类
class TestOrdering():
#定义test_login()方法
def test_login(self):
print("正在登录")
#定义test_add()方法
def test_add(self):
print("正在增加")
#定义test_del()方法
def test_del(self):
print("正在删除")
if __name__ == '__main__':
'''运行方式,直接在文件内执行以下命令
其中,-v参数显示命令执行过程,-s参数显示打印的信息
如不加-s参数,则print()函数打印的信息不会显示'''
pytest.main(['-s','-v','【例 6-2】 类名以 Test 打头(T 是大写),所有以 test 打头的方法会自动执行.py'])
结果
END
Original: https://blog.csdn.net/ljs_fighting/article/details/124962314
Author: ljs_fighting
Title: 第六章 应用pytest测试框架6.1-6.3章节
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/776705/
转载文章受原作者版权保护。转载请注明原作者出处!