写点什么

Smashtest:专注于速度的 Web 应用测试新 DSL

  • 2019-08-03
  • 本文字数:2039 字

    阅读完需:约 7 分钟

Smashtest:专注于速度的 Web 应用测试新 DSL

Peter Tesler(前迪士尼软件开发测试主管)最近发布了Smashtest的第一个主要版本。Smashtest 是描述和部署测试用例的一种新的领域专属语言。Smashtest 非常注重通过语言简洁地表达开发人员执行的重复性测试任务来提高测试人员的工作效率。新语言带有一个并行运行测试的测试运行器和一个 REPL。


Smashtest 的主要新特性包括允许测试人员以树状格式声明性地描述他们的测试。Smashtest 网站上给出了以下 Smashtest 脚本:


Open ChromeOpen FirefoxOpen Safari
Navigate to 'site.com'
Click 'Sign In'
Type {username:} into 'username box'
{username} is 'joe' {username} is 'bob' {username} is 'mary'
Verify success
{username} is 'baduser'
Verify error
复制代码


一次描述了 3 (Chrome、Firefox 和 Safari 浏览器)x(3 + 1) = 12 个测试,在同一个描述中覆盖了快乐路径(joe、bob、mary)和错误路径(baduser):



因此,Smashtest 是一种对空格敏感的语言,它使用空格将测试组织到树中。要执行的测试是由树的深度优先搜索推导出来的。Smashtest 最好与能够尊重现有空格的编辑器一起使用。该版本中提供了一个Atom编辑器的插件。


Smashtest 语言包含一个模拟 API,尤其是模拟时间和地理位置。网络条件和节流也可以用这种语言来描述(只有 Chrome 浏览器才可以使用这个功能)。该语言还包含一个 API,用于查找页面上的元素,并在其上执行断言。


Smashtest 命令行接口(CLI)包括用于持续集成/持续交付的工具和一个REPL(Read-Eval-Print Loop)解释器。该 CLI 还可以使用自动生成的屏幕截图创建报告:



关于 Smashtest 的价值定位,InfoQ 采访了 Smashtest 的创建者 Peter Tesler。


InfoQ:是什么驱使您编写 Smashtest?为什么要开发一种新的测试语言?


Peter Tesler:我们编写、部署、更新和分解自动化测试的速度是最重要的。软件变化很快,测试需要跟上。我想构建一种测试语言,使速度成为优先考虑的因素。

我还希望它能反映出我们在测试时是如何思考的,即广度优先。也就是说,当我在我的应用程序中处于一个特定的状态时,我想到了接下来可能发生的所有排列。例如,如果我在一个登录框中,我在脑海中列出所有我可以输入的潜在用户名。用户首先考虑的是深度,或者是一系列的线性步骤。传统的测试总是反映出后者,但是反映出前者(将测试作为一个排列树来编写)使你可以更容易地按照你的想法编写测试,查看你所涵盖的内容,并快速地编写(因为要打印的内容要少得多)。


InfoQ:与基于Gherkin的解决方案相比,Smashtest 是如何围绕功能/场景(Feature/Scenario)和 Given/When/Then 三元组来组织的?


Tesler:Smashtest 也处理 Gherkin。但传统的 BDD/TDD 工具并不将测试存储为树。

我们还把我们认为不必要的东西作为步骤本身之外的可选项,例如描述或命名测试。测试有一种与其他测试非常相似的趋势,通常被命名为“cart test 014”之类的无用名称。必须想出名字只会减慢你的速度(尽管如此,如果你愿意,你仍然可以添加名字和描述)。


InfoQ:您提到了测试速度的提高。Smashtest 涉及测试过程的哪些部分?


Tesler:测试编写和维护。现在编写一个功能自动化测试所花费的时间非常长,尤其是当我们讨论 Selenium WebDriver 测试时。开发新测试所需的时间越长,应用程序和/或需求更改的次数就越多,自动化带来的好处就越小。以至于许多组织完全放弃自动化,而倾向于手工测试(在手工测试中,创建测试的成本很低)。


InfoQ:与手工测试或现有的测试解决方案相比,您是否有速度提升的经验指标或硬指标?


Tesler:虽然我们还没有具体的经验度量,但是我花了一些时间,分别使用传统的 webdriverjs 以及 Smashtest 编写了一些测试场景,并看到了大约 10 倍的改进。在 Smashtest 中添加一行代码非常容易,并且可以立即将覆盖的排列加倍。


InfoQ:开发人员、测试人员和产品所有者采用 Smashtest 的三个理由?


Tesler:

1.编写测试的速度。易于阅读。

2.它本身可以做很多处理。UI 和 API 测试、各种模拟,它甚至是一种描述页面应该是什么样子的语言(所以你不需要 20 多个验证步骤,一个接一个)。

3.实时报告。它们在测试运行时进行更新,将类似的故障组合成组(使调试更加容易),显示所有的屏幕截图/日志,而且它们非常漂亮!


InfoQ:开发人员、测试人员和产品所有者不采用 Smashtest 的三个理由?


Tesler:

1.和任何语言一样有学习曲线。

2.你必须打破传统,以一种新的方式编写测试。

3.现在,它内置了对 Web UI(使用 Selenium WebDriver)和 HTTP API 测试的支持。如果你想测试其他内容,就必须编写一些自定义的 js。不过,任何可以在 nodejs 中运行的东西都可以在 Smashtest 中运行。


InfoQ:Smashtest 接下来会带来什么?


Tesler:现在我们专注于传播信息和建立社区。我们可能会根据需要添加对更多编辑器和语言的支持。


原文链接:


Smashtest, New Webapp Testing DSL Focusing on Speed


2019-08-03 08:003715
用户头像

发布了 736 篇内容, 共 474.9 次阅读, 收获喜欢 1548 次。

关注

评论

发布
暂无评论
发现更多内容

Reallusion Cartoon Animator for Mac(2D动画设计制作软件)中文激活版

Mac相关知识分享

Mac软件 动画设计软件 动画设计

Maxon Cinema 4D Studio S22 for mac(C4D动画设计工具)中文激活版

Mac相关知识分享

动画设计工具 C4D动画

网络安全等级保护备案变更定义简单说明

行云管家

网络安全 等保 等级保护

Carbon Copy Cloner for Mac(磁盘克隆/同步/备份软件)v6.1.1(7323)

Mac相关知识分享

磁盘克隆软件

AE2021中文直装破解版下载 After Effects 2021安装包 支持M1/Intel

Rose

堡垒机应用发布功能简单介绍-行云管家

行云管家

堡垒机 应用发布

零信任产品联动能力持续提升,全面整合协同运行

芯盾时代

iam 统一身份认证 零信任 mfa

测试工程师如何构建质量体系

测吧(北京)科技有限公司

测试

NTFS Disk by Omi NTFS for mac(NTFS 磁盘管理器)v1.1.4中文版

Mac相关知识分享

磁盘管理器

mac系统状态监控工具istat menus激活码 (istat menus中文版下载)

Rose

极狐GitLab与无问芯穹达成战略合作,共探AI落地软件智能研发场景新机遇

极狐GitLab

人工智能 AI DevOps 极狐GitLab

ChatGPT 人工智能助理 Assistant

测吧(北京)科技有限公司

测试

成就江旻憓奥运金牌的背后:权威型教养

心大陆多智能体

AI大模型 心理健康 数字心理

深入理解 RDMA 的软硬件交互机制

阿里技术

nvidia 分析 网卡 RDMA

ChatGPT 人工智能助理 Assistant

测试人

软件测试

【最新注册码】CorelDRAW 2023中文激活下载 及cdr2023系统要求

Rose

行业标准音频测试分析 | Rational Acoustics Smaart Suite v9注册版下载安装

Rose

Mac角色扮演游戏:仙剑奇侠传四 for Mac v1.1 中文移植版

你的猪会飞吗

mac软件下载 mac破解软件下载 mac单机游戏

公开课 | 测试工程师如何构建质量体系

霍格沃兹测试开发学社

HarmonyOS SDK助力美团单车提供便捷流畅扫码新体验

HarmonyOS SDK

HarmonyOS

小红书API接口最新指南:笔记详情数据接口的接入与使用

tbapi

小红书笔记详情接口 小红书API 小红书笔记详情数据采集

AirPods耳机管理工具AirBuddy for mac 兼容macOS14系统 支持m芯片

Rose

苹果电脑cpu性能提示|Turbo Boost Switcher Pro for mac 支持M1

Rose

MySQL UDF 提权初探

GreatSQL

终极自托管解决方案指南

NocoBase

开发工具 解决方案 云服务

深度解读昇腾CANN小shape算子计算优化技术,进一步减少调度开销

华为云开发者联盟

CANN 昇腾 企业号 8 月 PK 榜 2024企业号8月pk 算子优化

axure rp8安装包下载 Axure RP 8 for Mac中文永久密钥分享

Rose

[Paper Reading]: Self-Improving Alignment with LLM-as-a-Meta-Judge

吴京

LLM LLM-as-a-Judge

iOS数据恢复Disk Drill for Mac v5.4.1425中文版 含Disk Drill激活码

Rose

支持m1/m2/m3 graphpad prism 10激活直装版下载 医学绘图工具

Rose

mac触摸板增强工具BetterTouchTool激活版

Rose

Smashtest:专注于速度的 Web 应用测试新 DSL_大前端_Bruno Couriol_InfoQ精选文章