代码之家  ›  专栏  ›  技术社区  ›  Mike ASP

使用Selenium UI测试用例添加API测试用例

  •  1
  • Mike ASP  · 技术社区  · 6 年前

    关于我的项目的信息:c#,selenium 3.9,Nunit,windows,VS 17,RestSharp(用于API)

    1. 项目 主要是为UI测试用例开发的,但现在我想添加 美国石油学会 还有测试用例,添加额外的API用例,因为如果在UI级别执行,它们会很耗时

    2. 问题 :每当我运行API案例时,驱动程序就会初始化,并调用浏览器,之后我的API测试就开始了,最后我看到API测试进行得很好,并且运行成功。

    3. 我知道我必须更改基类上的实现,但我不确定我应该怎么做,以便我的框架清楚地了解何时调用驱动程序以及何时跳过??(或者我不确定我们是否可以通过Nunit注释实现这一点)

    4. 期望:当运行UI案例时,驱动程序应该调用并启动浏览器,但当运行API案例时,驱动程序不应该调用和 不应启动浏览 r

    5. 请参见实施:

    验证。cs:基本测试

    [TestFixture]
    
    public class ValidateUI : BaseTest
    {
    
        [Test]
        public static void testUI()
        {
    
        }
    

    }

    验证API。cs:基本测试

    [TestFixture]
    
    public class ValidateAPI : BaseTest
    {
    
        [Test]
        public static void testAPI()
        {
    
        }
    

    }

    基本测试。反恐精英

    [TestFixture]
    public class BaseTest
    {        
        [SetUp]
        public void Init()
        {
            Driver.ConfigInit();
            Driver.LogStart();
            Driver.Initialize(Settings.BrowserType);
            LoginPage.GoTo(Settings.BrowserType);
        }
          [TearDown]
        public void Cleanup()
        {      
            Driver.Close();
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Charlie    6 年前

    如果您不希望API测试使用驱动程序,那么您不应该从设置驱动程序的BaseTest派生API夹具。

    您可以尝试这样的继承层次结构。。。

    Base Fixture
        API Base Fixture
            API Test Fixture 1
            API Test Fixture 2
                etc.
        UI Base Fixture
            UI Test Fixture 1
            UI Test Fixture 1
    

    基础夹具将设置日志记录和其他常见内容。

    UI Base将设置驱动程序等。

    API Base可以执行API测试所需的任何设置

    这种设置分区正是fixture想要做的。