什么是单元测试框架?
单元测试框架是在自动化测试或白盒测试中对软件得最小单元(函数,方法)进行测试得框架
单元测试框架分类?
python:unittest,pytest
java:Testing和Junit
单元测试框架主要做的?
发现测试用例、执行测试用例、判断测试结果,生成测试报告
pytest简介以及常用插件安装
pytest是一个非常成熟的单元测试框架。灵活和简单 可以结合selenium,requests,appium完成各种不同的自动化 可以生成自定义allure报告以及Jenkins持续集成 pytest有很多强大的插件
Pytest pytest-heml(生成html报告的插件) pytest-xdist(多线程运行的插件) pytest-ordering(改变用例的执行顺序的插件) pytest-reunfailres(失败用例重跑的插件) allure-pytest(生成美观自定义的allure报告)
在项目根目录下创建requirements.txt
将插件写入文件
在命令行中输入:pip install -r requirements.txt
pytest默认的测试用例的规则以及基础应用
模块名必须以test_开头或以test_结尾 测试类必须以Test或test_开头,并且不能带有init方法 测试用例必须以test_开头的 所有的包pakege必须有__init__.py文件
pytest执行:
Alt+Enter自动导包
通过命令行执行
pytest
执行参数:
-v 输出详细信息 -s 输出调试信息 -n=2 多线程运行,两个线程去运行(前提安装插件) pytest -vs -n=2 --reruns=2 失败重跑(前提安装插件) pytest -vs --reruns=2
raise Exception() 抛出异常 try except 解决异常 -x 出现一个用例则停止测试 pytest -vs -x --maxfail=2 出现几个失败才终止 pytest -vs --maxfail=2 --html 生成测试报告 (前提安装插件) pytest -vs --html ./reports/result.html -k 运行测试用例名称中包含某个字符串的测试用例 pytest -vs -k “baili”
通过主函数main方式执行
在项目根目录下面建run.py,编写main函数
if __name__="__main__":
pytest.main()
通过全局配置文件pytest.ini文件执行
在项目根目录下面建pytest.ini,编码格式为ANSI格式 可能需要修改编码格式为GB2312 pytest.ini可以修改默认的测试规则 不管是命令行运行还是主函数运行,都会加载这个配置文件
class TestYutong:
@pytest.mark.smoke #冒烟用例
def test_ceshi(self):
[pytest]
addopts=-vs -m "smoke" #通过main运行,详细信息展示,指定执行冒烟用例
testpaths=./testscases #指定测试用例
python_file=ms_*.py #执行以ms开头的文件里的用例
python_classes=WWW* #执行以WWW开头的类
python_functions=test_* #执行以test开头的方法
#标记
markers=
smoke:冒烟用例
product_manage:商品管理
user_manage:用户管理
pytest跳过测试用例
(1)无条件跳过
class TestYutong:
@pytest.mark.skIP(reason="无理由") #跳过测试用例
def test_ceshi(self):
(2)有条件跳过
class TestYutong:
workahe=8
@pytest.mark.skipif(reason="无理由") #跳过测试用例
def test_ceshi(self):
@pytest.mark.skipif(workage<8,reason="工作年限小于10年跳过") #满足条件跳过测试用例
def
pytest测试用例的前后置,固件
class TestYutong:
workahe=8
@pytest.mark.skipif(reason="无理由") #跳过测试用例
def test_ceshi(self):
@pytest.mark.skipif(workage<8,reason="工作年限小于10年跳过") #满足条件跳过测试用例
def
相关阅读
发表评论