pytest参数化的两种方式
2024-09-04 02:20:19
1、传统方式
import requests,pytest
from Learning.variable import * # 定义变量
#url = "https://www.baidu.com" class TestClass(object):
global url #在此获取全局变量,并将其设置为TestClass类的全局变量
def setup_class(self):
print("start...") def test_get(self):
#global url #在此获取全局变量,并将其设置为test_get方法内的全局变量
res = requests.get(url=url)
assert res.status_code == 200 if __name__ == '__main__':
pytest.main()
2、pytest推荐模式,即conftest测试数据共享
2.1、在function中使用
# content of test01.py import pytest,requests #将conftest中的com_variable方法传入用例中,不需要导入即可使用
def test_getBaidu(com_variable):
a=requests.get(com_variable['url'])
code = a.status_code
assert code == 200
def test_paas():
pass
# content of conftest.py
import pytest iaas={
'url':'https://www.baidu.com', } @pytest.fixture(scope="module")
def com_variable():
return iaas
2.2、在class中使用
conftest不变,直接在class中的方法入参中传入即可
import requests,pytest
from Learning.variable import * # 定义变量
#url = "https://www.baidu.com" class TestClass(object):
#global url #在此获取全局变量,并将其设置为TestClass类的全局变量
def setup_class(self):
print("start...")
#直接在此传入即可
def test_get(self,com_variable):
#global url #在此获取全局变量,并将其设置为test_get方法内的全局变量
res = requests.get(url=com_variable['url'])
assert res.status_code == 200 if __name__ == '__main__':
pytest.main()
推荐第二种方式!
最新文章
- JavaScript学习总结(二)——闭包、IIFE、apply、函数与对象
- MySQL 从 5.5 升级到 5.6,启动时报错 [ERROR] Plugin 'InnoDB' init function returned error
- 基于2D-RNN的鲁棒行人跟踪
- IOS开发基础知识--碎片26
- 使用Android Studio和Genymotion模拟器搭建Andriod开发环境
- .net变量判断
- SQLite中使用CTE巧解多级分类的级联查询
- 怎么使用CURL传输工具发送get或者post指令
- (转)Linux修改SSH登录欢迎语
- Java编程思想读书笔记(一)【对象导论】
- CEPH RGW集群和bucket的zone group 不一致导致的404异常解决 及 使用radosgw-admin metadata 命令设置bucket metadata 的方法
- Weex开发中的应用小笔记
- Android Studio 学习(三) 广播
- 记录一个chrome 65渲染的bug
- grep -A -B -C 显示抓取的前后几行参数
- Hadoop服务库与事件库的使用及其工作流程
- golang变量的注意
- python制作电脑定时关机办公神器,另含其它两种方式,无需编程!
- diary of laravel
- OverAPI.com – 史上最全的开发人员在线速查手册