python的pytest框架之命令行参数详解(上)

 更新时间:2019年06月27日 10:09:26   作者:linux超  
这篇文章主要介绍了python的pytest框架之命令行参数详解,pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作。pytest提供了丰富的功能,包括assert重写,第三方插件,需要的朋友可以参考下

前言

pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作。pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixture模型。pytest是一个软件测试框架,是一款命令行工具,可以自动找到测试用例执行,并且回报测试结果。有丰富的基础库,可以大幅度提高用户编写测试用例的效率。具备扩展性,用户可以自己编写插件,或者安装第三方提供的插件。可以很容易地与其他工具集成到一起使用。比如持续集成,web自动化测试等。

下面列举了一些pytest相对于其他框架的优点

1. 简单的测试可以很简单的编写

2. 复杂的测试也可以简单的编写

3. 测试的可读性

4.易于上手

5. 断言仅使用原生的assert关键字,而不是像unittest那样使用self.assert**那样

6. pytest可以运行unittest和nose编写的测试用例

上面大部分结论其实也不是我个人总结的,是我从一本书上看到的,因为我也是刚刚接触这个框架,了解的也并不多。还有一个重要原因就是写文章不写点所谓的科学理论好像缺少点啥……(别管了前面了*总之一句话:pytest就是一个测试框架和unittest一类,功能很强,支持好多插件,用例写起来简单,代码逻辑性强,值得学习!实际工作中能不能用,能不能用好那就要靠自己了!)^_^废话不多说!

编写第一个测试函数(用例)

from selenium import webdriver
 def testOpenUrl():
 try:
 driver = webdriver.Firefox() # 打开浏览器
 driver.get('http://www.baidu.com') # 访问百度
 title = driver.title # 获取百度首页的title
 assert title == '百度一下,你就知道' # 断言
 except AssertionError:
raise AssertionError('断言失败!')
 driver.quit()

可以看到用例很简单,就是一个普通的函数(驱动浏览器,打开百度首页,断言首页的title是否正确),那么pytest是如何运行测试用例的呢?

我们可以通过cmd终端,并且换到当前用例所在的目录,输入 pytest 即可,运行结果如下所示

pytest执行用例命令行参数

上面我们已经学会了执行用例的命令 就是pytest, 那么真的就这么简单了吗?其实不然,pytest 还提供了很多可供我们执行用例的命令行参数,下面我们就一一介绍并演示

1.-v  :pytest -v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等

2.-s  :pytest -s 说明:输入我们用例中的调式信息,比如print的打印信息等,我们在上面用例8行加上一句 print(driver.title),我们再运行一下我们的用例看看

3.-m  :pytest -m ”标记“ 说明:执行特定的测试用例。我们再次修改一下我们的用例,并添加一个新的用例

 from selenium import webdriver
 import pytest
 @pytest.mark.run_this_testcase
 def testOpenUrl():
 try:
 driver = webdriver.Firefox() # 打开浏览器
 driver.get('http://www.baidu.com') # 访问百度
 title = driver.title # 获取百度首页的title
print(driver.title)
assert title == '百度一下,你就知道' # 断言
except AssertionError:
raise AssertionError('断言失败!')
driver.quit()
def testBaidu():
driver = webdriver.Firefox() # 打开浏览器
driver.get('http://www.baidu.com') # 访问百度
title = driver.title # 获取百度首页的title
assert title == '百度一下,你就知道' # 断言

我们可以看到只执行了被标记的用例,新添加的用例并没有被执行

4.-k  :pytest -k "关键字" 说明:执行用例包含“关键字”的用例

5.-q  :pytest -q 说明:简化控制台的输出,可以看出输出信息和上面的结果都不一样, 下图中有两个..点代替了pass结果

以上5个参数,大家可以自己尝试一下,下一篇文章会继续讲解其他几个常用的参数的使用以及pytest是如何发现测试用例的!

下篇将继续更新其他一些命令选项的使用,和pytest收集测试用例的规则!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 解决python pip安装第三方模块报错:error:legacy-install-failure

    解决python pip安装第三方模块报错:error:legacy-install-failure

    pip是python的第三方库管理器,可以根据所开发项目的需要,使用pip相关命令安装不同库,下面这篇文章主要给大家介绍了关于解决python pip安装第三方模块报错:error: legacy - install - failure的相关资料,需要的朋友可以参考下
    2023-04-04
  • Python中的鸭子类型实际应用之理解动态类型的力量

    Python中的鸭子类型实际应用之理解动态类型的力量

    鸭子类型是Python动态类型系统的重要特性之一,它通过关注对象的行为而非类型,提供了极大的灵活性和简洁性,本文介绍Python中的鸭子类型:理解动态类型的力量,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • python实现指定字符串补全空格、前面填充0的方法

    python实现指定字符串补全空格、前面填充0的方法

    这篇文章主要介绍了python实现指定字符串补全空格、前面填充0的方法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • 基于Python实现自制CV剪贴板功能

    基于Python实现自制CV剪贴板功能

    云桌面的win10不能调出剪贴板,对于CV工程师来说十分不方便,所以这篇文章主要介绍了如何使用Python实现一个CV剪贴板,提升常用语句的复制粘贴效率,感兴趣的可以了解下
    2024-02-02
  • Python 选择排序中的树形选择排序

    Python 选择排序中的树形选择排序

    这篇文章主要介绍了Python 选择排序中的树形选择排序,选择排序主要包括三个排序,分别是简单选择排序、树形选择排序和堆排序,本文主要讲解的是树形选择排序,下面详细内容,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11
  • Python虚拟环境管理工具virtualenv详解

    Python虚拟环境管理工具virtualenv详解

    在Python开发过程中,我们常常需要管理不同项目的依赖,每个项目可能依赖不同版本的Python库,因此,如何有效管理这些库成为了开发者日常工作中不可忽视的问题,需要的朋友可以参考下
    2024-12-12
  • Python中内置的日志模块logging用法详解

    Python中内置的日志模块logging用法详解

    Python的logging模块提供了记录程序运行情况的日志功能,类似于Apache的log4j,很好很强大,这里我们就来看一下Python中内置的日志模块logging用法详解
    2016-07-07
  • 关于python类SortedList详解

    关于python类SortedList详解

    这篇文章主要介绍了关于python类SortedList详解,可以帮大家巩固一下python类的基础知识,有需要的朋友可以借鉴参考下,希望可以对广大读者有所帮助
    2021-09-09
  • Python PyQt拖动控件对齐到网格的方法步骤

    Python PyQt拖动控件对齐到网格的方法步骤

    pyqt是一个用于创建GUI应用程序的跨平台工具包,它将python与qt库融为一体,下面这篇文章主要给大家介绍了关于Python PyQt拖动控件对齐到网格的方法步骤,需要的朋友可以参考下
    2022-12-12
  • python 阿里云oss实现直传签名与回调验证的示例方法

    python 阿里云oss实现直传签名与回调验证的示例方法

    这篇文章主要介绍了python 阿里云oss实现直传签名与回调验证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论