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

时间:2018-02-16 23:08:43

标签: c# api selenium-webdriver nunit restsharp

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

  1. 项目主要是针对UI测试用例开发的,但现在我还想添加 API 测试用例,添加其他API案例因为它们非常耗时在UI级别上进行

  2. 问题:每当我运行我的API案例,然后驱动程序被初始化并调用浏览器,之后我的API测试开始,最后我看到API测试进展顺利并成功运行。

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

  4. 期望:在运行UI情况时,驱动程序应调用并启动浏览器,但在运行API情况时,驱动程序不应调用,不应启动浏览 r

  5. 请参阅实施:

  6. ValidateUI.cs:BaseTest

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

    }

    ValidateAPI.cs:BaseTest

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

1 个答案:

答案 0 :(得分:1)

如果您不希望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

Base Fixture会设置日志记录和其他常见内容。

UI Base会设置驱动程序等。

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

这种设置分区正是灯具的目的。