Tablibは、テストケースの管理を自動化するために使用し、他のツールを学ぶことはありません

あなたはpythonの自動テストにそれを学ぶの?あなたは、要求データベースを聞いたことありますか?tablibは1つがサードパーティのライブラリの共通のデータ・セット・ライブラリーにそれらを回し、Excelなどのさまざまなファイル形式を操作する多年生のメンテナンスを要求できることです。

主要なデータ形式のtablibのサポートは、以下のとおりです。

  • XLS、オフィスの古いバージョンでは、ファイル形式をエクセル、
  • XLSXシリーズ、新しいオフィスのファイル形式。
  • JSON
  • YAML
  • HTML
  • CSV
  • DF、データフレームのパンダは、あなたがパンダをインストールする必要があります

つまり、異なるデータ・フォーマットは、汎用tablibリレーショナルデータ形式に変換し、その後シームレスに様々なフォーマットを切り替えることができるされています。リレーショナルデータ形式は何ですか?例えば:

  • MySQLデータ、フィールド名に対応するデータの各行。あなたは、Excelに簡単にデータベースのデータを照会するために、このライブラリを使用することができます。
  • Excelデータは、各行がヘッダを有します。
  • JSON、およびキー値のデータに
  • これは、上記と同様です。

前のエクセルのライブラリーを操作するいくつかの問題の一部を解決するために、この機能の共通データフォーマットをtablib。

いくつかの人気のライブラリのExcelの操作

  • xlrd
  • openpyxl

これらのライブラリは制限があり、非常に良いライブラリです。

1、xlrd問題。彼は唯一の書き込みができない、読むことができます。あなたは、別のインストールベースを記述する必要があります。

2、問題openpyxl。XLSXシリーズのみ読み取りと書き込みをサポートしています。ほとんどが今、このExcel形式を使用しているため、その問題が実際に無視することができますが、あなたのオフィスソフトウェアは、比較的古い場合のみ、XLS形式で、ライブラリが占有されることはありません。

tablibインストール

1、インストールがtablibインストールPIP

2、導入輸入tablib

コアの概念

tablib.Dataset()  # 相当于 Excel 中的 sheet
tablib.Databook()  # 相当于 Excel 中的 workbook 工作簿

データセットは、はじめに

小さな例を見てください:

URL 方法 予想
lemon.ke.qq.com 取得する 成功
lemonban.com 役職 成功

URL、方法、予想されるが、実際には、我々はフィールド名を呼んで、データベース内の各列の名前テーブルヘッダのヘッダテーブルです。次の行はデータです。

Excelが唯一あなたがデータを必要とするデータ、ヘッダヘッダテーブル名とタイトルを準備する必要があり、非常にシンプルを作成します:

import tablib

# 表各列的标题 header
headers = ['url', 'method', 'expected']

# 需要存到 excel 的数据
data_list = [
    ['https://lemon.ke.qq.com', 'get', '成功'],
    ['https://lemonban.com', 'post', '成功']
]

# 生成数据
data = tablib.Dataset(*data_list, headers=headers,title='测试用例')
print(data)

印刷この次のとおりです。

エクセルとして保存

Excelドキュメントとして保存するには、読んで、その上に書くように通常のファイルとして動作し、またはデータの内部data.xls data.xlsxプロパティを記述するだけです:

with open('demo.xls', 'wb') as f:
    f.write(a.xls)

with open('demo.xlsx', 'wb') as f:
    f.write(a.xlsx)

注意:モードはWBバイナリモードが必要です

結果はこのように保存された後:

データブック

データブックは、ブックの概念に似ている、それが実際に必要とされるパラメータは、上記のDataSetをデータブック。データセットのExcelだけで一つのテーブルには、十分にある場合は、複数のテーブルがある場合:

book = tablib.Databook([data, data2])

with open('demo_book.xls', 'wb') as f:
    f.write(book.xls)

スプレッドシートのインポート:import_set

そして、読み出し動作に続いて、Excelに書き込み、Excelファイルを読み込むと、通常のファイルの読み書きやimport_set方法と同様の呼び出しです。

with open('demo.xls', 'rb') as f:
    # 接受 2 个参数,读出来的数据和读取的文件格式
    data = tablib.import_set(f.read(), 'xls')
    print(data)

# 或者采用第二种方式
with open('demo.xls', 'rb') as f:
    data = tablib.DataSet().load(f.read(), 'xls')
    print(data)

自動テスト用のデータを取得します

実際の戦闘の例では、自動化されたテスト手順を実行し、ファイルデータをエクセルます:

def api_tester(url, method, expected):
    print("正在测试{},请求方法{}, 预期结果{}".format(
            url, method, expected))

with open('demo.xls', 'rb') as f:
    # 接受 2 个参数,读出来的数据和读取的文件格式
    data = tablib.import_set(f.read(), 'xls')
    print(data)
    for i in data:
        api_tester(*i)

インポートブック

データセットと同じの操作:

with open('demo.xls', 'rb') as f:
    # 接受 2 个参数,读出来的数据和读取的文件格式
    data = tablib.import_book(f.read(), 'xls')
    print(data)

# 或者采用第二种方式
with open('demo.xls', 'rb') as f:
    data = tablib.DataBook().load(f.read(), 'xls')
    print(data)

概要

この私たちはtablibの中核となる概念に精通しています:

  • データブック
  • データセット
  • 読書、import_set、import_book
  • 書く、書きます

私たちは、次の順位とデータ操作だけでなく、その機能の一部になります。

おすすめ

転載: www.cnblogs.com/wagyuze/p/11102382.html