zoukankan      html  css  js  c++  java
  • 接口自动化:pytest----环境搭建

    出处:https://www.cnblogs.com/yoyoketang/p/9356693.html

    前言:

    python鄙视链:pytest 鄙视 > unittest 鄙视 > robotframework 鄙视 > 记流水账 鄙视 > "hello world"小白

    所以,让我们一起学习pytest吧。

    pytest简介:

    pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它具有如下特点:

    • 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
    • 能够支持简单的单元测试和复杂的功能测试
    • 支持参数化
    • 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败
    • 支持重复执行(rerun)失败的case
    • 支持运行由nose, unittest编写的测试case
    • 可生成html报告
    • 方便的和持续集成工具jenkins集成
    • 可支持执行部分用例
    • 具有很多第三方插件,并且可以自定义扩展

    一、pytest安装:

    1. pip install -U pytest

    2.  pip show pytest查看安装版本

     

    3.  也可以pytest -version查看安装的版本

    二、快速入手

    ----运行第一个简单的函数

    ok,如上环境安装成功了。下面通过具体的案例来入手吧。我们先编写一个简单的函数,通过pytest执行或者pytest -q 脚本名,指定脚本来执行。

    从上面的截图可以看出,第一个执行断言失败,第二个执行断言成功。

    ----运行多个函数

     在一个包中,或者说一个模块的文件中,它是有多个文件的,比如一个包中,pytest它是执行多个以test开头的模块脚本,我们先来看这种情况,在一个包中定义两个模块脚本,分别是test_first.py和test_second.py,如下图:

    ----运行类中的函数

    通过执行pytest可以执行模块中的函数或者类中的方法,那么我们就来实现执行类中的测试函数,如下图:

     -------踩坑了。在之后的学习中,发现test_class.py这个脚本中的类函数无法使用setup_class和teardown_class。原因是以上的代码其实是unittest的脚本,搞混了。下面更改一个pytest调用类函数的脚本。

    三、总结

    通过以上的三个练习,我们大致了解pytest的用例规则了吧。

    1. 测试脚本名以test_开头(或以_test结尾也可以)

    2. 测试脚本中若是执行函数,以test_开头

    3. 测试脚本中若是执行一个类中的函数,测试类以Test开头,并且不能带有init方法

    4. 断言使用assert

    5. 执行文件下所有的测试脚本,命令为pytest【cd到对应文件下执行】     或者    pytest 文件名/

    6. 执行文件下指定的测试脚本,命令为pytest -q 指定测试脚本名称【cd到对应文件下执行】    或者    pytest  文件名/脚本名

     敲黑板:

    pytest -s 脚本名     用例执行详细情况

    pytest -x 脚本名     遇到错误时停止测试

    pytest --maxfail= num    当用例错误个数达到指定数量时,停止测试

    pytest -h    查看pytest帮助

    ok啦。。

  • 相关阅读:
    Java中的异常处理
    Java源码阅读Vector
    Java源码中遇到的一些问题(更新中)
    Java迭代器原理
    有趣的位运算-与或非
    有趣的位运算-移位运算
    为何要使用原码, 反码和补码?
    有趣的位运算-异或
    为什么实现Serializbale接口就能够进行序列化?
    死锁,活锁,饥饿
  • 原文地址:https://www.cnblogs.com/cudy/p/10478700.html
Copyright © 2011-2022 走看看