ども。LDI品質管理部の仙波です。 スマホアプリの自動テストを担当しています
前回はShiratesを使用してAndroidの設定アプリで自動入力サービスを無効にする手順を自動テストとして自動化しました。
今回はAndroidの設定アプリでプロキシ設定/解除する手順を自動化する方法を紹介します。
前提環境
Shiratesはローソンデジタルイノベーションが作成したスマホアプリ用の自動テストツールです。 自社で運用していますが、オープンソースソフトウェアとして公開しているのでどなたでも利用できます。
前回記事の内容を実施して自動テスト環境を構築しているという前提で以下の説明を行います。
Androidのプロキシを設定する
以下の手順を自動化してみます。
ネットワークとインターネット
をタップする- `インターネット*をタップする
接続済み
をタップする変更ボタン
をタップする
詳細設定
をタップするなし
をタップする手動
をタップするプロキシのホスト名の入力欄
をタップする
10.0.2.2
を入力するプロキシポートの入力欄
をタップする8080
を入力する保存
をタップする接続済み
が表示されていることを確認する
上記手順を表にまとめると以下のようになります。
No | アクション | セレクター |
---|---|---|
1 | 設定アプリを起動する | |
2 | ネットワークとインターネット をタップする |
ネットワークとインターネット |
3 | インターネット をタップする |
インターネット |
4 | 接続済み をタップする |
接続済み |
5 | 変更ボタン をタップする |
@変更 |
6 | 詳細設定 をタップする |
詳細設定 |
7 | なし をタップする |
なし |
8 | 手動 をタップする |
なし |
9 | プロキシのホスト名の入力欄 をタップする |
#proxy_hostname |
10 | 10.0.2.2 を入力する |
|
11 | プロキシポートの入力欄 をタップする |
#proxy_port |
12 | 8080 を入力する |
|
13 | 保存 をタップする |
保存 |
14 | 接続済み が表示されていることを確認する |
接続済み |
テストクラスの作成
src/test/kotlin
フォルダ下にSetProxy
という名前でクラスを作成します。- 下記内容に編集します。
import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Order import org.junit.jupiter.api.Test import shirates.core.configuration.Testrun import shirates.core.driver.branchextension.ifCanSelect import shirates.core.driver.commandextension.* import shirates.core.testcode.UITest @Testrun("testConfig/android/androidSettings/testrun.properties") class SetProxy : UITest() { @Test @Order(10) @DisplayName("プロキシを[10.0.2.2:8080]に設定する") fun s1() { scenario { case(1) { condition { it.terminateApp() .launchApp() }.action { it.tap("ネットワークとインターネット") .tap("インターネット") .tap("接続済み") .tap("@変更") .ifCanSelect("詳細設定") { it.tap() } .ifCanSelect("なし") { it.tap() .tap("手動") } .tapWithScrollDown("#proxy_hostname") .sendKeys("10.0.2.2") .tapWithScrollDown("#proxy_port") .sendKeys("8080") .tap("保存") }.expectation { it.exist("接続済み") } } } } }
テストコードの実行
- テストコードを右クリックして
Debug
を選択します。 - テストの実行が正常に完了するとコンソールにログ出力先のリンクが出力されます。リンクをクリックするとフォルダが開きます。
- Report(Simple)を開きます。
Androidのプロキシ設定を解除する
以下の手順を自動化してみます。
ネットワークとインターネット
をタップする- `インターネット*をタップする
接続済み
をタップする変更ボタン
をタップする
手動
またはプロキシを自動設定
が設定されている場合はタップするなし
をタップする保存
をタップする- 上記以外の場合は
キャンセル
をタップする 接続済み
が表示されていることを確認する
上記手順を表にまとめると以下のようになります。
No | アクション | セレクター |
---|---|---|
1 | 設定アプリを起動する | |
2 | ネットワークとインターネット をタップする |
ネットワークとインターネット |
3 | インターネット をタップする |
インターネット |
4 | 接続済み をタップする |
接続済み |
5 | 変更ボタン をタップする |
@変更 |
6 | 手動 またはプロキシを自動設定 が設定されている場合はタップするなし をタップする保存 をタップする |
手動||プロキシを自動設定 |
7 | 上記以外の場合はキャンセル をタップする |
キャンセル |
8 | 接続済み が表示されていることを確認する |
接続済み |
テストコードの実装
上記で作成したテストクラスSetProxy
に以下のテスト関数を追加します。
@Test @Order(20) @DisplayName("プロキシを[なし]に設定する") fun s2() { scenario { case(1) { condition { it.terminateApp() .launchApp() }.action { it.tap("ネットワークとインターネット") .tap("インターネット") .tap("接続済み") .tap("@変更") .ifCanSelect("手動||プロキシを自動設定") { it.tap() .tap("なし") .tap("保存") }.ifElse { it.tap("キャンセル") } }.expectation { it.exist("接続済み") } } } }
テストコードの実行
- テストコードを右クリックして
Debug
を選択します。 - テストの実行が正常に完了するとコンソールにログ出力先のリンクが出力されます。リンクをクリックするとフォルダが開きます。
- Report(Simple)を開きます。
まとめ
Shiratesを使用してAndroidの設定アプリでプロキシ設定/解除する手順の自動化方法を紹介しました。