什么是单元测试框架?

单元测试框架是在自动化测试或白盒测试中对软件得最小单元(函数,方法)进行测试得框架

单元测试框架分类?

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

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: