一、测试数据来自文件

1.txt文件测试数据处理

样例

#txt文件处理
#利用open函数以可读方式打开文件,入参可以带相对或绝对路径,用来打开非本目录下的文件
f1=open("author.txt","r",encoding='utf-8')
#用read函数读取文件,读取结果text时字符串类型
text = f1.read()
# 切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。语法a[start:stop],左闭右开。
# 先利用切片去掉首尾中括号,然后用split函数将字符串初步分割数据
result=text[1:-1].split(',')
print(result)
for a in text:
    print(a)
    # 利用切片去掉初步分割数据多余部分(开头空格与英文单引号、结尾英文单引号)
    print(a[2:-1])

2.CSV文件测试数据处理:

(1)导入包

import csv # python自带,无需安装

(2)文件打开:

file1=open(1.csv, 'r', newline='') # “r”:表示以读的方式打开文件;
file2=open(2.csv, 'w', newline='') # “w”:表示以写的方式打开文件;

说明:

“a”:以追加写的方式打开文件,不会覆盖文件原有数据。
 “wb”:表示以二进制写的方式打开文件。
 “newline=''”:打开文件加入该参数,防止写入数据时多写入一空行。
 “lineterminator='\n'”:效果同“newline=''”。

encoding="utf-8":指定以"utf-8"字符集打开文件,防止文件包含中文出现乱码。

(3)文件读取:

l=csv.reader(file1, delimiter=' ',quotechar='|')

跳过首行:读取文件代码后加readers.__next__(),可以跳过读取首行(首行一般为字段名)

说明:

delimiter:指定分隔符,默认为逗号,这里指定为空格

quotechar:表示引用符,当一段话中出现分隔符的时候,用引用符将这句话括起来,以能排除歧义。比如文件以空格分隔,某个元素是个句子,句子单词之间也是以空格分隔,这时就会用中竖线“|”将该元素括起来,防止产生歧义。

读取后的文件l时可迭代对象,可以用for循环逐行处理:

for row in l:

print(row)

(4)文件写入:

spamwriter = csv.writer(file2, delimiter=' ',quotechar='|')
 spamwriter.writerow(['hello world'])

说明:

参数含义同第3节文件读取

写入多个元素时,如果相应每个元素写入一行,方法如下:

import csv
 with open("1.csv","w",newline="") as w:
      sw=csv.writer(w)
     for i in range(5):
          sw.writerow([str(i)+'\n'])

(5)追加写入:

读取文件后再每行后面输入测试结果:row.append("测试通过")。

3.excel文件测试数据处理

(1)利用pandas类库样例

import pandas as pd
def get_userdata():
    # 打开文件并读文件
    df=pd.read_excel('../DDT_test/testcase.xlsx')
    # loc[0].values意思是读取第0行,pandas默认不读取第一行,索引0,即为excel第二行
    row=df.loc[0].values
    print(row)
    # 按列名读取某列数据
    cloum=df['输入参数'].values
    print(type(cloum))
    # 将读取的列数据装换成list格式
    listdata=cloum.tolist()
    # print(type(listdata),listdata)
    return listdata

二、测试数据来自数据

1.处理mysql数据库测试数据样例代码

#*********************************
#试验:通过python脚本获取mysql数据库的数据集合
#前提:
#1、本机或其他机器已经安装了mysql服务器
#2、本机安装了mysql客户端
#3、知道数据库访问用户名和密码
#4、建一个测试数据库,或用一个临时数据库表进行试验即可
#**********************************
#导入类库
import pymysql
def get_db_data():
    #连接数据库
    db=pymysql.connect(host="127.0.0.1",db='jwmall',user='root',passwd='123456',charset='utf8')
    #生成游标对象
    cursor=db.cursor()
    # 执行SQL语句
    cursor.execute("select username,password from mmall_user")
    # 通过fetchall方法获得全部数据
    data=cursor.fetchall()
    print(type(data))
    # 关闭游标
    cursor.close()
    # 关闭数据库链接
    db.close()
    #返回读取数据
    return data

三、pytest框架数据驱动

1.@pytest.fixture()

2.@pytest.mark.parametrize()