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啦。。

  • 相关阅读:
    软件体系架构复习要点
    Operating System on Raspberry Pi 3b
    2019-2020 ICPC North-Western Russia Regional Contest
    2019 ICPC ShenYang Regional Online Contest
    2019 ICPC XuZhou Regional Online Contest
    2019 ICPC NanChang Regional Online Contest
    2019 ICPC NanJing Regional Online Contest
    Codeforces Edu Round 72 (Rated for Div. 2)
    Codeforces Round #583 (Div.1+Div.2)
    AtCoder Beginning Contest 139
  • 原文地址:https://www.cnblogs.com/cudy/p/10478700.html
Copyright © 2011-2022 走看看