pytest参数化实现DDT:读取数据库数据
Posted 永远不要矫情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest参数化实现DDT:读取数据库数据相关的知识,希望对你有一定的参考价值。
在这篇文章里,主要以mysql数据库为例。读取mysql数据库的数据主要分为三步:
1.安装mysqlclient模块
2.获得数据库连接
3.查询数据
1.安装mysqlclient模块
命令如下:
pip install mysqlclient
2.获取数据,实现DDT
代码如下:
import MySQLdb
import pytest
conn = MySQLdb.connect( #获取一个conn
user='root',
passwd='123456',
host='localhost',
port=3306,
db='test_ddt'
)
def get_data():
query_sql = 'select id,name,age from person'
lst = []
try:
cursor = conn.cursor() #获取一个游标
cursor.execute(query_sql) #游标执行sql语句
r = cursor.fetchall()
for x in r:
lst.append(x)
return lst
finally:
cursor.close()
conn.close()
@pytest.mark.parametrize('id, name, age', get_data()) #多个字段在同一个引号下,用逗号分隔
def test1(id, name, age):
print(id, name, age)
if __name__ == '__main__':
pytest.main(['-sv','test_mysql.py'])
数据库中person表的数据如下:
代码执行的结果如下:
test_mysql.py::test1[1-lily-23] 1 lily 23
PASSED
test_mysql.py::test1[2-bob-24] 2 bob 24
PASSED
test_mysql.py::test1[3-lisa-21] 3 lisa 21
PASSED
以上是关于pytest参数化实现DDT:读取数据库数据的主要内容,如果未能解决你的问题,请参考以下文章
pytest学习和使用12-Unittest和Pytest参数化详解