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

Adding API test cases with Selenium UI test cases

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

  1. Project 主要是为 UI 测试用例开发的,但现在我想添加 API 测试用例,添加额外的 API 个用例,因为如果在 UI 级别

  2. 上执行它们会很耗时
  3. 问题:每当我 运行 我的 API 案例然后驱动程序被初始化并调用浏览器,紧接着我的API 测试开始,最后我看到 API 测试进行得很顺利并且 运行 成功了。

  4. 我知道我必须更改我在 Base class 上的实现,但我不确定我应该做什么,所以我的框架清楚地知道它何时调用驱动程序以及何时跳过 ?? (或者我不确定我们是否可以通过Nunit注释来做到这一点)

  5. 预期:当 运行ning UI 情况下驱动程序应调用和启动浏览器,但当 运行ning API 情况下驱动程序不应调用和启动浏览器不应启动浏览器r

  6. 请查看实现:

ValidateUI.cs : 基础测试

[TestFixture]

public class ValidateUI : BaseTest
{

    [Test]
    public static void testUI()
    {

    }

}

ValidateAPI.cs : 基础测试

[TestFixture]

public class ValidateAPI : BaseTest
{

    [Test]
    public static void testAPI()
    {

    }

}

BaseTest.cs

[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();
    }
}

如果您不希望 API 测试使用驱动程序,则不应从设置驱动程序的 BaseTest 派生 API fixture。

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

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

Base Fixture 将设置日志记录和其他常用内容。

UI Base会设置驱动等

API Base 会执行您的 API 测试需要的任何设置

这种设置分区正是 fixtures 的目的。