Atata:一个基于 Selenium的C#自动化测试Web框架
ccwgpt 2024-10-10 04:53 41 浏览 0 评论
我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。
项目开发中,为了提高测试效率、减少重复工作,我们一般都考虑使用自动化测试框架。
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 -
相关推荐
- 【推荐】一个高颜值且功能强大的 Vue3 后台管理系统框架
-
如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍SnowAdmin是一款基于Vue3、TypeScript、Vite5、Pinia、Arco-Desi...
- java开源cms管理系统框架PublicCMS后台管理系统
-
一款使用Java语言开发的CMS,提供文章发布,图片展示,文件下载,用户权限、站点模块,内容管理、分类等功能。可免费用于商业用途maven工程数据库脚本在工程中database文件夹下代码结构:效果...
- 一定要大量读书:当我问Deepseek,它给出的高效阅读方法厉害了!
-
一年一度的世界读书日,总该写点什么。于是,我去问Deepseek给我推荐人生破局必读的10本书,结果它给了我回复,竟然10本推荐的书籍里,我都曾经浏览过,同时还给出破局关键。而说浏览过,不是读过,是因...
- 《搜神札记》:不应磨灭的惊奇(小说《搜神记》)
-
□黄勃志怪传说的书写一直是文人墨客的后花园,晚近尤盛,从张岱到袁枚到纪昀,收集那些或阴森或吊诡的行状故事,遂成一类,到民国年间,周作人挟此遗传,捋袖子拿希腊神话动刀,乃兄鲁迅不甘其后,《故事新编》虎...
- 《如何构建金字塔》之第三章总结(构建金字塔结构的方法有)
-
“没有什么比一套好理论更有用了。”——库尔特.勒温这篇读后感依然引用了这句库尔特.勒温名言,这句话也是我读芭芭拉.明托这本书的初衷。今天就“如何构建金字塔”,我来谈谈我的读后心得。我热爱写作,但是写...
- 《助人技术》第一章助人引论内容框架
-
第一章内容基本呈现如何成为助人者(心理咨询师)以及一些相关基础知识,对于进入这个行业有兴趣以及希望通过心理咨询寻求帮助但存有疑虑的当事人,都值得一读。心理咨询的三个阶段(不是说严格的三个阶段,而是广义...
- AI助手重构读后感写作流程:从提纲到完整性思考的转换
-
大家好!你有没有遇到过读完一本书,想要写读后感,却不知道从何下手的情况呢?今天我们要来探讨一下如何利用稿见AI助手来重构读后感写作流程,从提纲到完整性思考的转换。让我们一起来看看这个全新而又实用的方法...
- 图解用思维导图做读书笔记技巧(图解用思维导图做读书笔记技巧视频)
-
做阅读笔记非常有利于读后进行有效的深入思考,而思维导图这一强大的工具其最大的特点就是架构清晰,在阅读过程中对文章的分析、总结、分类起着很大的辅助作用。思维导图读书笔记步骤:1、阅读大纲。首先要快速浏览...
- 读《框架思维》有感(框架 思维)
-
我们如果想在这个竞争日益激烈和同化内卷的现实世界中脱颖而出,变得更具竞争力和创造力、更能解决现实问题、更能产生实绩的话,就必须要具有多元化框架思维的应用和建构的能力。具体如下:一、框架思维由三要素组成...
- Spark发布19美元的WiFi开发套件Photon,想做WiFi领域的树莓派
-
之前在Kickstarter上成功众筹56.7万美元的WiFi模块提供商Spark,又发布了一款新品套件SparkPhoton,火柴盒大小,基于SparkOS的,很适合创客整合到自己的产品中,仅售...
- Spark 核心编程RDD简介与核心属性
-
Spark计算框架为了能够进行高并发和高吞吐的数据处理,封装了三大数据结构,用于处理不同的应用场景。三大数据结构分别是:RDD:弹性分布式数据集累加器:分布式共享只写变量广播变量:分布式共享只读...
- 字节跳动在 Spark SQL 上的核心优化实践
-
作者|郭俊封图|BanburyTang字节跳动数据仓库架构团队负责数据仓库领域架构设计,支持字节跳动几乎所有产品线(包含但不限于抖音、今日头条、西瓜视频、火山视频)数据仓库方向的需求,如Sp...
- 深度解析 K8S:容器编排的核心力量
-
在当今互联网软件开发的迅猛发展浪潮中,随着云计算和微服务架构的兴起,如何高效地管理和部署应用程序成为了软件开发人员面临的关键挑战。而Kubernetes(简称K8S),作为谷歌开源的容器编排平台,...
- 三十五、SparkSQL: RDD、DataFrame和Dataset的关系
-
在SparkSQL中,在Spark1.3版本时为SparkSQL提供了一种新的数据集结构DataFrame,而从Spark1.6开始提供了一种新的弹性的、懒执行的、分布式的抽象数据集Dataset,...
- Spark读取kafka复杂嵌套json的最佳实践
-
随着互联网的更进一步发展,信息浏览、搜索以及电子商务、互联网旅游生活产品等将生活中的流通环节在线化,对于实时性的要求进一步提升,而信息的交互和沟通正在从点对点往信息链甚至信息网的方向发展,这样必然带来...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)