- 目前有两种纯测试的测试框架,pytest和unittest;
- unittest应该是广为人知,而且也是老框架了,很多人都用来做自动化,无论是UI还是接口;
- pytest是基于unittest开发的另一款更高级更好用的单元测试框架;
一、pytest简介
- pytest是一个非常成熟的单元测试框架。灵活和简单;
- 可以结合selenium,requests,appnium完成各种不同的自动化;
- 还可以生成自定义allure报告和Jenkins持续集成;
- pytes很多强大的插件;
pytest-html(生成html报告的插件) pytest-xdist(多线程运行的插件) pytest-orderding(改变用例的执行顺序插件) pytest-rerunfailres(失败用例重跑的插件) allure-pytest(生成美观自定义的allure报告)
二、pytest特点
- 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
- 能够支持简单的单元测试和复杂的功能测试
- 支持参数化
- 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败
- 支持重复执行(rerun)失败的 case
- 支持运行由 nose, unittest 编写的测试 case
- 可生成html报告
- 方便的和持续集成工具 jenkins 集成
- 可支持执行部分用例 具有很多第三方插件,并且可以自定义扩展
三、pytest安装
pip install pytest
- 离线安装:下载pytest离线安装包,并解压;然后再dos下进入解压的目录下,然后执行python setup.py insatll;
- pycharm: python interpreter
判断是否安装成功 pip show pytest
- 执行
四、Pytest用例设计原则
用Pytest写用例时候,一定要按照下面的规则去写,否则不符合规则的测试用例是不会执行的
- 文件名以test_.py文件和_test.py
- 以
test_ 开头的函数 以 Test开头的类,不能包含__init__ 方法 - 以
test_ 开头的类里面的方法; - 所有的包package必须要有__init__.py 文件
五、常用断言
- 与unittest不同,pytest使用的是python自带的assert关键字来进行断言;
- assert关键字后面可以接一个表达式,只要表达式的最终结果为True,那么断言通过,用例执行成功,否则用例执行失败;
pytest 里面断言实际上就是 python 里面的 assert 断言方法,常用的有以下几种
assert xx :
assert not xx :
assert a in b :
assert a == b :
assert a != b :
|