关于我的项目的信息:c#,selenium 3.9,Nunit,windows,VS 17,RestSharp(用于API)
项目主要是针对UI测试用例开发的,但现在我还想添加 API 测试用例,添加其他API案例因为它们非常耗时在UI级别上进行
问题:每当我运行我的API案例,然后驱动程序被初始化并调用浏览器,之后我的API测试开始,最后我看到API测试进展顺利并成功运行。
我知道我必须在Base类上更改我的实现,但是我不确定我要做什么,所以我的框架清楚地理解它何时调用驱动程序以及何时跳过? (或者我不确定我们是否可以通过Nunit注释来做到这一点)
期望:在运行UI情况时,驱动程序应调用并启动浏览器,但在运行API情况时,驱动程序不应调用,不应启动浏览 r
请参阅实施:
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();
}
}
答案 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测试所需的任何设置
这种设置分区正是灯具的目的。