首页 > 编程语言 >Python自动化必不可少的测试框架 — pytest

Python自动化必不可少的测试框架 — pytest

时间:2023-03-29 09:55:51浏览次数:39  
标签:Python py 必不可少 pytest 测试 test 执行 软件测试

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试,领取资料可加:Matongxue_8

码同学抖音号:小码哥聊软件测试​

Python在测试圈的应用非常广泛,特别是在自动化测试以及测试开发的领域,其中在自动化测试中我们常用的测试框架是uniitestpytest,本文将带领大家搭建以及熟悉pytest的使用。

 

既然有unittest那么为什么还要用pytest呢?

这是因为pytest有以下的特点:

 

  • 入门简单,文档丰富,而且文档中有很多实例参考

  • 支持参数化,可以从教细的力度控制测试用例

  • 能够支持简单的单元测试和复杂的功能测试

  • 支持测试跳过,失败case标记

  • 支持失败重试

  • 支持由nose,unittest编写的测试用例

  • 支持HTML报告

  • 和jenkins持续集成很方便

  • 具有很多第三方插件,并且可以自定义扩展

01安装pytest 

 

cmd或者终端运行

 

 

 

查看版本

 

 

 

 

快速体验一把

 

 

 

在pycharm里的Terminal直接执行

 

 

 

 

在这里必须提醒大家注意pytest的执行规则,规则是这样的:

  • 考如果直接敲pytest执行,则会查找当前目录及其子目录下以  test_*.py  或 *_test.py 文件,找到文件后,在文件中找到以test 开头函数并执行

  • 如果只想执行某个py文件,则使用pytest  xxx.py

     

02pytest测试用例设计原则

 

用pytest写用例时,需要遵循以下的规则,才能够被识别并执行:

  • 文件名必须以*_test.py或者test_*.py命名

  • 测试函数必须以test开头

  • 测试类必须以Test开头,并且不能包含__init__方法

  • 测试类里以test_开头的方法

  • 所有的包必须要有__init__.py文件

 

03pytest执行用例规则

 

1、执行某个目录下所有的用例

在first这个目录下执行pytest命令,则会找该目录下的符合pytest用例规则的所有用例并执行

 

 

 

免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:Matongxue_8

2、单独执行某个py文件

执行pyteststudy.py这个文件中符合pytest用例规则的所有用例,而该文件并不需要遵循pytest对于文件的命名规则

 

 

 

 

3、执行某个py文件里的某个函数

或者某个类,再或者某个类里的某个方法执行pyteststudy.py里的test_add方法

 

 

 

执行pyteststudy.py里的TestCase这个类

 

 

 

执行pyteststudy.py里的TestCase这个类下的test_one方法

 

 

 

 

4、-s 参数

表示详细打印,可以把脚本中print的信息展示在结果上

 

 

 

 

04Pycharm运行Pytest

 

当然以上执行貌似都是在命令行中进行操作的,那么我们使用pycharm能不能像运行普通代码右键run呢,这就需要一定的设置了

 

设置步骤如下:

  • 点开File --> Settings

  • 在settings弹框中输入integrated 搜索

  • 修改default test runner为pytest

  •  

     

然后在脚本中右键

 

 

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:Matongxue_8/关注码同学公众号:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

标签:Python,py,必不可少,pytest,测试,test,执行,软件测试
From: https://www.cnblogs.com/testfan2019/p/17267672.html

相关文章

  • python 路径拼接
     os.path.join()函数:连接两个或更多的路径名组件如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃如果最后一个组件为空,则生成的路径以一个\ 分隔......
  • Python 中 is 和 == 的区别
      is和==的区别相信学过Python小伙伴们都知道is和==都是用来比较Python对象的,但是区别就是is比较需要对象的值和内存地址都相等==比较只需要对象的......
  • python - pdf简单操作
    1.安装PyPDF2pip3installPyPDF22.分割fromPyPDF2importPdfReader,PdfWriterfile=input()pdf_reader=PdfReader(file)foriinrange(len(pdf_reader.pa......
  • python中fetchone()和fetchall()
    *fetchone():返回单个的元组,也就是一条记录(row),如果没有结果,则返回Nonecu.execute("selectuser,passwordfromuserwhereuser='%s'"%name)arr=cur.fetch......
  • python中的while True
    建立一个用户登录系统,用户输入用户名和密码,如果正确就可以进入系统。1、我自己最开始的写法:1d={}#数据库字典,所有用户的用户名密码存储在此25name=......
  • QT调用python打包
    1.参考QT调用python环境,https://www.cnblogs.com/xian-yongchao/p/17238684.html。使用其中的依赖包,如下图所示:   2.加上QT调用python的中间动态库,如下图所示。 ......
  • Fatal error in launcher: Unable to create process using '"d:\software\python\
    Fatalerrorinlauncher:Unabletocreateprocessusing'"d:\software\python\python.exe" 问题发生:是由于python切换环境导致的。本来python放在D盘software的......
  • Python-异常处理
    Python中也有异常处理的方式:演示代码:try:user_weight=float(input("输入体重:"))user_height=float(input("输入身高:"))user_bmi=user_weight/......
  • Python中的这个super这行是啥意思啊?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【Ming】问了一个Python基础的问题,这里拿出来给大家分享下。二、实现过程这里【carpediem】给了一个思路,如下图所......
  • pytest
    pytest 简介:pytest是python的第三方单元测试框架,比自带的unittest更简洁和高效,同时兼容unittest框架 pytest测试用例编写规则:1、测试文件以test_开头(以_test......