私のテストケースは簡単です。私はアプリ内に状態があります。プッシュ通知が受信されたときはいつでも、私はAndroidデバイスにローカルに保存したパラメータに対してエクストラのパラメータをチェックする必要があります。これらのパラメータ値が一致しない場合は、プッシュ通知を無視する必要があります。そうでなければ、デバイスに表示されます。Appiumのテストケースで引数付きのadbを使用してブロードキャストを送信するにはどうすればよいですか?
私はすべてを実装して正常に動作することをテストしたので、将来はこのテストを自動化できるようにテストケースを作成したいと思います。私はテストを自動化するためにAppiumでJUNITテストケースを使用しています。テスト時には、adbを使用してプッシュ通知をトリガーするのが簡単です。これは私がターミナルからトリガーするために使用するコマンドです。
adb shell am broadcast -a com.google.android.c2dm.intent.RECEIVE -n package.name/com.google.android.gms.gcm.GcmReceiver --ei "pw_msg" 1
..期待どおりに動作します。私のAppiumのテストケースでは、私はこれが好きです。
Runtime.getRuntime().exec("adb shell am broadcast -a com.google.android.c2dm.intent.RECEIVE -n package.name/com.google.android.gms.gcm.GcmReceiver --ei \"pw_msg\" 1");
..プッシュ通知をトリガーしていないようです。
Runtime.getRuntime().exec("adb shell svc data disable")
Runtime.getRuntime().exec("adb shell am start -n package.name/package.name.MainActivity")
などのコマンドがうまく動作するため、Appiumテストケースからadbコマンドを実行できることを確認できます。ブロードキャストadbコマンドで何が問題になっていますか?私は間違って書いていますか?いくつかの制限や何かにぶつかっていますか?