测试框架DDT技术说明:
常见的DDT技术:
数据结构:
列表
字典
json串
文件:
txt
csv
excel
数据库:
数据库链接
数据库提取
参数化:
@pytest.mark.parametrize()
@pytest.fixture()
列表:
定义
list=[1,2,3,4,5]
读取
list(1)
追加
list.append()
字典:
定义
d = {'username':'zhang','password':'123456'}
读取
d['username']
for key in d:
print(key,d[key])
追加
d['moble']="1555255555"
json串:使用的时候需要导入库import json
读取
先转换为字典:d =json.load(d)
DDT——txt文件读取:
打开TXT文件:
file = open('文件','r',encoding='utf-8')
读取文件:
file.read()
写入文件内容
file1 = open('文件','aw')
file1.write('内容')
关闭文件:
file.close()
file1.close()
for i in file:
print(i)
实际使用的时候在class上面定义一个方法用来获取TXT文件并返回列表
然后再需要参数化的方法上使用@pytest.mark.parametrize('参数名',调用获取txt方法)
可以写一个公共的方法直接调用就可以
1、单独写一个文件中,调用的时候需要把文件名、包名方法名导入【适用于少量的方法】
2、使用公用的包com_DDT存放单独的文件,然后把方法写入文件。 脚本调用之前需要把文件和方法导入[常用]
3、更方便的方法——conftest.py文件
要求:
文件名称是固定的:conftest.py
conftest.py文件所在的目录必须存在__init__.py文件
conftest.py文件不能被其他文件导入
所在的同目录文件在运行前都会执行一下conftest.py文件
import pytest
@pytest.fixture(scope='session')
def get_txt():
f = open('D:\\121.txt', 'r', encoding='utf-8')
txt = f.readlines()
for i in txt:
return txt
f.close()
使用的时候直接引用方法的方法名就可以,不要加()
===========================================DDT技术小结=================================================
一、读取列表、字典、json串、txt文件中的数据
二、读取后数据内容在pytest中使用
同一py文件
来自不同的py文件
从公共数据层拿数据
常用的是使用@pytest.mark.parametrize(''.'')传入数据
也可以使用conftest.py文件中读取数据然后其他文件调用方法+固件
如果是需要传参则需要使用固件@pytest.fixture()
================================================结束======================================================