セレン--- POMモード、ユニットテストフレームワーク

A .POMモード

POMの構造:

プロジェクト名のファイル:

共通フォルダ:
base.pyファイル:セレンの第二のパッケージ:
1.ブラウザ
を開きアドレス
3.位置決め要素
4.操作子

ページフォルダ:
1.各プロジェクトのページパッケージの場合

2.pageフォルダ:ページは3つの分割された
プレゼンテーション層:ページ要素の可視
操作の層:の可視要素の動作
ビジネス層:オペレータによってシーン/サービス層組成物を形成します

3.pageカテゴリ:
書き込み内容:
①性能封入層:生産ロケータ
②レベル包装作業:方法ポジショナの各要素を操作する、操作フォーム用
③page基本クラスの継承

スクリプトフォルダ:
ストアのテストケースを使用した患者のunittestの管理に
テストデータに関連している場合のみ、手順に関係1.、死を書き込まれるデータは、
アサーションの決定2.
テストデータの柔軟性に3フォーカス

二.unittestフレームワーク

1.役割:
仕様書き込み自動テスト
実行管理の自動化テストケース

2.基本概念
テストフィクスチャ:テストフィクスチャとテストデータのクリーンアップ処理前の試験データ作成
テストスイート:実行されるべきテストケースのテストスイートボリュームコレクション
フレームワークユニットテスト要件を満たすためにテストケースの準備のテストケースコア部:テストケースを
テストの実行:テスト・ケースのテストスイートコレクションを実行するためのテストランナー

3.特別な方法
セットアップ:PYファイルでは、実行前にテストケースを実行し、テストケースの数、実行する回数
ティアダウンを:PYファイルで、その後、テストの実行後に実行、テストケースの数、実行回数回
setUpClassは:PYファイルで、最初のテストクラスの実装前に行われ、次のものが必要に@classmethod装飾
tearDownClass:PYファイルにして、テストの実行クラスの後に実行され、あなたが飾る@classmethodに必要

例4注記で製造した
①テストファイル名は、テスト開始
Tsetの開始②テストクラス名
テストを開始③テストメソッドの名前を
④テストケースの実行順序:ソート名利用の場合、ASCII文字セットで

5.アサーション
構文:

assertEqual(a,b,msg="当断言失败时输出")
#判断a和b是否相等,如果相等则断言成功,反之断言失败-->用例执行失败
assertTrue(x,msg="当断言失败时输出")
#当条件x为True时.断言成功,反之断言失败-->用例执行失败

アサーションは、場所を追加:テストケースを追加します

注:
アサーション、唯一失敗したアサーションを求めるメッセージが表示されます
キーワードアサーションを失敗しました:AssertionErrorをし、失敗した、ではない符号誤りユースケースを表し

5.テストスイート&テスト実行
①テストスイート:

unittest.defaultTestLoader

②テストの実行

unittest.TxetTestRunner

書き込み手順:
テスト・ケース・ストレージ・パスを追加するには、
テストスイートに追加のテストケース実行される
テストケースの実装を

6.テストレポート
生成されたHTML形式のテストレポート
手順
①パイソンHTMLTestRunnerPlugins.pyインストールディレクトリ/ libのディレクトリにファイルをコピー
②およびインポートunittestのHTMLTestRunnerPlugins
③決意テストストレージパス
④テストレポートは、ストレージ・パス決定
テストレポートを命名⑤名前を所定のテストレポートを開き、書き込まれるべき内容
⑥は内テストスイート、テストを実行する必要があります
⑦テストの実行、およびテストレポート生成HTML形式
例:

# 1.导入unittest和HTMLTestRunnerPlugins
import unittest
import HTMLTestRunnerPlugins
import time
import os
# 2.确定测试用例存放路径
case_dir = "./script"
# 3.确定测试报告存放路径
report_dir = "./report"
# 4.命名测试报告的名,打开预定的测试报告,准备写入内容
# 以当前时间来命名测试报告
now = time.strftime("%Y-%m-%d %H_%M_%S")
report_name = now + "report.html"  # 测试报告名称
with open(os.path.join(report_dir,report_name),"wb") as fp:
# 5.将需要执行的测试用例,放入测试套件中
    discover = unittest.defaultTestLoader.discover(case_dir)
# 6.执行测试用例,并生成html格式的测试报告
    runner = HTMLTestRunnerPlugins.HTMLTestRunner(title="ECShop自动化测试报告",
                                                  description="登录,注册,购物车功能",
                                                  stream=fp,
                                                  verbosity=2)
    runner.run(discover)

7.unittestパラメトリック
①ddtモジュールパラメータ化のための
テストデータの②調製
@ ddt.ddt:③試験クラス使用する前に
、使用試験前④を

@ddt.data(*数据源)
def 测试用例(self,data)
#准备数据为列表嵌套字典格式
@ddt.data(*数据源)
@ddt.unpark
def 测试用例(参数)
#适用于数据源为列表嵌套列表格式

8.バージョンのファイル・データ・ソース

"""
1.读取csv文件/excel表格
2.使用pandas模块读取
3.下载pandas模块
    pip install pandas
    pip install xlrd
"""
import pandas
import os


class OperationData:
    def __init__(self,filename):
        """
        os.path.dirname(__file__)  # 表示当前路径
        os.path.abspath(__file__)   # 表示绝对路径
        os.path.dirname(os.path.dirname(__file__))  #  表示文件所在上级目录
        :param filename: 文件名
        """
        base_path = os.path.dirname(os.path.dirname(__file__)) + "/data"  # 回到项目根目录下,进入data目录
        file_path = os.path.join(base_path,filename)
        if filename.split(".")[-1] == "csv":  # 通过判断文件后缀是否是csv分流
            self.file = pandas.read_csv(file_path)  # 读取csv文件
        else:
            self.file = pandas.read_excel(file_path)  # 读取excel表格

    def get_data_to_dict(self):
        """将数据读取成列表嵌套字典格式[{},{},{}]"""
        # data = []  # 创建一个空列表存放数据
        # for i in self.file.index.values:  # 遍历所有的行
        #     row_data = self.file.loc[i].to_dict()  # 将每一个行的值转化成字典格式
        #     data.append(row_data)
        #
        # return data
        # 列表生成器
        return [self.file.loc[i].to_dict() for i in self.file.index.values]

    def get_data_to_list(self):
        """将数据读取成列表嵌套列表格式[[],[],[]]"""
        return self.file.values.tolist()


if __name__ == '__main__':
    oper = OperationData("userdata.xls")
    # data = oper.get_data_to_dict()
    data = oper.get_data_to_list()
    print(data)



公開された26元の記事 ウォンの賞賛0 ビュー289

おすすめ

転載: blog.csdn.net/weixin_46009577/article/details/104302831