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)