python与selenium_项目篇_数据驱动测试

数据驱动测试的作用?
目的在于:可以让相同的脚本使用不同的测试数据。让测试数据与脚本完全分离。如使用多种用户来登录,准备好要登录的测试数据,一个自动化脚本即可实现。

数据驱动框架需掌握python对文件的基本操作,先说这个

(1)一般文件操作
1.1文本文件的读取、写入数据

# coding=utf-8

# read() 一次性读取整个文件,读取整个文本
f = open('D:\\ui_date\\test.txt','r').read()
print(f)

# readline() 逐行读取,文件大用这个,读取文本中的前2个字符串
f = open('D:\\ui_date\\test_01.txt','r').readline(2)
print(f)

# readlines() 快速一次性读读取文本内容,并将结果存储在列表中。
txt = open('D:\\ui_date\\test_01.txt','r').readlines()
print(type(txt))
print(txt)

# 写内容
f = open('D:\\ui_date\\test_02.txt','w')
f.write('写入文件,w参数打开文件权限\n')
f.write('第一行末尾加换行符哦')
print(1)

1.2处理CSV文件

import csv
# reader函数读取打开的文件,并赋值给变量c
c = csv.reader(open('D:\\ui_date\\test_03.csv','r'))
print(type(c))
# 打印第一列的内容
for cs in c:
    print(cs[0])
# print(c)
# 打印所有列的内容
for cs in c:
    for i in range(len(cs)):
        print(cs[i])

1.3excel文件

# coding=utf-8
from copy import copy
import xlrd  # xlrd全名:read excel
# noinspection PyUnresolvedReferences
import xlwt  # xlwt全名:write excel
# noinspection PyUnresolvedReferences
from Tools.demo import vector

# 读取表中的数据
xls = xlrd.open_workbook('D:\\ui_date\\test_04.xls')  # 读取excel的值
sheet2 = xls.sheet_by_index(0)  # 通过索引值获取sheet页
print(sheet2.row_values(1)[1])  # 查第一列第二行的单元格数据
# print(sheet2.nrows) # 表格总行数
# print(sheet2.ncols) # 表格总列

# 添加数据,首先>>>copy一张新表,给个变量
xls01 = copy(xlwt.Workbook('D:\\ui_date\\test_04.xls'))
# 给excel表添加sheet页
sheet3 = xls01.add_sheet('test_test')
# 给单元格添加数据
sheet3.write(3,3,"tfjiao")
sheet3.write(3,4,"selenium course")
# 把copy后修改的表放在D盘下
xls01.save("D:\\ui_date\\test_04_01.xls")
print('ok')

1.4 Json文件操作
Json是一种轻量级的数据交换格式,数据类型是:字符串,可读性强,用于提升网络传输速率,字典转json,dumps(),json数据的读取、修改。

import json
# 将python中字典 转成 json字符串
json_data = {
    
    'j1':1,'j2':2,'j3':3}
print(type(json_data))
print(json_data)
# 数据类型从 字典类型数据 换成 字符串类型数据
json_1 = json.dumps(json_data)
print(type(json_1))
print(json_1)

# 跟上面相反,json字符串>>>python对象(字典)
json_data1 = '{"j1": 1, "j2": 2, "j3": 3}'
json_2 = json.loads(json_data1)
print(json_2)

往json中写入数据

import json
filename = open('D:\\ui_date\\www.json','w')
data = {
    
    'name':'kingsan','age':'30'}
# 将字典类型数据直接入json
json.dump(data,filename)

# 第2种,在f文件中写入字符串,先通过dumps抓换成字典
with filename as f:
	f.write(json.dumps(data))

1.5处理xml、yaml文件

【优先级排后】

1.6 文件夹操作
文件、文件夹路径的识别、创建、删除文件夹,可以用来做一些判断,防止数据重复,有重复目录。shell脚本也可以判断,不喜欢,还是python好玩。

# coding=utf-8
import os

# 打印当前执行脚本所在目录
print(os.getcwd())
# 如果路径存在,则返回true
print(os.path.exists('D:\\ui_date\\'))
# 判断当前路径是否有一个文件,有,则true
print(os.path.isfile('D:\\ui_date\\test_05.json'))
# 在当期目录下创建‘test’单个文件夹
os.mkdir('D:\\ui_date\\osmkdir')
# 创建多级目录
os.makedirs('D:\\ui_date\\osmkdir')
# 删除多级目录
os.removedirs('/PycharmProjects/Sstone/tt.png')

(2)通过excel参数,实现参数与脚本分离
2点:定义了读取excel的函数、定义了framework log框架日志。
excel函数的代码:【python与selenium_项目篇_项目实战、代码优化、项目重构】下的functions.py。
日志模块代码:有点问题,被日志模块杀死了无数脑细胞,从下午4点>>>22:43,我决定放弃functions.py里面的,先满足简单实用就行:

import logging
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")

大佬链接:logging

(3)数据驱动框架
主要说的是unittest单元测试框架、HTMLtestRunner、DDT框架

输出>>>写一段代码,使用pytest并发送邮件。具体参考P217
要求:(1)利用DDT+excel实现简单的重复性测试,220
(2)pytest框架,测试用例,测试套全部执行,并发送邮件

po框架搞完了,再完成这个,感觉有点乱了

猜你喜欢

转载自blog.csdn.net/weixin_45451320/article/details/112691559