Non riesco a trovare un singolo post in cui posso automatizzare i test mobili con Appium in C#.Come integrare Appium con C#?
Ho scritto il mio codice di automazione del sito web nello specflow. Posso anche riutilizzarlo?
Non riesco a trovare un singolo post in cui posso automatizzare i test mobili con Appium in C#.Come integrare Appium con C#?
Ho scritto il mio codice di automazione del sito web nello specflow. Posso anche riutilizzarlo?
Appium fornisce lo dotnet-appium-driver che è la vostra API per interfacciare con Appium. Puoi usarlo per scrivere l'automazione della tua app.
Non hai fornito alcun esempio qui né codice, quindi non posso davvero agire su qualcosa che ti mostri. Mi limito a scrivere un po 'di codice C# per farvi capire come un semplice test in C# può essere scritto:
namespace AppiumTests
{
using System;
// .NET unit test namespaces needed here as well, just not mentioning them
using OpenQA.Selenium; /* Appium is based on Selenium, we need to include it */
using OpenQA.Selenium.Appium; /* This is Appium */
[TestClass]
public class TestSuite
{
private AppiumDriver driver;
private static Uri testServerAddress = new Uri("http:127.0.01:4723/wd/hub"); // If Appium is running locally
private static TimeSpan INIT_TIMEOUT_SEC = TimeSpan.FromSeconds(180); /* Change this to a more reasonable value */
private static TimeSpan IMPLICIT_TIMEOUT_SEC = TimeSpan.FromSeconds(10); /* Change this to a more reasonable value */
[TestInitialize]
public void BeforeAll()
{
DesiredCapabilities testCapabilities = new DesiredCapabilities();
testCapabilities.App = "<your-app-file>";
testCapabilities.AutoWebView = true;
testCapabilities.AutomationName = "";
testCapabilities.BrowserName = String.Empty; // Leave empty otherwise you test on browsers
testCapabilities.DeviceName = "Needed if testing on IOS on a specific device. This will be the UDID";
testCapabilities.FwkVersion = "1.0"; // Not really needed
testCapabilities.Platform = TestCapabilities.DevicePlatform.Android; // Or IOS
testCapabilities.PlatformVersion = String.Empty; // Not really needed
driver = new AppiumDriver(testServerAddress, capabilities, INIT_TIMEOUT_SEC);
driver.Manage().Timeouts().ImplicitlyWait(IMPLICIT_TIMEOUT_SEC);
}
[TestCleanup]
public void AfterAll()
{
driver.Quit(); // Always quit, if you don't, next test session will fail
}
///
/// Just a simple test to heck out Appium environment.
///
[TestMethod]
public void CheckTestEnvironment()
{
var context = driver.GetContext();
Assert.IsNotNull(context);
}
}
}
È possibile trovare maggiori in this article ho scritto.
Infine raggiunto la soluzione eseguire un test in C#. Molte grazie ad Andry.
Questa soluzione gestisce il sito nel browser Chrome del telefono collegato al computer:
Passi e breve programma per configurare ed eseguire un programma C# su un dispositivo Android utilizzando Appium:
namespace poc
{
using NUnit.Framework;
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Interfaces;
using OpenQA.Selenium.Appium.MultiTouch;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Appium.Android;
[TestFixture()]
public class TestAppium
{
public IWebDriver driver;
[TestFixtureSetUp]
public void SetUp()
{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("device", "Android");
capabilities.SetCapability("browserName", "chrome");
capabilities.SetCapability("deviceName", "Motorola Moto g");
capabilities.SetCapability("platformName", "Android");
capabilities.SetCapability("platformVersion", "5.0.2");
driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(180));
}
[Test()]
public void OpenHofHomePage()
{
driver.Navigate().GoToUrl("http://YourWebsiteToTest.com");
Assert.IsTrue(driver.Title.Equals("Your Website")," Sorry , the website didnt open!!");
}
[TestFixtureTearDown]
public void End()
{
driver.Dispose();
}
}
}
1) Impostare il solito progetto in C#, installare Appium, Selenium utilizzando il gestore pacchetti NuGet, installare anche Nunit con lo stesso processo.
2) Scarica Android SDK
3) variabili envrionment: Aggiungi variabile nome "ANDROID_HOME" e nel percorso di dare variabile cartella sdk, In PATH (trovato in Variabile di sistema), aggiungere il percorso a strumenti nella cartella SDK e aggiungere il percorso agli strumenti della piattaforma.
4) Collegare il dispositivo (i driver del dispositivo di a.mobile devono essere installati nel computer (il mio caso è installato driver moto g adb) b) il dispositivo deve avere l'opzione modalità sviluppatore attivata e l'opzione debugger selezionata e l'opzione sempre selezionata spuntata)
5) Ora scaricare Appium e aprire Appium.exe.
6) Finestra Appio -> In Impostazioni Android (primo pulsante), selezionare l'opzione "Usa browser" e selezionare "Browser" come opzione.
7) Avviare il server del nodo Appium (pulsante di riproduzione in alto).
8) ora eseguire il test dallo studio visivo e vedrete l'apertura del sito Web nel browser del telefono.
Per rendere questo più completo, ho scritto un post sul blog che spiega chiaramente tutti i passaggi con le immagini. È un tutorial passo passo per utilizzare appium con C# e MSTest Puoi leggerlo qui. http://www.binaryclips.com/2016/03/test-automation-on-android-using-appium.html
Superb . un articolo molto esplicativo. –
Grazie Arpan Buch – joinsaad
@joinsaad. Il tuo link non funziona più. Ho ricevuto l'errore "Scusa, la pagina che stavi cercando in questo blog non esiste.". È questo tuo? http://www.binaryclips.com/2016/03/test-automation-on-android-using-appium_27.html –
Hey Andry, sto ottenendo un errore al driver = new AppiumDriver ..... si dice non può creare un'istanza di una classe o di un'interfaccia astratta 'OpenQA.Selenium.Appium.AppiumDriver' :( –
Probabilmente perché hai incluso troppe cose ... basta includere lo spazio dei nomi nella risposta modificata. Suppongo che tu abbia la DLL del driver Appium dotnet collegata nel tuo progetto. – Andry
Spiacente, viene ancora restituito lo stesso errore :(, Inoltre l'ho sostituito con AndroidDriver(), mi dà errore: Messaggio di risultato: \t System.InvalidOperationException: Impossibile creare una nuova sessione. (Errore originale: No app set, o apri appio con --app o passa in un valore "app" nelle funzionalità desiderate, o imposta androidPackage per avviare l'app preesistente sul dispositivo) –