2017-09-18 6 views
1

appiumとpabotでRobot Frameworkテストスイートを実行する際に問題があります。Pabot、Appium and reports

私はこのような複数のAndroidデバイス上のいくつかのテストスイートを実行している:

pabot --pabotlib --argumentfile1 phone1.dat --argumentfile2 phone2.dat -v LANG:fr --outputdir output --output basics.xml JustBasics_tests.robot 
pabot --pabotlib --argumentfile1 phone1.dat --argumentfile2 phone2.dat -v LANG:fr --outputdir output --output another.xml LetsRunAnother_test.robot 

私はこのように行う場合、私はいくつかのappiumエラーを得たので、私は、単一のpabot命令ですべてのスイートを実行していません。.. 。WebDriverException: Message: A session is either terminated or not started pabotまたはWebDriverException: Message: A new session could not be created. Details: Problem getting session data for driver type AndroidDriver; does it implement 'get driverData'?

another.xmlおよびbasics.xmlからlog.htmlやreport.html(Jenkinsと連携するため)のようなレポートを作成したいと思います。

私の最初の問題は、basics.xmlとanother.xmlファイルには、2つのデバイスのいずれかからのテスト実行が1つしかないことです。テストケースの実行の両方のデバイスからのデータが必要な場合は、両方のテストケースの実行を含むoutput.xmlファイルを取る必要があります...もちろん、各パボットコマンドの後にoutput.xmlが上書きされます。 rebotだけコピーX回最初のモバイルテストを:

は、だから、僕は、それぞれのOutput.xmlをコピーして、outputX.xmlに名前を変更し、最終的に

rebot output1.xml output2.xml output3.xml .... 

を作るしかし、私は期待のようrebotが機能しないと考えられ

JustBasics
Test_Results_for_phone1
Test_Results_for_phone1

:レポートに私は私のlog.htmlのようなものを持っています

LetsRunAnother
Test_Results_for_phone1
Test_Results_for_phone1

私が間違って何をしているのですか?

私の2番目の問題は、テスト実行(エラーまたはアプリケーションのクラッシュなど)が失敗したときに、ログファイルにスクリーンショットがないことです。それらはすべてlog.htmlのルートディレクトリを指しますが、画像はpabots_results/X/TestSuiteName/appium-screenshoot-x.pngのようなパスにあります ここでも何が間違っていますか?画像について何かやらなければならないのか、それともパボットが単独で行うべきなのですか(pabot.pyのファイルの終わり近くに、_copy_screenshotsという関数があります)。

この物語の邪魔なことはそこにありますパボに関するドキュメンテーションはたくさんありません。そして私が何か間違っているのか、パボーにバグがあるのか​​、私は知らない!

私を読んでいただきありがとうございます;)!

UPDATE:すべてのこれらの問題を回避するために、私はこの小さなツールを書いた:あなたのスクリーンショットの問題についてはhttps://github.com/bastienjalbert/aptr

+0

感謝から

rebot --merge output1.xml output2.xml output3.xml .... 

を使用したいと思うでしょう考えることができますあなたの助言のために。私はあなたに次の時間を教えてくれるようにしようとします –

答えて

0

を、私はあなたがジェンキンスロボットフレームワークのプラグインを使用していると仮定しています。ここでは、テストの実行後にプラグインが出力、レポート、およびログを現在のビルドのワークスペースに移動し、ビルドのダッシュボードに表示します。一方、スクリーンショットはデフォルトでは移動されません。

ジョブ構成では、post-build actionsの下には、publish Robot Framework test resultsが必要です。あなたのテストの実行後に、今すぐあなたのセレンのスクリーンショットと一致するパス(おそらくちょうど*.png

を追加し、すべてのオプションを表示するために、高度なボタンをクリックすると、この分野ではother files to copy

としてフィールドをラベル付けしている必要がありますプラグインはあなたのスクリーンショットをlog.htmlと同じ場所に移動し、ログに表示することができます。

あなたが実際にこれを見つけて、あなたに関連する可能性がある詳細は、プラグインのpage

+0

Pabotは結果のサブフォルダにスクリーンショットがあるかどうかチェックしません(https://github.com/mkorpela/pabot/blob/cc53c200999447af1538534776da6a173177b7fe/pabot/pabot.py)。 #L497)。いずれのスクリーンショットもpabot_resultsフォルダからコピーされません。私は、スクリーンショットをコピーするためにパボに少しハックを書いた。私はジェンキンに頼ってレポートを正しく生成したくない。 –

0

に私はあなたが

rebot --help 

(...) 
Options 
======= 

-R --merge    When combining results, merge outputs together 
          instead of putting them under a new top level suite. 
          Example: rebot --merge orig.xml rerun.xml 
(...) 
+0

同じテストスイートからの「出力をまとめて」。マージ引数は、同じテストスイートでない場合、2つの出力ファイルをマージすることはできません。 –