Appium:如何一个接一个地执行多个测试用例?

Posted

技术标签:

【中文标题】Appium:如何一个接一个地执行多个测试用例?【英文标题】:Appium: How to execute multiple test cases one after the other? 【发布时间】:2022-01-11 12:06:20 【问题描述】:

运行后,

    应用运行。 TestMethod1() 已执行。 应用已关闭。 TestMethod2() 已执行。

但我不想关闭应用程序(第 3 步)。我希望 TestMethod2() 在 TestMethod1() 完成后执行:

    应用运行。 TestMethod1() 执行。 TestMethod2() 执行。 应用关闭。

--> 我也尝试了 AddAdditionalCapability("NoReset, true")AddAdditionalCapability("FullReset, False" ),这没有用。

=> 我正在使用 Appium.WebDriver(4.3.1)C#

[TestClass]
public class Walkthrough

    private string _appPath = @"PathToMyApp\MyApp.apk";
    private AppiumDriver<androidElement> _driver;

    [TestInitialize]
    public void Setup()
    
        
        var appiumOption = new AppiumOptions();
        appiumOption.AddAdditionalCapability(MobileCapabilityType.App, _appPath);
        appiumOption.AddAdditionalCapability(MobileCapabilityType.PlatformName, "Android");
        appiumOption.AddAdditionalCapability(MobileCapabilityType.DeviceName, "Pixel 4");
        appiumOption.AddAdditionalCapability(MobileCapabilityType.PlatformVersion, "12");
        appiumOption.AddAdditionalCapability(MobileCapabilityType.Udid, "99171FFAZ000GE");
        appiumOption.AddAdditionalCapability(MobileCapabilityType.NoReset, true);

        _driver= new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub"), appiumOption);
    

    [TestCleanup]
    public void TestCleanup()
    
        _driver.CloseApp();
    


    [TestMethod]
    public void TestMethod1() 
    
        _driver.FindElement(By.ID("ELEMENT1")).Click();
    

    [TestMethod]
    public void TestMethod2()
    
        _driver.FindElement(By.ID("ELEMENT2")).Click();
    

【问题讨论】:

【参考方案1】:

我终于通过在Setup方法中添加[ClassInitialize]TestContext解决了这个问题。 确保您的方法是“静态”

    [ClassInitialize]
    public static void Setup(TestContext testContext)
    
                
            var appiumOption = new AppiumOptions();
            appiumOption.AddAdditionalCapability(MobileCapabilityType.App, _appPath);
            appiumOption.AddAdditionalCapability(MobileCapabilityType.PlatformName, "Android");
            appiumOption.AddAdditionalCapability(MobileCapabilityType.DeviceName, "Pixel 4");
            appiumOption.AddAdditionalCapability(MobileCapabilityType.PlatformVersion, "12");
            appiumOption.AddAdditionalCapability(MobileCapabilityType.Udid, "99171FFAZ000GE");
            appiumOption.AddAdditionalCapability(MobileCapabilityType.NoReset, true);

            _driver= new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub"), appiumOption);
        
    

【讨论】:

以上是关于Appium:如何一个接一个地执行多个测试用例?的主要内容,如果未能解决你的问题,请参考以下文章

一文揭秘测试平台中是如何将测试用例一键转化Jmeter压测脚本

web自动化 自动化无人值守运行

Appium+Python app自动化测试之脚本启动和停止Appium服务

如何使用 Appium Xcode Instruments 执行单个命令

appium+robot framework 一个测试用例

TestNG中Appium测试用例的顺序执行导致测试用例失败