python自动化笔记:pytest框架

注:学习笔记,欢迎指正

一、pytest介绍

1、基于python的单元测试框架,它可以和selenium,requests,appium结合自身实现自动化测试
2、实现用例跳过和失败用例重跑
3、可以结合allure_pytest插件生成allure报告
4、方便和jenkins实现持续集成
5、有很多强大的插件
pytest-html 生成测试报告
pytest-xdist 多线程执行测试用例
pytest-ordering 改变测试用例执行顺序
pytest-rerunfailures 失败用例重跑

安装所需的插件方法:
项目根目录下创建requirements.text,如下

pytest-html
pytest-xdist
pytest-ordering
pytest-rerunfailures
allure-pytest

通过命令行输入 pip install -r requirements.text

二、测试用例命名规则

2.1、pytest命名规则

1、模块名必须以test_开头或者_test结尾。
2、测试类必须以Test开头,并且不能带有init方法。
3、测试用例必须以test_开头。

2.2、python命名规范

1、模块名:一般全小写:多个英文之间用_隔开。
2、类名:类名一般是首字母大写
3、方法名:一般全小写:多个英文之间用_隔开。

三、pytest运行方式

3.1、主函数方式

import pytest

class TestApi:

    def test_sheshou(self):
        print("鲁班")

    def test_fashi(self):
        print("安琪拉")

if _name_ == '_main_':
    pytest.main()

常见参数

参数 描述 案例
-v 输出更加详细的信息,比如文件和用例名称等 pytest.main([‘-v’])
-s 输出调试信息。打印信息等 pytest.main([‘-s’])
–reruns N 失败重跑N次(N是数字)
–x 只要有一个用例执行失败,就停止执行测试
–maxfail=N 出现N个失败就终止测试(N是数字)
–html=report.html 生成html的测试报告
-n 多线程
-k 运行测试用例名称中包含指定字符串的用例 ,可以使用and或or pytest.main([‘-vs’,‘-k’,'one or two’])

指定模块运行

if _name_ == '_main_':
    pytest.main(['-vs','testcases/test_api2.py'])

指定整个文件夹运行

if _name_ == '_main_':
    pytest.main(['-vs','testcases/'])

通过node id的方式运行测试用例。

if _name_ == '_main_':
    pytest.main(['-vs','testcases/test_api.py::TestApi::test_sheshou'])

3.2、命令行方式

3.3、通过pytest.ini的配置文件运行(常用)

注:不管是命令行还是主函数都会读取这个配置文件

pytest.ini:全局配置文件,通常放在项目的根目录下,用于改变pytest的运行方式和设置配置信息

[pytest]
addopts = -vs 
testpaths =testcases/
python_files = test_*.py  
python_classes = Test* 
python_functions = test  
markers =              
  smoke:冒烟用例     # 中文可有可无,标记字段说明    
  usermanage
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值