pytest参数化的两种方式

一、传统方式

 1 import requests,pytest  2 from Learning.variable import *
 3 
 4 # 定义变量
 5 #url = "https://www.baidu.com"
 6 
 7 class TestClass(object):  8     global url    #在此获取全局变量,并将其设置为TestClass类的全局变量
 9     def setup_class(self): 10         print("start...") 11 
12     def test_get(self): 13         #global url #在此获取全局变量,并将其设置为test_get方法内的全局变量
14         res = requests.get(url=url) 15         assert res.status_code == 200
16 
17 
18 if __name__ == '__main__': 19     pytest.main()

二、pytest推荐模式,即conftest测试数据共享

2.一、在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.二、在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()

 

推荐第二种方式!

相关文章
相关标签/搜索