Pythonとselenium_projectのarticles_data駆動型テスト

データ駆動型テストの役割は何ですか?
目的は、同じスクリプトで異なるテストデータを使用できるようにすることです。テストデータとスクリプトを完全に分離します。複数のユーザーがログインに使用され、ログインするテストデータの準備ができている場合は、自動化されたスクリプトを実装できます。

データ駆動型フレームワークは、ファイルに対する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.2CSVファイルの処理

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.5xmlおよびyamlファイルの処理

【优先级排后】

1.6フォルダの操作
ファイルとフォルダのパスの識別、作成、削除を使用して、データの重複やディレクトリの重複を防ぐための判断を下すことができます。シェルスクリプトは、それが気に入らないのか、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を読み取る機能を定義することと、フレームワークログを定義することです。
Excel関数コード:[pythonおよびselenium_projects_projectの実際の戦闘、コードの最適化、プロジェクトの再構築]の下の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")

ビッグガイリンク:ロギング

(3)データ駆動型フレームワーク
とは、主にユニットテストユニットテストフレームワーク、HTMLtestRunner、DDTフレームワークを指します。

出力>>>コードを記述し、pytestを使用して、メールを送信します。詳細については
P217の要件
参照してください。(1)DDT + excelを使用して単純な反復テストを実行し、220 (2)pytestフレームワーク、テストケース、テストスイートがすべて実行され、電子メールが送信されます。

poフレームワークが完成し、これを完成させると、少し面倒に感じます

おすすめ

転載: blog.csdn.net/weixin_45451320/article/details/112691559