自动化框架将场景从 Web 应用程序自动化到移动应用程序

尼詹森·贾加迪森

我想知道一个工作框架或一种方法来自动化一个脚本,该脚本必须在 Web 和移动设备上运行以实现单一场景。

假设场景是您使用前台 Web 应用程序预订了从果阿运送到德里的货物,并且您收到了一个装运编号。现在交付团队有一个移动应用程序,他们使用该应用程序不断更新装运状态:从源站出发,在途,到达目的地。

随着交付团队更新移动应用程序上的状态,当您作为用户跟踪货件编号时,此状态应反映在 Web 应用程序中。

克里斯汀

我过去曾处理过类似的问题,其中测试用例需要在移动和 Web 浏览器平台上进行测试。

您需要CreateDriver在一个DriverManager类中实现两种不同的方法- 一种用于 Appium 驱动程序(用于移动设备),一种用于 Selenium WebDriver(用于 Web 浏览器)。您的测试用例需要指定何时从网络“切换”到移动设备,或移动设备到网络。您还需要包含一种停止 Appium 服务器的方法,以便在从移动设备切换到 Web 时使用。这是一个关于如何工作的小型通用示例:

public class DriverFactory
{

    private static AppiumLocalService _appiumLocalService;

    // use Current instance to act as static DriverFactory class instance
    private static DriverFactory _current;
    public static DriverFactory Current => _current ?? (_current = new DriverFactory());

    public AndroidDriver<AppiumWebElement> CreateAndroidDriver()
    {
        // start Appium server
        var builder = new AppiumServiceBuilder();
        _appiumLocalService = builder.UsingAnyFreePort().Build();
        _appiumLocalService.Start();

        // set desired capabilities or appium options here
        var options = new AppiumOptions {PlatformName = "Android"};

        // start AndroidDriver session
        var driver = new AndroidDriver<AppiumWebElement>(_appiumLocalService.ServiceUrl, options);

        return driver;
    }

    public void StopAppiumService()
    {
        // stop appium server
        _appiumLocalService.Dispose();

    }

    public IWebDriver CreateSeleniumDriver()
    {
        // create browser-specific webdriver here
        // return webdriver
    }
}

然后,您可以实现一个BaseTestFixture为您处理启动和停止每个驱动程序的方法。此类还包含 Selenium WebDriver 和 Appium 驱动程序的实例。您编写的每个测试类都应该从这个夹具继承,以继承两个驱动程序实例。

public class BaseTestFixture
{
    public static AndroidDriver<AppiumWebElement> AppiumDriver { get;set; }
    public static IWebDriver SeleniumDriver { get set; }

    public void SetAppiumDriver()
    {
        AppiumDriver = DriverFactory.Current.CreateAndroidDriver();
    }

    public void TearDownAppiumDriver()
    {
        AppiumDriver.Close();
        AppiumDriver.Quit();
        DriverFactory.Current.StopAppiumService();
    }

    public void SetSeleniumDriver()
    {
        SeleniumDriver = DriverFactory.Current.CreateSeleniumDriver();
    }

    public void TearDownSeleniumDriver()
    {
        SeleniumDriver.Close();
        SeleniumDriver.Quit();
    }
}

最后——这里是如何BaseTestFixture在测试类中使用:

using MyProject.BaseTestFixture;

[TestFixture]
public class MyTestClass : BaseTestFixture
{
    [Test]
    public void ShouldStartBothDrivers()
    {
        // set Appium driver -- we are testing with mobile
        SetAppiumDriver();

        // perform testing with Appium driver
        AppiumDriver.FindElement(.....);

        // finished mobile testing -- move to web browser
        TearDownAppiumDriver();

        // set Selenium driver -- web browser testing
        SetSeleniumDriver();

        // perform testing with Selenium driver
        SeleniumDriver.FindElement(....);

        // finished web browser testing -- close selenium driver
        TearDownSeleniumDriver();
    }
}

正如我所提到的,这是一个非常通用的示例,需要您进行自定义以满足您的特定需求。这只是如何处理这两个驱动程序的示例架构。希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

移动应用程序的自动化测试框架(BDD)

来自分类Dev

本地化语言 Web 应用程序的自动化

来自分类Dev

我是否应该将自动化回归测试放入Web应用程序中?

来自分类Dev

将在Azure Web作业中执行的C#Selenium自动化应用程序

来自分类Dev

如何在citrix上自动化桌面/ Web应用程序

来自分类Dev

Flask Web应用程序输入,实现硒浏览器自动化

来自分类Dev

我是否应该将自动化回归测试放入Web应用程序中?

来自分类Dev

我们如何评估自动化 Web 应用程序前端的难度?

来自分类Dev

Web 应用程序自动化测试的进程同步

来自分类Dev

自动化现有的 Web 应用程序和电子邮件生成的报告

来自分类Dev

同时对 Web 和桌面应用程序执行自动化测试

来自分类Dev

如何自动化Swing Java Web Start应用程序,该应用程序运行单击Web应用程序中的链接的操作,该链接是使用Selenium WebDriver自动化的?

来自分类Dev

自动化Swing应用程序

来自分类Dev

如何使用自动化脚本在一天的不同时间测试Web应用程序的性能?

来自分类Dev

我可以使用SOAPUI测试工具对纯基于Web的应用程序进行自动化测试吗?

来自分类Dev

如何使用自动化脚本在一天的不同时间测试Web应用程序的性能?

来自分类Dev

Web和WPF应用程序的自动化解决方案

来自分类Dev

使用Appium自动化混合应用程序

来自分类Dev

iPhone应用程序自动化测试

来自分类Dev

如何自动化运行m子应用程序

来自分类Dev

如何自动化MS Access应用程序

来自分类Dev

使用 Azure 自动化 DSC 更新应用程序

来自分类Dev

无法使用 appium 自动化混合 Android 移动应用程序

来自分类Dev

使用Java框架自动化GUI桌面应用程序

来自分类Dev

Autodesk Forge Design 自动化 - Revit IO:无法将应用程序包上传到设计自动化应用程序

来自分类Dev

自动,包含测试的Web应用程序

来自分类Dev

我们可以使用 Selenium Webdriver 自动化在移动浏览器(不是移动应用程序)上运行的应用程序吗

来自分类Dev

Docker 化 Web 应用程序

来自分类Dev

寻找开源的Web测试自动化框架

Related 相关文章

  1. 1

    移动应用程序的自动化测试框架(BDD)

  2. 2

    本地化语言 Web 应用程序的自动化

  3. 3

    我是否应该将自动化回归测试放入Web应用程序中?

  4. 4

    将在Azure Web作业中执行的C#Selenium自动化应用程序

  5. 5

    如何在citrix上自动化桌面/ Web应用程序

  6. 6

    Flask Web应用程序输入,实现硒浏览器自动化

  7. 7

    我是否应该将自动化回归测试放入Web应用程序中?

  8. 8

    我们如何评估自动化 Web 应用程序前端的难度?

  9. 9

    Web 应用程序自动化测试的进程同步

  10. 10

    自动化现有的 Web 应用程序和电子邮件生成的报告

  11. 11

    同时对 Web 和桌面应用程序执行自动化测试

  12. 12

    如何自动化Swing Java Web Start应用程序,该应用程序运行单击Web应用程序中的链接的操作,该链接是使用Selenium WebDriver自动化的?

  13. 13

    自动化Swing应用程序

  14. 14

    如何使用自动化脚本在一天的不同时间测试Web应用程序的性能?

  15. 15

    我可以使用SOAPUI测试工具对纯基于Web的应用程序进行自动化测试吗?

  16. 16

    如何使用自动化脚本在一天的不同时间测试Web应用程序的性能?

  17. 17

    Web和WPF应用程序的自动化解决方案

  18. 18

    使用Appium自动化混合应用程序

  19. 19

    iPhone应用程序自动化测试

  20. 20

    如何自动化运行m子应用程序

  21. 21

    如何自动化MS Access应用程序

  22. 22

    使用 Azure 自动化 DSC 更新应用程序

  23. 23

    无法使用 appium 自动化混合 Android 移动应用程序

  24. 24

    使用Java框架自动化GUI桌面应用程序

  25. 25

    Autodesk Forge Design 自动化 - Revit IO:无法将应用程序包上传到设计自动化应用程序

  26. 26

    自动,包含测试的Web应用程序

  27. 27

    我们可以使用 Selenium Webdriver 自动化在移动浏览器(不是移动应用程序)上运行的应用程序吗

  28. 28

    Docker 化 Web 应用程序

  29. 29

    寻找开源的Web测试自动化框架

热门标签

归档