C# 使用Selenium UI测试用例添加API测试用例
关于我的项目的信息:c#,selenium 3.9,Nunit,windows,VS 17,RestSharp(用于API)C# 使用Selenium UI测试用例添加API测试用例,c#,api,selenium-webdriver,nunit,restsharp,C#,Api,Selenium Webdriver,Nunit,Restsharp,关于我的项目的信息:c#,selenium 3.9,Nunit,windows,VS 17,RestSharp(用于API) Project主要是为UI测试用例开发的,但是现在我想添加API测试用例,添加额外的API用例,因为如果在UI级别进行测试,它们会很耗时 问题:每当我运行我的API案例时,驱动程序就会被初始化并调用浏览器,在那之后,我的API测试就开始了,最后我看到API测试运行良好并成功运行 我知道我必须更改基类上的实现,但我不确定我应该做什么,这样我的框架就可以清楚地了解何时调用驱动
[TestFixture]
public class ValidateUI : BaseTest
{
[Test]
public static void testUI()
{
}
[TestFixture]
public class ValidateAPI : BaseTest
{
[Test]
public static void testAPI()
{
}
}
ValidateAPI.cs:BaseTest
[TestFixture]
public class ValidateUI : BaseTest
{
[Test]
public static void testUI()
{
}
[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夹具 您可以尝试这样的继承层次结构
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基础将设置驱动程序等
API Base将执行API测试所需的任何设置
这种设置分区正是fixture想要做的。我选择BaseTest,因为这是我开始记录一切的地方。我努力在不同的类中保持日志记录,但我没有这样做,谢谢你宝贵的回答。关键是,继承层次结构的基础应该只做那些你想为所有测试做的事情。请参阅一个假设组织的编辑答案。谢谢Charlie,我已经完成了这个固定装置的更改(现在我有两个基类,一个用于API,另一个用于UI),它对我很有效,非常感谢您的时间,早些时候我想我不应该有两个基类,但没有找到解决方法。