测试工具csharp开源(用于Web的)
测试工具csharp开源(用于Web的)using Atata; namespace SampleApp.UITests { using _ = SignInPage; [Url("signin")] // 页面的相对 URL。 [VerifyH1] // 在页面对象初始化时验证 H1 标题文本是否等于“登录”。 public class SignInPage : Page<_> { [FindByLabel] // 查找包含“Email”的 <label> 元素(<label for="email">Email</label>),然后通过等于标签的“for”属性值的“id”查找文本 <input> 元素。 public TextInput<_> Em
介绍Atata Framework - 一个基于 Selenium WebDriver 的 C#/.NET Web 测试自动化全功能框架。它使用流畅的页面对象模式。 Atata 是开源项目,在 Apache 许可证 2.0 下托管在 GitHub 上。
面向 .NET Standard 2.0,支持 .NET 5 、.NET Framework 4.6.1 和 .NET Core/Standard 2.0
https://github.com/atata-framework/atata
特性- 网络驱动程序:基于 Selenium WebDriver 并保留其所有功能。
- 页面对象模型:提供独特的流畅页面对象模式,易于实现和维护。
- 组成:包含一组丰富的即用型组件,用于输入、表格、列表等。
- 一体化:适用于 .NET 测试引擎(例如 NUnit、xUnit、SpecFlow)以及 Jenkins、Azure DevOps 或 TeamCity 等 CI 系统。
- 触发器:一堆触发器与不同的事件绑定以扩展组件行为。
- 可靠:一组流畅的断言方法和触发器,用于组件和数据验证。
- 可配置:定义默认组件搜索策略以及其他设置。 Atata.Configuration.Json 提供灵活的 JSON 配置。
- 报告/日志:内置可自定义的日志记录和屏幕截图捕获功能。
- 可扩展: 框架支持任何类型的扩展。
- Nuget
PM> Install-Package Atata
- 页面对象
using Atata;
namespace SampleApp.UITests
{
using _ = SignInPage;
[Url("signin")] // 页面的相对 URL。
[VerifyH1] // 在页面对象初始化时验证 H1 标题文本是否等于“登录”。
public class SignInPage : Page<_>
{
[FindByLabel] // 查找包含“Email”的 <label> 元素(<label for="email">Email</label>),然后通过等于标签的“for”属性值的“id”查找文本 <input> 元素。
public TextInput<_> Email { get; private set; }
[FindById("password")] //通过等于“password”的 id (<input id="password" type="password">) 查找密码 <input> 元素。
public PasswordInput<_> Password { get; private set; }
[FindByValue(TermCase.Title)] // 按等于“登录”(<input value="Sign In" type="submit">) 的值查找按钮元素。
public Button<_> SignIn { get; private set; }
}
}
- 初始化&调用
[SetUp]
public void SetUp()
{
AtataContext.Configure()
.UseChrome()
.UseBaseUrl("https://demo.atata.io/")
.Build();
}
[Test]
public void SignIn()
{
Go.To<SignInPage>()
.Email.Set("admin@mail.com")
.Password.Set("abc123")
.SignIn.Click();
}
总结
Atata是一个非常值得尝试的Web自动化框架,可以让CSharp/.Net开发人员开发针对不同Web系统的自动化测试功能