本文记录关于自动化测试的基础学习内容
使用的语言:python
从这里开始介绍 pytest这个用例管理框架(单元测试框架)
一、测试框架
1、框架分类:
python:unittest、pytest
java:junit、testng
2、框架作用:
发现测试用例
执行测试用例(pytest默认从上到下执行,unittest默认ascii码执行)
断言
生成报告
二、pytest简介
1、基于python的单元测试框架
2、可以结合selenium、appnium、requests实现自动化测试
3、可以结合allure-pytest插件生成allure报告
4、结合Jenkins实现持续集成
5、其他常用插件:
pytest-html:生成html报告
pytest-xdist:多线程执行
pytest-ordering:改变测试用例执行顺序
pytest-rerunfailures:失败用例重跑
插件管理
一般将项目需要的所有插件放在 requirements.txt 文件内(根目录下)
使用命令一次性安装所有插件:pip install -r requirements.txt
三、命名规则
模块名:test_*.py(一般全小写,单词之间用下划线隔开)
类名:Test*(一般驼峰)
用例名:test_*(一般全小写,单词之间用下划线隔开)
四、pytest运行方式
1、主函数运行
常见参数:
-v:输出更详细的信息,如类名、方法名
-s:输出打印信息、调试信息等
(可以合并为:-vs)
-return=数字:失败重跑次数
-x:出现1个失败就停止
-maxfail=数字:出现N个失败就停止
-n=数字:多线程跑用例
–html=reports/report.html:在reports目录下生成report.html的
不常见参数:
-k:运行包含指定 字符串 的用例(指定字符串可以用 and 和 or)
2、命令行运行
pytest -vs
3、pytest.ini配置文件运行(主函数或命令行运行都会读取这个文件,文件不能出现中文,不然需要修改编码格式)
五、测试用例执行顺序
1、默认从上到下执行
2、用过标记控制
@pytest.mark.run(order=1)
六、跳过测试用例
1、直接跳过
@pytest.mark.skip(reason=‘粒度不需要’)
2、进行判断跳过
verson = 3
@pytest.mark.skip(reason>2, reason=‘此后版本不再执行’)
七、用例前后置(夹具、固件、勾子)
def setup_module:在每个模块前执行
def teardown_module:在每个模块后执行
def setup_class:在每个类前执行
def teardown_class:在每个类后执行
def setup:在每个用例前执行
def teardown:在每个用例后执行
这种方式没法解决指定用例需要前后置的问题
如果仅某些用例需要前后置动作,需要用到下一章的 fixture