接口自动化:1. 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报告
  • 可支持执行部分用例
  • 可和selenium,requests,appium实现web,接口,app自动化
  • 可和allure插件结合生成没关的测试报告以及和jenkins结合实现持续继承
  • 有很多强大的插件--pytest pytest框架;pytest -html 生成html报告; pytest -xdist 多线程插件;  pytest -ordering 控制测试用例的执行顺序;  pytest -rerunfailures 失败冲泡;  pytest -allure 生成美观的测试报告【一次性安装所有插件,将插件写成txt中放在代码根目录,执行pip install -r 文件名.txt】

 

一、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帮助

 

运行方式--

1. 命令行模式:输入pytest运行即可

参数:

-vs     -v输出更详细的信息    -s标识输出调试信息

-n       多线程运行测试用例

--reruns       失败用例重跑

--html    生成html测试报告

2. 主函数模式

import pytest

if __name__ == '__main__':

  pytest.main()

3. 结合pytest.ini的配置文件运行

[pytest]
#配置文件,指定输入的测试用例结果;指定文件和路径
addopts = -vs
testpaths = ./test*.py
python_classes = TEST*
python_function = test_*
markers =
  smoke:冒烟测试
 
【增加标记之后可通过addopts = -vs -m smoke来执行】

 

posted @ 2019-03-05 18:29  cudy222  阅读(1863)  评论(0编辑  收藏  举报