Atata:一个基于 Selenium的C#自动化测试Web框架

项目开发中,为了提高测试效率、减少重复工作,我们一般都考虑使用自动化测试框架。

01 项目简介

Atata Framework 是一个基于 Selenium WebDriver 的 C#/.NET Web UI 测试自动化全功能框架。

它使用流畅的页面对象模式;具有内置的日志记录系统;包含独特的触发器功能;具有一组即用型组件。

该框架的关键思想之一是为定义和使用页面对象提供简单直观的语法,页面对象实现需要尽可能少的代码。

而且描述一个页面对象类,无需任何方法,只需一组用属性标记的属性,这些属性就代表页面组件。

02 项目特点

平台:.NET Standard 2.0(支持 .NET 5+、.NET Framework 4.6.1+ 和 .NET Core/Standard 2.0+)

**WebDriver:**基于 Selenium WebDriver,并保留其所有功能。

**页面对象模型:**提供独特的流畅页面对象模式,易于实现和维护。

**组件:**包含一系列现成的组件,如输入框、表格、列表等。

**集成:**支持任何 .NET 测试引擎(如 NUnit、xUnit、SpecFlow)以及 CI 系统(如 Jenkins、GitHub Actions、TeamCity)。

**触发器:**提供一系列触发器,用于绑定不同事件以扩展组件行为。

**验证:**包含流畅的断言方法和触发器,用于组件和数据验证。

**可配置:**定义默认的组件搜索策略以及额外的设置,支持通过 JSON 进行灵活配置。

**报告/日志:**内置可定制的日志系统,支持截图和快照捕获功能。

**可扩展:**支持通过额外的包(如 Atata.HtmlValidation、Atata.Bootstrap、Atata.KendoUI)进行扩展。

03 使用方法

以下是一个简单的登录页面对象的示例:

using Atata;  
namespace SampleApp.UITests  
{  
    using _ = SignInPage;  

    [Url("signin")] // 页面的相对URL  
    [VerifyH1] // 验证H1标题文本在页面对象初始化时等于"Sign In"  
    public class SignInPage : Page<_>  
    {  
        [FindByLabel] // 通过包含"Email"的<label>元素找到对应的<input>元素  
        public TextInput<_> Email { get; private set; }  

        [FindById("password")] // 通过ID找到密码输入框  
        public PasswordInput<_> Password { get; private set; }  

        [FindByValue(TermCase.Title)] // 通过值找到登录按钮  
        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();
}

04 项目地址

https://github.com/atata-framework/atata

- End -

推荐阅读

2个零基础入门框架教程!

盘点3个C#控制台的GUI框架!

盘点6个.NetCore+Vue前后端分离的开源项目

盘点3个.Net二维码开源项目!

盘点下5个Winform UI开源控件库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值