Python and selenium_project articles_data-driven testing

Qual é a função dos testes orientados a dados?
O objetivo é: permitir que o mesmo script use dados de teste diferentes. Deixe que os dados de teste e o script sejam completamente separados. Se vários usuários forem usados ​​para fazer login e os dados de teste a serem registrados estiverem prontos, um script automatizado pode ser implementado.

A estrutura baseada em dados precisa dominar as operações básicas do python em arquivos, vamos falar sobre isso primeiro

(1) Operações gerais de arquivo
1.1 Leitura e gravação de dados de arquivo de texto

# 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 Processamento de arquivos 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.3 arquivo excel

# 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 Operação de arquivo
Json Json é um formato de troca de dados leve, o tipo de dados é: string, legibilidade forte, usado para melhorar a taxa de transmissão da rede, dicionário para json, dumps (), ler e modificar dados 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)

Escreva dados para 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 Processando arquivos xml e yaml

【优先级排后】

1.6 Operação de pasta
A identificação, criação e exclusão de caminhos de arquivo e pasta podem ser usados ​​para fazer alguns julgamentos para evitar a duplicação de dados e diretórios duplicados. Os scripts de shell também podem determinar se você não gosta ou se o python é divertido.

# 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) Através do parâmetro excel, realize a separação do parâmetro e do script
Dois pontos: é definida a função de ler o excel, e definido o log do framework.
Código de função do Excel: functions.py em [python and selenium_projects_project combate real, otimização de código, reconstrução de projeto] .
Código do módulo de registro: há um problema, inúmeras células cerebrais foram mortas pelo módulo de registro. A partir das 16h >>> 22:43, decidi abandonar o functions.py e apenas satisfazer o simples e prático primeiro:

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")

Link do grandão : registro

(3) A estrutura baseada em dados
refere-se principalmente à estrutura de teste de unidade de teste de unidade, HTMLtestRunner, estrutura de DDT

Saída >>> escreva um trecho de código, use pytest e envie um e-mail. Para obter detalhes
, consulte os requisitos P217 : (1) Use DDT + excel para realizar testes repetitivos simples, 220
(2) estrutura de pytest, casos de teste, suítes de teste são todos executados e e-mails são enviados

A estrutura PO está concluída e, em seguida, termine isso, parece um pouco confuso

Acho que você gosta

Origin blog.csdn.net/weixin_45451320/article/details/112691559
Recomendado
Clasificación