序文
DDT:データ駆動型は、単純なポイントは、このようなときに少しポイントログイン入力正常、異常なデータのログとして、テストデータの複数のセットであることを特徴とします。
実際のプロジェクトでは、非常に少ないと自動テストが、それはまた、テストデータExcelを維持するために使用されました
A、DDT
1、インストール:PIP(ここでは私がインストールした)DDTをインストール
C:\ Users \ユーザー管理> ピップはDDTインストール DDT:要件すでに満足で D:\ path_python \ libに\サイト・パッケージ(1.2。1)
2、禅の私達の前の通常のログイン質量の参加を見てください。今必要な口座番号とパスワード、およびデータを1セットのみのログイン、DDTは、データ実行の複数のセットを行うことができます。(ここでは自分が来てみましょう)
#ログ S = requests.session() LOGIN_URL = ' http://127.0.0.1/zentao/user-login.html ' PR = { ' アカウント':' ADMIN ' 、 ' パスワード':' 123456 ' 、 } login_r = s.post(LOGIN_URL、のparams = PR)#パスのparams パラメータ #は、ログインが成功したかどうかと言う R1 = S. GET(「http://127.0.0.1/zentao/doc-browse-1-byModule-0-id_desc-docが。 HTML " ) IF ' の製品メイン図書館' で r1.content.decode(' UTF-8 ' ): 印刷(' ログインが成功' ) 他(印刷:' ログインに失敗しました')
3は、unittestのDDT導入されます。
①まずデータセットの複数のソースを持っている(私は、あなたにも同様のように、ファイルを読むことができるデータJSON独自の定義のセットを書きました!!!)
②テストクラスは、我々はデコレータを追加する必要があります@ ddt.ddt
③テスト機能、またデコレータを追加し、それぞれ*全体のデータ転送上のすべてのデータを転送する必要があります:@ ddt.data(* TEST_DATA)
④注:DDTのパスで使用されるデータのセット、そのデータではなく、TEST_DATAではなく* TEST_DATA
インポート要求、DDT、unittestの データ駆動準備するデータ#1のDDT必要 TEST_DATAを = [ { ' アカウント':' ADMIN '、' PWD ':' 123465 '、' EXP ':' ADMIN ' }、 { ' アカウント':' gsxl ' ' PWD ':' 123321 ' ' EXP ":"gsxl ' }、 { ' アカウント':' XXXX ' ' PWD ':' 654321 ' ' EXP ':' XXXX ' }] #类需要DDT装饰器 @ ddt.ddt クラスTest_xl(たunittest.TestCase): DEFセットアップ(自己): self.s = requests.session() self.s.verify = Falseの ティアダウン(自己)DEF: self.s.close() @ ddt.data( *TEST_DATA)#ユースケースは、テストデータがDDTを使用する必要があり DEF test_001(自己、データを): 印刷(' DDT試験データ:%S '%データ) IF __name__ == ' __main__ ' : unittest.main()#語りました私の通訳は、ユニットテストで実行されます!
4、どのようにあなたがしたい対応する値を取得するには?それはそうでない場合は、彼らが最初に変更され、基礎となるデータ削除チェックの新しい構造を学び、に得ることができるように、それは、辞書、リストのリターンのようなものです。以下のような単純な抽出:
import requests, ddt, unittest # ddt数据驱动所需准备的数据 test_data = [ {'account': 'admin', 'pwd': '123465', 'exp': 'admin'}, {'account': 'gsxl', 'pwd': '123321', 'exp': 'gsxl'},] # 类需要ddt装饰器 @ddt.ddt class Test_xl(unittest.TestCase): def setUp(self): self.s = requests.session() self.s.verify = False def tearDown(self): self.s.close() @ddt.data(*test_data) # 某个用例需要用到ddt的测试数据 def test_001(self, data): # print('ddt测试数据是:%s' % data) user = data['account'] pwd = data['pwd'] exp = data['exp'] print('这是账号:', user) print('这是密码:', pwd) print('这是期望结果:', exp) if __name__ == '__main__': unittest.main() # 告诉解释器我是用unittest运行的!!!