第六章 应用pytest测试框架6.1-6.3章节

感谢大家关注,帮忙分享呦,你们的阅读就是我的动力!!!

公众号:小李测试随笔

第六章 应用pytest测试框架6.1-6.3章节

第六章 应用pytest测试框架6.1-6.3章节

第六章 应用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测试框架6.1-6.3章节

pytest测试框架的安装命令为pip3 insatll pytest

安装过程如图

第六章 应用pytest测试框架6.1-6.3章节

第六章 应用pytest测试框架6.1-6.3章节

6.2 验证pytest是否安装成功

第六章 应用pytest测试框架6.1-6.3章节

pytest测试框架安装完成后,通过pycharm导入pytest测试框架,并通过dir()函数来查看pytest测试框架的方法,如果能正常输出pytest测试框架的方法,则表明pytest测试框架安装成功。

第六章 应用pytest测试框架6.1-6.3章节

6.3 函数和方法的执行规则

第六章 应用pytest测试框架6.1-6.3章节

6.3.1 函数的执行规则

第六章 应用pytest测试框架6.1-6.3章节

在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测试框架6.1-6.3章节

更多说明:运行方式中,除通过pytest.main([‘-s’,’-v’,’【例 6-1】 以 test 打头的函数将自动执行.py’])的运行方式外,还可以通过命令行方式(cmd)运行程序,需要切换到运行文件所在目录下,直接执行pytest -v -s Test.py来运行程序

6.3.2 方法的执行规则

第六章 应用pytest测试框架6.1-6.3章节

在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'])

结果

第六章 应用pytest测试框架6.1-6.3章节

第六章 应用pytest测试框架6.1-6.3章节

第六章 应用pytest测试框架6.1-6.3章节

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球