Windows Phone 8 アプリケーションで UI の自動化を検索しましたが、そのための便利なツールやフレームワークが得られなかったので、Windows Phone 8 で UI アプリケーションを自動化するフレームワークはありますか?
3 に答える
ウィニウムが使えます。
なぜウィニウム?
Web アプリのテスト用に Selenium WebDriver 、iOS および Android アプリのテスト用に Appium があります。
また、Windows アプリをテストするためのSelenium ベースのツールも利用できるようになりました。どのような利点がありますか? アピウムが言ったように:Java、Objective-C、Node.js を使用した JavaScript (promise、コールバック、またはジェネレーター フレーバー)、PHP、Python、Ruby、C#、Clojure、または Perlなどの WebDriver 互換言語を使用して、お気に入りの開発ツールでテストを作成できます。Selenium WebDriver API と言語固有のクライアント ライブラリを使用します。
任意のテスト フレームワークを使用できます。
使い方?
Winium.StoreApps は、次の 2 つの重要な部分で構成されています。
Winium.StoreApps.Driverは Selenium Remote WebDriver を実装し、JsonWireProtocol コマンドをリッスンします。エミュレーターの起動、AUT の展開、入力のシミュレーション、Winium.StoreApps.InnerServer へのコマンドの転送などを担当します。
Winium.StoreApps.InnerServer (AUT に組み込む必要があるもの) は Winium.StoreApps.Driver.exe と通信し、アプリケーション内で要素の検索、テキスト値、プロパティの取得または設定などのさまざまなコマンドを実行します。
テストサンプル:
Python
# coding: utf-8
import unittest
from selenium.webdriver import Remote
class TestMainPage(unittest.TestCase):
desired_capabilities = {
"app": "C:\\YorAppUnderTest.appx"
}
def setUp(self):
self.driver = Remote(command_executor="http://localhost:9999",
desired_capabilities=self.desired_capabilities)
def test_button_tap_should_set_textbox_content(self):
self.driver.find_element_by_id('SetButton').click()
assert 'CARAMBA' == self.driver.find_element_by_id('MyTextBox').text
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
Please check the link below. It can help you a lot.
You just have to follow guidance in this project.
C#
using System;
using NUnit.Framework;
using OpenQA.Selenium.Remote;
[TestFixture]
public class TestMainPage
{
public RemoteWebDriver Driver { get; set; }
[SetUp]
public void SetUp()
{
var dc = new DesiredCapabilities();
dc.SetCapability("app", "C:\\YorAppUnderTest.appx");
this.Driver = new RemoteWebDriver(new Uri("http://localhost:9999"), dc);
}
[Test]
public void TestButtonTapShouldSetTextboxContent()
{
this.Driver.FindElementById("SetButton").Click();
Assert.IsTrue("CARAMBA" == this.Driver.FindElementById("MyTextBox").Text);
}
[TearDown]
public void TearDown()
{
this.Driver.Quit();
}
}
現在、このオープンソースを使用して Windows Phone の自動化に取り組んでいます
プロジェクト、それは私にとってはかなりうまくいきます。
このプロジェクトを見てみましょう: http://code.msdn.microsoft.com/wpapps/Simple-UI-Test-for-Windows-dc0573a9
ボタンのクリックと別の要素の値の取得をシミュレートする方法を示します。
私はこれを自分で試したことはありませんが、原則は次のようです。
別のテスト プロジェクトを作成する
テスト初期化コードで、アプリ プロジェクトからページをインスタンス化します。
public void Init()
{
mp1 = new PhoneApp1.MainPage();
}
テストは、そのインスタンス化されたページを参照して要素を見つけます。
[TestMethod]
[Description("Test1: Clicking button passes")]
public void PassedTest()
{
var b = mp1.FindName("button1") as Button;
ButtonAutomationPeer peer = new ButtonAutomationPeer(b);
IInvokeProvider invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
invokeProv.Invoke();
Assert.AreEqual((mp1.FindName("AppTitle") as TextBlock).Text.ToString(), "Results");
}
CodedUI テストが解決策になる可能性があるため、現在調査中です。Microsoft アプリケーション ライフサイクル管理ブログの公式声明は次のとおりです。 -phone-apps.aspx
この記事には、強調したい非常に具体的な詳細がいくつかあります。
- 少なくとも Visual Studio 2013 Update 2 が必要です
- 記事引用:
XAML アプリで HTML コンテンツをホストするために使用される WebView コントロールは、現在サポートされていません。
また
シェル コントロール (タイル、確認ダイアログなど、XAML ではありませんが、アプリの E2E のテストに不可欠なコントロール) を操作することもできます。これらのコントロールは OS によって提供され、XAML ではありません。
言及された最後の制限:
XAML ベースのストア アプリのみがサポートされています。コード化された UI を使用して、Silverlight および HTML 5 ベースのアプリをテストすることはできません。
CodedUI for Windows Phone 8 アプリの練習ができたら、返信を更新します。自分でテストを作成し、実際のデバイスで実行する必要があります。