2016-03-23 10 views
1

私はスペイン語を話します。私の英語は申し訳ありません。私はモバイルアプリを持っていて、私はawsデバイスファームを使って自動化テストをしたいと思っています。私はMacで、Androidアプリで簡単なテストをしようとしています。ログインボタンをタップし、ユーザー名とパスワードを入力してログインします。 appiumを使用してテスト用のPythonコードを作成しています。その後、.apkとzipファイルをawsにアップロードしますが、常に失敗します。私はPythonで新しく、私は私を助ける例を見つけることができませんでした。amazon Webサービスの自動テストにPythonを正しく使用する方法

私はhttp://docs.aws.amazon.com/es_es/devicefarm/latest/developerguide/test-types-android-appium-python.htmlのすべての手順を実行しますが、テストを実行するだけで失敗し、スクリーンショットを取得しません。私はAWSデバイスの二軍のために働く

from selenium.webdriver.firefox.webdriver import WebDriver 
    from selenium.webdriver.common.action_chains import ActionChains 
    import time 
    import os.path 
    import unittest 
    from selenium import webdriver 

    success = True 
    desired_caps = {} 
    desired_caps['appium-version'] = '1.0' 
    desired_caps['platformName'] = 'Android' 
    desired_caps['platformVersion'] = '5.0.1' 
    desired_caps['app'] = os.path.abspath('/Users/developer/Documents/AWS/workspace/APK/Squeeze.apk') 
    desired_caps['appPackage'] = 'com.example.mkim.aut' 
    desired_caps['appActivity'] = 'com.example.mkim.aut.SuccessfulLogin' 

    wd = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps) 
    wd.implicitly_wait(60) 

    screenshot_folder = os.getenv('SCREENSHOT_PATH', '') 
    wd.save_screenshot(screenshot_folder + "/screenshot.png") 


    def is_alert_present(wd): 
     try: 
      wd.switch_to_alert().text 
      return True 
     except: 
      return False 

    try: 
     #self.driver.save_screenshot(screenshot_folder + "/screenshot.png") 
     wd.execute_script("mobile: tap", {"tapCount": 1, "touchCount": 1, "duration": 0.5, "x": 666, "y": 1519 }) 
     wd.save_screenshot(screenshot_folder + "/screenshot1.png") 
     wd.find_element_by_xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[1]").click() 
     wd.execute_script("mobile: tap", {"tapCount": 1, "touchCount": 1, "duration": 0.5, "x": 121, "y": 726 }) 
     wd.find_element_by_name("(null)").send_keys("[email protected]") 
     wd.execute_script("mobile: tap", {"tapCount": 1, "touchCount": 1, "duration": 0.5, "x": 191, "y": 919 }) 
     wd.find_element_by_name("(null)").send_keys("Password") 
     wd.execute_script("mobile: tap", {"tapCount": 1, "touchCount": 1, "duration": 0.5, "x": 563, "y": 1079 }) 
    except: 
      wd.quit() 
      if not success: 
       raise Exception("Test failed.") 
+2

ヤフーの[私のストリームオーバーフロー?español](http://es.stackoverflow.com)? –

答えて

2

これはの.pyコードです。

  1. あなたはMacを使用していると述べました。命令hereによれば、非ユニバーサルホイールが含まれている場合は、テストをパッケージ化するためにLinux x86_64マシンを使用する必要があります。また、ネイティブのライブラリ依存関係を持つホイールがないことを確認したい場合もあります。

  2. あなたは成功したコマンドを使用して、ローカル環境でテストを検出することができるはずは

    py.testは--collect専用/

  3. あなたのコードは、あなたが希望の機能を設定していることを示してテストします。デバイスファームでテストを実行するデバイスとOSのバージョンを選択しているので、コードからこれらの機能を削除する必要があります。ドライバコンストラクタに渡される空の望ましい機能オブジェクトを持っているだけです。

    desired_caps = {}

    ドライバーコンストラクタを使用する必要が
  4. WD = webdriver.Remote

  5. スクリーンコードは

    screenshot_folderなければならない( 'http://127.0.0.1:4723/wd/hub' は、desired_caps) = os.getenv( 'SCREENSHOT_PATH'、 '/ tmp')

  6. 最後に、コードがローカルで実行されていることを確認します。ホイールハウスフォルダの下にホイールがありません。指示に従って、_MAC_という名前の依存関係があります。

関連する問題